MAYBE

Problem:
 active(incr(nil())) -> mark(nil())
 active(incr(cons(X,L))) -> mark(cons(s(X),incr(L)))
 active(adx(nil())) -> mark(nil())
 active(adx(cons(X,L))) -> mark(incr(cons(X,adx(L))))
 active(nats()) -> mark(adx(zeros()))
 active(zeros()) -> mark(cons(0(),zeros()))
 active(head(cons(X,L))) -> mark(X)
 active(tail(cons(X,L))) -> mark(L)
 active(incr(X)) -> incr(active(X))
 active(cons(X1,X2)) -> cons(active(X1),X2)
 active(s(X)) -> s(active(X))
 active(adx(X)) -> adx(active(X))
 active(head(X)) -> head(active(X))
 active(tail(X)) -> tail(active(X))
 incr(mark(X)) -> mark(incr(X))
 cons(mark(X1),X2) -> mark(cons(X1,X2))
 s(mark(X)) -> mark(s(X))
 adx(mark(X)) -> mark(adx(X))
 head(mark(X)) -> mark(head(X))
 tail(mark(X)) -> mark(tail(X))
 proper(incr(X)) -> incr(proper(X))
 proper(nil()) -> ok(nil())
 proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
 proper(s(X)) -> s(proper(X))
 proper(adx(X)) -> adx(proper(X))
 proper(nats()) -> ok(nats())
 proper(zeros()) -> ok(zeros())
 proper(0()) -> ok(0())
 proper(head(X)) -> head(proper(X))
 proper(tail(X)) -> tail(proper(X))
 incr(ok(X)) -> ok(incr(X))
 cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
 s(ok(X)) -> ok(s(X))
 adx(ok(X)) -> ok(adx(X))
 head(ok(X)) -> ok(head(X))
 tail(ok(X)) -> ok(tail(X))
 top(mark(X)) -> top(proper(X))
 top(ok(X)) -> top(active(X))

Proof:
 DP Processor:
  DPs:
   active#(incr(cons(X,L))) -> incr#(L)
   active#(incr(cons(X,L))) -> s#(X)
   active#(incr(cons(X,L))) -> cons#(s(X),incr(L))
   active#(adx(cons(X,L))) -> adx#(L)
   active#(adx(cons(X,L))) -> cons#(X,adx(L))
   active#(adx(cons(X,L))) -> incr#(cons(X,adx(L)))
   active#(nats()) -> adx#(zeros())
   active#(zeros()) -> cons#(0(),zeros())
   active#(incr(X)) -> active#(X)
   active#(incr(X)) -> incr#(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#(adx(X)) -> active#(X)
   active#(adx(X)) -> adx#(active(X))
   active#(head(X)) -> active#(X)
   active#(head(X)) -> head#(active(X))
   active#(tail(X)) -> active#(X)
   active#(tail(X)) -> tail#(active(X))
   incr#(mark(X)) -> incr#(X)
   cons#(mark(X1),X2) -> cons#(X1,X2)
   s#(mark(X)) -> s#(X)
   adx#(mark(X)) -> adx#(X)
   head#(mark(X)) -> head#(X)
   tail#(mark(X)) -> tail#(X)
   proper#(incr(X)) -> proper#(X)
   proper#(incr(X)) -> incr#(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#(adx(X)) -> proper#(X)
   proper#(adx(X)) -> adx#(proper(X))
   proper#(head(X)) -> proper#(X)
   proper#(head(X)) -> head#(proper(X))
   proper#(tail(X)) -> proper#(X)
   proper#(tail(X)) -> tail#(proper(X))
   incr#(ok(X)) -> incr#(X)
   cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
   s#(ok(X)) -> s#(X)
   adx#(ok(X)) -> adx#(X)
   head#(ok(X)) -> head#(X)
   tail#(ok(X)) -> tail#(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(incr(nil())) -> mark(nil())
   active(incr(cons(X,L))) -> mark(cons(s(X),incr(L)))
   active(adx(nil())) -> mark(nil())
   active(adx(cons(X,L))) -> mark(incr(cons(X,adx(L))))
   active(nats()) -> mark(adx(zeros()))
   active(zeros()) -> mark(cons(0(),zeros()))
   active(head(cons(X,L))) -> mark(X)
   active(tail(cons(X,L))) -> mark(L)
   active(incr(X)) -> incr(active(X))
   active(cons(X1,X2)) -> cons(active(X1),X2)
   active(s(X)) -> s(active(X))
   active(adx(X)) -> adx(active(X))
   active(head(X)) -> head(active(X))
   active(tail(X)) -> tail(active(X))
   incr(mark(X)) -> mark(incr(X))
   cons(mark(X1),X2) -> mark(cons(X1,X2))
   s(mark(X)) -> mark(s(X))
   adx(mark(X)) -> mark(adx(X))
   head(mark(X)) -> mark(head(X))
   tail(mark(X)) -> mark(tail(X))
   proper(incr(X)) -> incr(proper(X))
   proper(nil()) -> ok(nil())
   proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
   proper(s(X)) -> s(proper(X))
   proper(adx(X)) -> adx(proper(X))
   proper(nats()) -> ok(nats())
   proper(zeros()) -> ok(zeros())
   proper(0()) -> ok(0())
   proper(head(X)) -> head(proper(X))
   proper(tail(X)) -> tail(proper(X))
   incr(ok(X)) -> ok(incr(X))
   cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
   s(ok(X)) -> ok(s(X))
   adx(ok(X)) -> ok(adx(X))
   head(ok(X)) -> ok(head(X))
   tail(ok(X)) -> ok(tail(X))
   top(mark(X)) -> top(proper(X))
   top(ok(X)) -> top(active(X))
  EDG Processor:
   DPs:
    active#(incr(cons(X,L))) -> incr#(L)
    active#(incr(cons(X,L))) -> s#(X)
    active#(incr(cons(X,L))) -> cons#(s(X),incr(L))
    active#(adx(cons(X,L))) -> adx#(L)
    active#(adx(cons(X,L))) -> cons#(X,adx(L))
    active#(adx(cons(X,L))) -> incr#(cons(X,adx(L)))
    active#(nats()) -> adx#(zeros())
    active#(zeros()) -> cons#(0(),zeros())
    active#(incr(X)) -> active#(X)
    active#(incr(X)) -> incr#(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#(adx(X)) -> active#(X)
    active#(adx(X)) -> adx#(active(X))
    active#(head(X)) -> active#(X)
    active#(head(X)) -> head#(active(X))
    active#(tail(X)) -> active#(X)
    active#(tail(X)) -> tail#(active(X))
    incr#(mark(X)) -> incr#(X)
    cons#(mark(X1),X2) -> cons#(X1,X2)
    s#(mark(X)) -> s#(X)
    adx#(mark(X)) -> adx#(X)
    head#(mark(X)) -> head#(X)
    tail#(mark(X)) -> tail#(X)
    proper#(incr(X)) -> proper#(X)
    proper#(incr(X)) -> incr#(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#(adx(X)) -> proper#(X)
    proper#(adx(X)) -> adx#(proper(X))
    proper#(head(X)) -> proper#(X)
    proper#(head(X)) -> head#(proper(X))
    proper#(tail(X)) -> proper#(X)
    proper#(tail(X)) -> tail#(proper(X))
    incr#(ok(X)) -> incr#(X)
    cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
    s#(ok(X)) -> s#(X)
    adx#(ok(X)) -> adx#(X)
    head#(ok(X)) -> head#(X)
    tail#(ok(X)) -> tail#(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(incr(nil())) -> mark(nil())
    active(incr(cons(X,L))) -> mark(cons(s(X),incr(L)))
    active(adx(nil())) -> mark(nil())
    active(adx(cons(X,L))) -> mark(incr(cons(X,adx(L))))
    active(nats()) -> mark(adx(zeros()))
    active(zeros()) -> mark(cons(0(),zeros()))
    active(head(cons(X,L))) -> mark(X)
    active(tail(cons(X,L))) -> mark(L)
    active(incr(X)) -> incr(active(X))
    active(cons(X1,X2)) -> cons(active(X1),X2)
    active(s(X)) -> s(active(X))
    active(adx(X)) -> adx(active(X))
    active(head(X)) -> head(active(X))
    active(tail(X)) -> tail(active(X))
    incr(mark(X)) -> mark(incr(X))
    cons(mark(X1),X2) -> mark(cons(X1,X2))
    s(mark(X)) -> mark(s(X))
    adx(mark(X)) -> mark(adx(X))
    head(mark(X)) -> mark(head(X))
    tail(mark(X)) -> mark(tail(X))
    proper(incr(X)) -> incr(proper(X))
    proper(nil()) -> ok(nil())
    proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
    proper(s(X)) -> s(proper(X))
    proper(adx(X)) -> adx(proper(X))
    proper(nats()) -> ok(nats())
    proper(zeros()) -> ok(zeros())
    proper(0()) -> ok(0())
    proper(head(X)) -> head(proper(X))
    proper(tail(X)) -> tail(proper(X))
    incr(ok(X)) -> ok(incr(X))
    cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
    s(ok(X)) -> ok(s(X))
    adx(ok(X)) -> ok(adx(X))
    head(ok(X)) -> ok(head(X))
    tail(ok(X)) -> ok(tail(X))
    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#(incr(cons(X,L))) -> incr#(L)
    top#(ok(X)) -> active#(X) -> active#(incr(cons(X,L))) -> s#(X)
    top#(ok(X)) -> active#(X) ->
    active#(incr(cons(X,L))) -> cons#(s(X),incr(L))
    top#(ok(X)) -> active#(X) -> active#(adx(cons(X,L))) -> adx#(L)
    top#(ok(X)) -> active#(X) ->
    active#(adx(cons(X,L))) -> cons#(X,adx(L))
    top#(ok(X)) -> active#(X) ->
    active#(adx(cons(X,L))) -> incr#(cons(X,adx(L)))
    top#(ok(X)) -> active#(X) -> active#(nats()) -> adx#(zeros())
    top#(ok(X)) -> active#(X) -> active#(zeros()) -> cons#(0(),zeros())
    top#(ok(X)) -> active#(X) -> active#(incr(X)) -> active#(X)
    top#(ok(X)) -> active#(X) -> active#(incr(X)) -> incr#(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#(adx(X)) -> active#(X)
    top#(ok(X)) -> active#(X) -> active#(adx(X)) -> adx#(active(X))
    top#(ok(X)) -> active#(X) -> active#(head(X)) -> active#(X)
    top#(ok(X)) -> active#(X) -> active#(head(X)) -> head#(active(X))
    top#(ok(X)) -> active#(X) -> active#(tail(X)) -> active#(X)
    top#(ok(X)) -> active#(X) ->
    active#(tail(X)) -> tail#(active(X))
    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#(incr(X)) -> proper#(X)
    top#(mark(X)) -> proper#(X) -> proper#(incr(X)) -> incr#(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#(adx(X)) -> proper#(X)
    top#(mark(X)) -> proper#(X) -> proper#(adx(X)) -> adx#(proper(X))
    top#(mark(X)) -> proper#(X) -> proper#(head(X)) -> proper#(X)
    top#(mark(X)) -> proper#(X) -> proper#(head(X)) -> head#(proper(X))
    top#(mark(X)) -> proper#(X) -> proper#(tail(X)) -> proper#(X)
    top#(mark(X)) -> proper#(X) ->
    proper#(tail(X)) -> tail#(proper(X))
    proper#(tail(X)) -> proper#(X) -> proper#(incr(X)) -> proper#(X)
    proper#(tail(X)) -> proper#(X) ->
    proper#(incr(X)) -> incr#(proper(X))
    proper#(tail(X)) -> proper#(X) ->
    proper#(cons(X1,X2)) -> proper#(X2)
    proper#(tail(X)) -> proper#(X) ->
    proper#(cons(X1,X2)) -> proper#(X1)
    proper#(tail(X)) -> proper#(X) ->
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    proper#(tail(X)) -> proper#(X) -> proper#(s(X)) -> proper#(X)
    proper#(tail(X)) -> proper#(X) -> proper#(s(X)) -> s#(proper(X))
    proper#(tail(X)) -> proper#(X) -> proper#(adx(X)) -> proper#(X)
    proper#(tail(X)) -> proper#(X) ->
    proper#(adx(X)) -> adx#(proper(X))
    proper#(tail(X)) -> proper#(X) -> proper#(head(X)) -> proper#(X)
    proper#(tail(X)) -> proper#(X) ->
    proper#(head(X)) -> head#(proper(X))
    proper#(tail(X)) -> proper#(X) -> proper#(tail(X)) -> proper#(X)
    proper#(tail(X)) -> proper#(X) ->
    proper#(tail(X)) -> tail#(proper(X))
    proper#(tail(X)) -> tail#(proper(X)) ->
    tail#(mark(X)) -> tail#(X)
    proper#(tail(X)) -> tail#(proper(X)) -> tail#(ok(X)) -> tail#(X)
    proper#(head(X)) -> proper#(X) -> proper#(incr(X)) -> proper#(X)
    proper#(head(X)) -> proper#(X) ->
    proper#(incr(X)) -> incr#(proper(X))
    proper#(head(X)) -> proper#(X) ->
    proper#(cons(X1,X2)) -> proper#(X2)
    proper#(head(X)) -> proper#(X) ->
    proper#(cons(X1,X2)) -> proper#(X1)
    proper#(head(X)) -> proper#(X) ->
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    proper#(head(X)) -> proper#(X) -> proper#(s(X)) -> proper#(X)
    proper#(head(X)) -> proper#(X) -> proper#(s(X)) -> s#(proper(X))
    proper#(head(X)) -> proper#(X) -> proper#(adx(X)) -> proper#(X)
    proper#(head(X)) -> proper#(X) ->
    proper#(adx(X)) -> adx#(proper(X))
    proper#(head(X)) -> proper#(X) -> proper#(head(X)) -> proper#(X)
    proper#(head(X)) -> proper#(X) ->
    proper#(head(X)) -> head#(proper(X))
    proper#(head(X)) -> proper#(X) -> proper#(tail(X)) -> proper#(X)
    proper#(head(X)) -> proper#(X) ->
    proper#(tail(X)) -> tail#(proper(X))
    proper#(head(X)) -> head#(proper(X)) ->
    head#(mark(X)) -> head#(X)
    proper#(head(X)) -> head#(proper(X)) -> head#(ok(X)) -> head#(X)
    proper#(adx(X)) -> proper#(X) -> proper#(incr(X)) -> proper#(X)
    proper#(adx(X)) -> proper#(X) ->
    proper#(incr(X)) -> incr#(proper(X))
    proper#(adx(X)) -> proper#(X) ->
    proper#(cons(X1,X2)) -> proper#(X2)
    proper#(adx(X)) -> proper#(X) ->
    proper#(cons(X1,X2)) -> proper#(X1)
    proper#(adx(X)) -> proper#(X) ->
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    proper#(adx(X)) -> proper#(X) -> proper#(s(X)) -> proper#(X)
    proper#(adx(X)) -> proper#(X) -> proper#(s(X)) -> s#(proper(X))
    proper#(adx(X)) -> proper#(X) -> proper#(adx(X)) -> proper#(X)
    proper#(adx(X)) -> proper#(X) ->
    proper#(adx(X)) -> adx#(proper(X))
    proper#(adx(X)) -> proper#(X) -> proper#(head(X)) -> proper#(X)
    proper#(adx(X)) -> proper#(X) ->
    proper#(head(X)) -> head#(proper(X))
    proper#(adx(X)) -> proper#(X) -> proper#(tail(X)) -> proper#(X)
    proper#(adx(X)) -> proper#(X) ->
    proper#(tail(X)) -> tail#(proper(X))
    proper#(adx(X)) -> adx#(proper(X)) ->
    adx#(mark(X)) -> adx#(X)
    proper#(adx(X)) -> adx#(proper(X)) -> adx#(ok(X)) -> adx#(X)
    proper#(s(X)) -> proper#(X) -> proper#(incr(X)) -> proper#(X)
    proper#(s(X)) -> proper#(X) -> proper#(incr(X)) -> incr#(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#(adx(X)) -> proper#(X)
    proper#(s(X)) -> proper#(X) -> proper#(adx(X)) -> adx#(proper(X))
    proper#(s(X)) -> proper#(X) -> proper#(head(X)) -> proper#(X)
    proper#(s(X)) -> proper#(X) -> proper#(head(X)) -> head#(proper(X))
    proper#(s(X)) -> proper#(X) -> proper#(tail(X)) -> proper#(X)
    proper#(s(X)) -> proper#(X) ->
    proper#(tail(X)) -> tail#(proper(X))
    proper#(s(X)) -> s#(proper(X)) -> s#(mark(X)) -> s#(X)
    proper#(s(X)) -> s#(proper(X)) -> s#(ok(X)) -> s#(X)
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(incr(X)) -> proper#(X)
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(incr(X)) -> incr#(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#(adx(X)) -> proper#(X)
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(adx(X)) -> adx#(proper(X))
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(head(X)) -> proper#(X)
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(head(X)) -> head#(proper(X))
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(tail(X)) -> proper#(X)
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(tail(X)) -> tail#(proper(X))
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(incr(X)) -> proper#(X)
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(incr(X)) -> incr#(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#(adx(X)) -> proper#(X)
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(adx(X)) -> adx#(proper(X))
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(head(X)) -> proper#(X)
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(head(X)) -> head#(proper(X))
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(tail(X)) -> proper#(X)
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(tail(X)) -> tail#(proper(X))
    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#(incr(X)) -> proper#(X) -> proper#(incr(X)) -> proper#(X)
    proper#(incr(X)) -> proper#(X) ->
    proper#(incr(X)) -> incr#(proper(X))
    proper#(incr(X)) -> proper#(X) ->
    proper#(cons(X1,X2)) -> proper#(X2)
    proper#(incr(X)) -> proper#(X) ->
    proper#(cons(X1,X2)) -> proper#(X1)
    proper#(incr(X)) -> proper#(X) ->
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    proper#(incr(X)) -> proper#(X) -> proper#(s(X)) -> proper#(X)
    proper#(incr(X)) -> proper#(X) -> proper#(s(X)) -> s#(proper(X))
    proper#(incr(X)) -> proper#(X) -> proper#(adx(X)) -> proper#(X)
    proper#(incr(X)) -> proper#(X) ->
    proper#(adx(X)) -> adx#(proper(X))
    proper#(incr(X)) -> proper#(X) -> proper#(head(X)) -> proper#(X)
    proper#(incr(X)) -> proper#(X) ->
    proper#(head(X)) -> head#(proper(X))
    proper#(incr(X)) -> proper#(X) -> proper#(tail(X)) -> proper#(X)
    proper#(incr(X)) -> proper#(X) ->
    proper#(tail(X)) -> tail#(proper(X))
    proper#(incr(X)) -> incr#(proper(X)) ->
    incr#(mark(X)) -> incr#(X)
    proper#(incr(X)) -> incr#(proper(X)) -> incr#(ok(X)) -> incr#(X)
    tail#(ok(X)) -> tail#(X) -> tail#(mark(X)) -> tail#(X)
    tail#(ok(X)) -> tail#(X) -> tail#(ok(X)) -> tail#(X)
    tail#(mark(X)) -> tail#(X) -> tail#(mark(X)) -> tail#(X)
    tail#(mark(X)) -> tail#(X) -> tail#(ok(X)) -> tail#(X)
    head#(ok(X)) -> head#(X) -> head#(mark(X)) -> head#(X)
    head#(ok(X)) -> head#(X) -> head#(ok(X)) -> head#(X)
    head#(mark(X)) -> head#(X) -> head#(mark(X)) -> head#(X)
    head#(mark(X)) -> head#(X) -> head#(ok(X)) -> head#(X)
    adx#(ok(X)) -> adx#(X) -> adx#(mark(X)) -> adx#(X)
    adx#(ok(X)) -> adx#(X) -> adx#(ok(X)) -> adx#(X)
    adx#(mark(X)) -> adx#(X) -> adx#(mark(X)) -> adx#(X)
    adx#(mark(X)) -> adx#(X) -> adx#(ok(X)) -> adx#(X)
    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)
    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)
    incr#(ok(X)) -> incr#(X) -> incr#(mark(X)) -> incr#(X)
    incr#(ok(X)) -> incr#(X) -> incr#(ok(X)) -> incr#(X)
    incr#(mark(X)) -> incr#(X) -> incr#(mark(X)) -> incr#(X)
    incr#(mark(X)) -> incr#(X) -> incr#(ok(X)) -> incr#(X)
    active#(tail(X)) -> tail#(active(X)) ->
    tail#(mark(X)) -> tail#(X)
    active#(tail(X)) -> tail#(active(X)) -> tail#(ok(X)) -> tail#(X)
    active#(tail(X)) -> active#(X) ->
    active#(incr(cons(X,L))) -> incr#(L)
    active#(tail(X)) -> active#(X) ->
    active#(incr(cons(X,L))) -> s#(X)
    active#(tail(X)) -> active#(X) ->
    active#(incr(cons(X,L))) -> cons#(s(X),incr(L))
    active#(tail(X)) -> active#(X) ->
    active#(adx(cons(X,L))) -> adx#(L)
    active#(tail(X)) -> active#(X) ->
    active#(adx(cons(X,L))) -> cons#(X,adx(L))
    active#(tail(X)) -> active#(X) ->
    active#(adx(cons(X,L))) -> incr#(cons(X,adx(L)))
    active#(tail(X)) -> active#(X) ->
    active#(nats()) -> adx#(zeros())
    active#(tail(X)) -> active#(X) ->
    active#(zeros()) -> cons#(0(),zeros())
    active#(tail(X)) -> active#(X) -> active#(incr(X)) -> active#(X)
    active#(tail(X)) -> active#(X) ->
    active#(incr(X)) -> incr#(active(X))
    active#(tail(X)) -> active#(X) ->
    active#(cons(X1,X2)) -> active#(X1)
    active#(tail(X)) -> active#(X) ->
    active#(cons(X1,X2)) -> cons#(active(X1),X2)
    active#(tail(X)) -> active#(X) -> active#(s(X)) -> active#(X)
    active#(tail(X)) -> active#(X) -> active#(s(X)) -> s#(active(X))
    active#(tail(X)) -> active#(X) -> active#(adx(X)) -> active#(X)
    active#(tail(X)) -> active#(X) ->
    active#(adx(X)) -> adx#(active(X))
    active#(tail(X)) -> active#(X) -> active#(head(X)) -> active#(X)
    active#(tail(X)) -> active#(X) ->
    active#(head(X)) -> head#(active(X))
    active#(tail(X)) -> active#(X) -> active#(tail(X)) -> active#(X)
    active#(tail(X)) -> active#(X) ->
    active#(tail(X)) -> tail#(active(X))
    active#(head(X)) -> head#(active(X)) ->
    head#(mark(X)) -> head#(X)
    active#(head(X)) -> head#(active(X)) -> head#(ok(X)) -> head#(X)
    active#(head(X)) -> active#(X) ->
    active#(incr(cons(X,L))) -> incr#(L)
    active#(head(X)) -> active#(X) ->
    active#(incr(cons(X,L))) -> s#(X)
    active#(head(X)) -> active#(X) ->
    active#(incr(cons(X,L))) -> cons#(s(X),incr(L))
    active#(head(X)) -> active#(X) ->
    active#(adx(cons(X,L))) -> adx#(L)
    active#(head(X)) -> active#(X) ->
    active#(adx(cons(X,L))) -> cons#(X,adx(L))
    active#(head(X)) -> active#(X) ->
    active#(adx(cons(X,L))) -> incr#(cons(X,adx(L)))
    active#(head(X)) -> active#(X) ->
    active#(nats()) -> adx#(zeros())
    active#(head(X)) -> active#(X) ->
    active#(zeros()) -> cons#(0(),zeros())
    active#(head(X)) -> active#(X) -> active#(incr(X)) -> active#(X)
    active#(head(X)) -> active#(X) ->
    active#(incr(X)) -> incr#(active(X))
    active#(head(X)) -> active#(X) ->
    active#(cons(X1,X2)) -> active#(X1)
    active#(head(X)) -> active#(X) ->
    active#(cons(X1,X2)) -> cons#(active(X1),X2)
    active#(head(X)) -> active#(X) -> active#(s(X)) -> active#(X)
    active#(head(X)) -> active#(X) -> active#(s(X)) -> s#(active(X))
    active#(head(X)) -> active#(X) -> active#(adx(X)) -> active#(X)
    active#(head(X)) -> active#(X) ->
    active#(adx(X)) -> adx#(active(X))
    active#(head(X)) -> active#(X) -> active#(head(X)) -> active#(X)
    active#(head(X)) -> active#(X) ->
    active#(head(X)) -> head#(active(X))
    active#(head(X)) -> active#(X) -> active#(tail(X)) -> active#(X)
    active#(head(X)) -> active#(X) ->
    active#(tail(X)) -> tail#(active(X))
    active#(adx(cons(X,L))) -> adx#(L) ->
    adx#(mark(X)) -> adx#(X)
    active#(adx(cons(X,L))) -> adx#(L) ->
    adx#(ok(X)) -> adx#(X)
    active#(adx(cons(X,L))) -> cons#(X,adx(L)) ->
    cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
    active#(adx(cons(X,L))) -> incr#(cons(X,adx(L))) ->
    incr#(mark(X)) -> incr#(X)
    active#(adx(cons(X,L))) -> incr#(cons(X,adx(L))) ->
    incr#(ok(X)) -> incr#(X)
    active#(adx(X)) -> adx#(active(X)) ->
    adx#(mark(X)) -> adx#(X)
    active#(adx(X)) -> adx#(active(X)) -> adx#(ok(X)) -> adx#(X)
    active#(adx(X)) -> active#(X) ->
    active#(incr(cons(X,L))) -> incr#(L)
    active#(adx(X)) -> active#(X) -> active#(incr(cons(X,L))) -> s#(X)
    active#(adx(X)) -> active#(X) ->
    active#(incr(cons(X,L))) -> cons#(s(X),incr(L))
    active#(adx(X)) -> active#(X) ->
    active#(adx(cons(X,L))) -> adx#(L)
    active#(adx(X)) -> active#(X) ->
    active#(adx(cons(X,L))) -> cons#(X,adx(L))
    active#(adx(X)) -> active#(X) ->
    active#(adx(cons(X,L))) -> incr#(cons(X,adx(L)))
    active#(adx(X)) -> active#(X) -> active#(nats()) -> adx#(zeros())
    active#(adx(X)) -> active#(X) ->
    active#(zeros()) -> cons#(0(),zeros())
    active#(adx(X)) -> active#(X) -> active#(incr(X)) -> active#(X)
    active#(adx(X)) -> active#(X) ->
    active#(incr(X)) -> incr#(active(X))
    active#(adx(X)) -> active#(X) ->
    active#(cons(X1,X2)) -> active#(X1)
    active#(adx(X)) -> active#(X) ->
    active#(cons(X1,X2)) -> cons#(active(X1),X2)
    active#(adx(X)) -> active#(X) -> active#(s(X)) -> active#(X)
    active#(adx(X)) -> active#(X) -> active#(s(X)) -> s#(active(X))
    active#(adx(X)) -> active#(X) -> active#(adx(X)) -> active#(X)
    active#(adx(X)) -> active#(X) ->
    active#(adx(X)) -> adx#(active(X))
    active#(adx(X)) -> active#(X) -> active#(head(X)) -> active#(X)
    active#(adx(X)) -> active#(X) ->
    active#(head(X)) -> head#(active(X))
    active#(adx(X)) -> active#(X) -> active#(tail(X)) -> active#(X)
    active#(adx(X)) -> active#(X) ->
    active#(tail(X)) -> tail#(active(X))
    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#(incr(cons(X,L))) -> incr#(L)
    active#(s(X)) -> active#(X) -> active#(incr(cons(X,L))) -> s#(X)
    active#(s(X)) -> active#(X) ->
    active#(incr(cons(X,L))) -> cons#(s(X),incr(L))
    active#(s(X)) -> active#(X) -> active#(adx(cons(X,L))) -> adx#(L)
    active#(s(X)) -> active#(X) ->
    active#(adx(cons(X,L))) -> cons#(X,adx(L))
    active#(s(X)) -> active#(X) ->
    active#(adx(cons(X,L))) -> incr#(cons(X,adx(L)))
    active#(s(X)) -> active#(X) -> active#(nats()) -> adx#(zeros())
    active#(s(X)) -> active#(X) ->
    active#(zeros()) -> cons#(0(),zeros())
    active#(s(X)) -> active#(X) -> active#(incr(X)) -> active#(X)
    active#(s(X)) -> active#(X) -> active#(incr(X)) -> incr#(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#(adx(X)) -> active#(X)
    active#(s(X)) -> active#(X) -> active#(adx(X)) -> adx#(active(X))
    active#(s(X)) -> active#(X) -> active#(head(X)) -> active#(X)
    active#(s(X)) -> active#(X) -> active#(head(X)) -> head#(active(X))
    active#(s(X)) -> active#(X) -> active#(tail(X)) -> active#(X)
    active#(s(X)) -> active#(X) ->
    active#(tail(X)) -> tail#(active(X))
    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#(incr(cons(X,L))) -> incr#(L)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(incr(cons(X,L))) -> s#(X)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(incr(cons(X,L))) -> cons#(s(X),incr(L))
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(adx(cons(X,L))) -> adx#(L)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(adx(cons(X,L))) -> cons#(X,adx(L))
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(adx(cons(X,L))) -> incr#(cons(X,adx(L)))
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(nats()) -> adx#(zeros())
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(zeros()) -> cons#(0(),zeros())
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(incr(X)) -> active#(X)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(incr(X)) -> incr#(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#(adx(X)) -> active#(X)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(adx(X)) -> adx#(active(X))
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(head(X)) -> active#(X)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(head(X)) -> head#(active(X))
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(tail(X)) -> active#(X)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(tail(X)) -> tail#(active(X))
    active#(incr(cons(X,L))) -> s#(X) -> s#(ok(X)) -> s#(X)
    active#(incr(cons(X,L))) -> incr#(L) ->
    incr#(mark(X)) -> incr#(X)
    active#(incr(cons(X,L))) -> incr#(L) ->
    incr#(ok(X)) -> incr#(X)
    active#(incr(X)) -> incr#(active(X)) ->
    incr#(mark(X)) -> incr#(X)
    active#(incr(X)) -> incr#(active(X)) -> incr#(ok(X)) -> incr#(X)
    active#(incr(X)) -> active#(X) ->
    active#(incr(cons(X,L))) -> incr#(L)
    active#(incr(X)) -> active#(X) ->
    active#(incr(cons(X,L))) -> s#(X)
    active#(incr(X)) -> active#(X) ->
    active#(incr(cons(X,L))) -> cons#(s(X),incr(L))
    active#(incr(X)) -> active#(X) ->
    active#(adx(cons(X,L))) -> adx#(L)
    active#(incr(X)) -> active#(X) ->
    active#(adx(cons(X,L))) -> cons#(X,adx(L))
    active#(incr(X)) -> active#(X) ->
    active#(adx(cons(X,L))) -> incr#(cons(X,adx(L)))
    active#(incr(X)) -> active#(X) ->
    active#(nats()) -> adx#(zeros())
    active#(incr(X)) -> active#(X) ->
    active#(zeros()) -> cons#(0(),zeros())
    active#(incr(X)) -> active#(X) -> active#(incr(X)) -> active#(X)
    active#(incr(X)) -> active#(X) ->
    active#(incr(X)) -> incr#(active(X))
    active#(incr(X)) -> active#(X) ->
    active#(cons(X1,X2)) -> active#(X1)
    active#(incr(X)) -> active#(X) ->
    active#(cons(X1,X2)) -> cons#(active(X1),X2)
    active#(incr(X)) -> active#(X) -> active#(s(X)) -> active#(X)
    active#(incr(X)) -> active#(X) -> active#(s(X)) -> s#(active(X))
    active#(incr(X)) -> active#(X) -> active#(adx(X)) -> active#(X)
    active#(incr(X)) -> active#(X) ->
    active#(adx(X)) -> adx#(active(X))
    active#(incr(X)) -> active#(X) -> active#(head(X)) -> active#(X)
    active#(incr(X)) -> active#(X) ->
    active#(head(X)) -> head#(active(X))
    active#(incr(X)) -> active#(X) -> active#(tail(X)) -> active#(X)
    active#(incr(X)) -> active#(X) -> active#(tail(X)) -> tail#(active(X))
   SCC Processor:
    #sccs: 9
    #rules: 27
    #arcs: 308/2401
    DPs:
     top#(ok(X)) -> top#(active(X))
     top#(mark(X)) -> top#(proper(X))
    TRS:
     active(incr(nil())) -> mark(nil())
     active(incr(cons(X,L))) -> mark(cons(s(X),incr(L)))
     active(adx(nil())) -> mark(nil())
     active(adx(cons(X,L))) -> mark(incr(cons(X,adx(L))))
     active(nats()) -> mark(adx(zeros()))
     active(zeros()) -> mark(cons(0(),zeros()))
     active(head(cons(X,L))) -> mark(X)
     active(tail(cons(X,L))) -> mark(L)
     active(incr(X)) -> incr(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(s(X)) -> s(active(X))
     active(adx(X)) -> adx(active(X))
     active(head(X)) -> head(active(X))
     active(tail(X)) -> tail(active(X))
     incr(mark(X)) -> mark(incr(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     s(mark(X)) -> mark(s(X))
     adx(mark(X)) -> mark(adx(X))
     head(mark(X)) -> mark(head(X))
     tail(mark(X)) -> mark(tail(X))
     proper(incr(X)) -> incr(proper(X))
     proper(nil()) -> ok(nil())
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(s(X)) -> s(proper(X))
     proper(adx(X)) -> adx(proper(X))
     proper(nats()) -> ok(nats())
     proper(zeros()) -> ok(zeros())
     proper(0()) -> ok(0())
     proper(head(X)) -> head(proper(X))
     proper(tail(X)) -> tail(proper(X))
     incr(ok(X)) -> ok(incr(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     s(ok(X)) -> ok(s(X))
     adx(ok(X)) -> ok(adx(X))
     head(ok(X)) -> ok(head(X))
     tail(ok(X)) -> ok(tail(X))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Open
    
    DPs:
     proper#(tail(X)) -> proper#(X)
     proper#(head(X)) -> proper#(X)
     proper#(adx(X)) -> proper#(X)
     proper#(s(X)) -> proper#(X)
     proper#(cons(X1,X2)) -> proper#(X1)
     proper#(cons(X1,X2)) -> proper#(X2)
     proper#(incr(X)) -> proper#(X)
    TRS:
     active(incr(nil())) -> mark(nil())
     active(incr(cons(X,L))) -> mark(cons(s(X),incr(L)))
     active(adx(nil())) -> mark(nil())
     active(adx(cons(X,L))) -> mark(incr(cons(X,adx(L))))
     active(nats()) -> mark(adx(zeros()))
     active(zeros()) -> mark(cons(0(),zeros()))
     active(head(cons(X,L))) -> mark(X)
     active(tail(cons(X,L))) -> mark(L)
     active(incr(X)) -> incr(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(s(X)) -> s(active(X))
     active(adx(X)) -> adx(active(X))
     active(head(X)) -> head(active(X))
     active(tail(X)) -> tail(active(X))
     incr(mark(X)) -> mark(incr(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     s(mark(X)) -> mark(s(X))
     adx(mark(X)) -> mark(adx(X))
     head(mark(X)) -> mark(head(X))
     tail(mark(X)) -> mark(tail(X))
     proper(incr(X)) -> incr(proper(X))
     proper(nil()) -> ok(nil())
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(s(X)) -> s(proper(X))
     proper(adx(X)) -> adx(proper(X))
     proper(nats()) -> ok(nats())
     proper(zeros()) -> ok(zeros())
     proper(0()) -> ok(0())
     proper(head(X)) -> head(proper(X))
     proper(tail(X)) -> tail(proper(X))
     incr(ok(X)) -> ok(incr(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     s(ok(X)) -> ok(s(X))
     adx(ok(X)) -> ok(adx(X))
     head(ok(X)) -> ok(head(X))
     tail(ok(X)) -> ok(tail(X))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Matrix Interpretation Processor:
     dimension: 1
     interpretation:
      [proper#](x0) = x0 + 1,
      
      [top](x0) = 0,
      
      [ok](x0) = 0,
      
      [proper](x0) = x0,
      
      [tail](x0) = x0 + 1,
      
      [head](x0) = x0 + 1,
      
      [0] = 0,
      
      [zeros] = 1,
      
      [nats] = 1,
      
      [adx](x0) = x0 + 1,
      
      [s](x0) = x0 + 1,
      
      [cons](x0, x1) = x0 + x1 + 1,
      
      [mark](x0) = 1,
      
      [active](x0) = x0,
      
      [incr](x0) = x0 + 1,
      
      [nil] = 0
     orientation:
      proper#(tail(X)) = X + 2 >= X + 1 = proper#(X)
      
      proper#(head(X)) = X + 2 >= X + 1 = proper#(X)
      
      proper#(adx(X)) = X + 2 >= X + 1 = proper#(X)
      
      proper#(s(X)) = X + 2 >= X + 1 = proper#(X)
      
      proper#(cons(X1,X2)) = X1 + X2 + 2 >= X1 + 1 = proper#(X1)
      
      proper#(cons(X1,X2)) = X1 + X2 + 2 >= X2 + 1 = proper#(X2)
      
      proper#(incr(X)) = X + 2 >= X + 1 = proper#(X)
      
      active(incr(nil())) = 1 >= 1 = mark(nil())
      
      active(incr(cons(X,L))) = L + X + 2 >= 1 = mark(cons(s(X),incr(L)))
      
      active(adx(nil())) = 1 >= 1 = mark(nil())
      
      active(adx(cons(X,L))) = L + X + 2 >= 1 = mark(incr(cons(X,adx(L))))
      
      active(nats()) = 1 >= 1 = mark(adx(zeros()))
      
      active(zeros()) = 1 >= 1 = mark(cons(0(),zeros()))
      
      active(head(cons(X,L))) = L + X + 2 >= 1 = mark(X)
      
      active(tail(cons(X,L))) = L + X + 2 >= 1 = mark(L)
      
      active(incr(X)) = X + 1 >= X + 1 = incr(active(X))
      
      active(cons(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = cons(active(X1),X2)
      
      active(s(X)) = X + 1 >= X + 1 = s(active(X))
      
      active(adx(X)) = X + 1 >= X + 1 = adx(active(X))
      
      active(head(X)) = X + 1 >= X + 1 = head(active(X))
      
      active(tail(X)) = X + 1 >= X + 1 = tail(active(X))
      
      incr(mark(X)) = 2 >= 1 = mark(incr(X))
      
      cons(mark(X1),X2) = X2 + 2 >= 1 = mark(cons(X1,X2))
      
      s(mark(X)) = 2 >= 1 = mark(s(X))
      
      adx(mark(X)) = 2 >= 1 = mark(adx(X))
      
      head(mark(X)) = 2 >= 1 = mark(head(X))
      
      tail(mark(X)) = 2 >= 1 = mark(tail(X))
      
      proper(incr(X)) = X + 1 >= X + 1 = incr(proper(X))
      
      proper(nil()) = 0 >= 0 = ok(nil())
      
      proper(cons(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = cons(proper(X1),proper(X2))
      
      proper(s(X)) = X + 1 >= X + 1 = s(proper(X))
      
      proper(adx(X)) = X + 1 >= X + 1 = adx(proper(X))
      
      proper(nats()) = 1 >= 0 = ok(nats())
      
      proper(zeros()) = 1 >= 0 = ok(zeros())
      
      proper(0()) = 0 >= 0 = ok(0())
      
      proper(head(X)) = X + 1 >= X + 1 = head(proper(X))
      
      proper(tail(X)) = X + 1 >= X + 1 = tail(proper(X))
      
      incr(ok(X)) = 1 >= 0 = ok(incr(X))
      
      cons(ok(X1),ok(X2)) = 1 >= 0 = ok(cons(X1,X2))
      
      s(ok(X)) = 1 >= 0 = ok(s(X))
      
      adx(ok(X)) = 1 >= 0 = ok(adx(X))
      
      head(ok(X)) = 1 >= 0 = ok(head(X))
      
      tail(ok(X)) = 1 >= 0 = ok(tail(X))
      
      top(mark(X)) = 0 >= 0 = top(proper(X))
      
      top(ok(X)) = 0 >= 0 = top(active(X))
     problem:
      DPs:
       
      TRS:
       active(incr(nil())) -> mark(nil())
       active(incr(cons(X,L))) -> mark(cons(s(X),incr(L)))
       active(adx(nil())) -> mark(nil())
       active(adx(cons(X,L))) -> mark(incr(cons(X,adx(L))))
       active(nats()) -> mark(adx(zeros()))
       active(zeros()) -> mark(cons(0(),zeros()))
       active(head(cons(X,L))) -> mark(X)
       active(tail(cons(X,L))) -> mark(L)
       active(incr(X)) -> incr(active(X))
       active(cons(X1,X2)) -> cons(active(X1),X2)
       active(s(X)) -> s(active(X))
       active(adx(X)) -> adx(active(X))
       active(head(X)) -> head(active(X))
       active(tail(X)) -> tail(active(X))
       incr(mark(X)) -> mark(incr(X))
       cons(mark(X1),X2) -> mark(cons(X1,X2))
       s(mark(X)) -> mark(s(X))
       adx(mark(X)) -> mark(adx(X))
       head(mark(X)) -> mark(head(X))
       tail(mark(X)) -> mark(tail(X))
       proper(incr(X)) -> incr(proper(X))
       proper(nil()) -> ok(nil())
       proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
       proper(s(X)) -> s(proper(X))
       proper(adx(X)) -> adx(proper(X))
       proper(nats()) -> ok(nats())
       proper(zeros()) -> ok(zeros())
       proper(0()) -> ok(0())
       proper(head(X)) -> head(proper(X))
       proper(tail(X)) -> tail(proper(X))
       incr(ok(X)) -> ok(incr(X))
       cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
       s(ok(X)) -> ok(s(X))
       adx(ok(X)) -> ok(adx(X))
       head(ok(X)) -> ok(head(X))
       tail(ok(X)) -> ok(tail(X))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Qed
    
    DPs:
     active#(tail(X)) -> active#(X)
     active#(head(X)) -> active#(X)
     active#(adx(X)) -> active#(X)
     active#(s(X)) -> active#(X)
     active#(cons(X1,X2)) -> active#(X1)
     active#(incr(X)) -> active#(X)
    TRS:
     active(incr(nil())) -> mark(nil())
     active(incr(cons(X,L))) -> mark(cons(s(X),incr(L)))
     active(adx(nil())) -> mark(nil())
     active(adx(cons(X,L))) -> mark(incr(cons(X,adx(L))))
     active(nats()) -> mark(adx(zeros()))
     active(zeros()) -> mark(cons(0(),zeros()))
     active(head(cons(X,L))) -> mark(X)
     active(tail(cons(X,L))) -> mark(L)
     active(incr(X)) -> incr(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(s(X)) -> s(active(X))
     active(adx(X)) -> adx(active(X))
     active(head(X)) -> head(active(X))
     active(tail(X)) -> tail(active(X))
     incr(mark(X)) -> mark(incr(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     s(mark(X)) -> mark(s(X))
     adx(mark(X)) -> mark(adx(X))
     head(mark(X)) -> mark(head(X))
     tail(mark(X)) -> mark(tail(X))
     proper(incr(X)) -> incr(proper(X))
     proper(nil()) -> ok(nil())
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(s(X)) -> s(proper(X))
     proper(adx(X)) -> adx(proper(X))
     proper(nats()) -> ok(nats())
     proper(zeros()) -> ok(zeros())
     proper(0()) -> ok(0())
     proper(head(X)) -> head(proper(X))
     proper(tail(X)) -> tail(proper(X))
     incr(ok(X)) -> ok(incr(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     s(ok(X)) -> ok(s(X))
     adx(ok(X)) -> ok(adx(X))
     head(ok(X)) -> ok(head(X))
     tail(ok(X)) -> ok(tail(X))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Matrix Interpretation Processor:
     dimension: 1
     interpretation:
      [active#](x0) = x0 + 1,
      
      [top](x0) = 0,
      
      [ok](x0) = x0 + 1,
      
      [proper](x0) = x0 + 1,
      
      [tail](x0) = x0 + 1,
      
      [head](x0) = x0 + 1,
      
      [0] = 1,
      
      [zeros] = 1,
      
      [nats] = 0,
      
      [adx](x0) = x0 + 1,
      
      [s](x0) = x0 + 1,
      
      [cons](x0, x1) = x0 + 1,
      
      [mark](x0) = 0,
      
      [active](x0) = x0 + 1,
      
      [incr](x0) = x0 + 1,
      
      [nil] = 0
     orientation:
      active#(tail(X)) = X + 2 >= X + 1 = active#(X)
      
      active#(head(X)) = X + 2 >= X + 1 = active#(X)
      
      active#(adx(X)) = X + 2 >= X + 1 = active#(X)
      
      active#(s(X)) = X + 2 >= X + 1 = active#(X)
      
      active#(cons(X1,X2)) = X1 + 2 >= X1 + 1 = active#(X1)
      
      active#(incr(X)) = X + 2 >= X + 1 = active#(X)
      
      active(incr(nil())) = 2 >= 0 = mark(nil())
      
      active(incr(cons(X,L))) = X + 3 >= 0 = mark(cons(s(X),incr(L)))
      
      active(adx(nil())) = 2 >= 0 = mark(nil())
      
      active(adx(cons(X,L))) = X + 3 >= 0 = mark(incr(cons(X,adx(L))))
      
      active(nats()) = 1 >= 0 = mark(adx(zeros()))
      
      active(zeros()) = 2 >= 0 = mark(cons(0(),zeros()))
      
      active(head(cons(X,L))) = X + 3 >= 0 = mark(X)
      
      active(tail(cons(X,L))) = X + 3 >= 0 = mark(L)
      
      active(incr(X)) = X + 2 >= X + 2 = incr(active(X))
      
      active(cons(X1,X2)) = X1 + 2 >= X1 + 2 = cons(active(X1),X2)
      
      active(s(X)) = X + 2 >= X + 2 = s(active(X))
      
      active(adx(X)) = X + 2 >= X + 2 = adx(active(X))
      
      active(head(X)) = X + 2 >= X + 2 = head(active(X))
      
      active(tail(X)) = X + 2 >= X + 2 = tail(active(X))
      
      incr(mark(X)) = 1 >= 0 = mark(incr(X))
      
      cons(mark(X1),X2) = 1 >= 0 = mark(cons(X1,X2))
      
      s(mark(X)) = 1 >= 0 = mark(s(X))
      
      adx(mark(X)) = 1 >= 0 = mark(adx(X))
      
      head(mark(X)) = 1 >= 0 = mark(head(X))
      
      tail(mark(X)) = 1 >= 0 = mark(tail(X))
      
      proper(incr(X)) = X + 2 >= X + 2 = incr(proper(X))
      
      proper(nil()) = 1 >= 1 = ok(nil())
      
      proper(cons(X1,X2)) = X1 + 2 >= X1 + 2 = cons(proper(X1),proper(X2))
      
      proper(s(X)) = X + 2 >= X + 2 = s(proper(X))
      
      proper(adx(X)) = X + 2 >= X + 2 = adx(proper(X))
      
      proper(nats()) = 1 >= 1 = ok(nats())
      
      proper(zeros()) = 2 >= 2 = ok(zeros())
      
      proper(0()) = 2 >= 2 = ok(0())
      
      proper(head(X)) = X + 2 >= X + 2 = head(proper(X))
      
      proper(tail(X)) = X + 2 >= X + 2 = tail(proper(X))
      
      incr(ok(X)) = X + 2 >= X + 2 = ok(incr(X))
      
      cons(ok(X1),ok(X2)) = X1 + 2 >= X1 + 2 = ok(cons(X1,X2))
      
      s(ok(X)) = X + 2 >= X + 2 = ok(s(X))
      
      adx(ok(X)) = X + 2 >= X + 2 = ok(adx(X))
      
      head(ok(X)) = X + 2 >= X + 2 = ok(head(X))
      
      tail(ok(X)) = X + 2 >= X + 2 = ok(tail(X))
      
      top(mark(X)) = 0 >= 0 = top(proper(X))
      
      top(ok(X)) = 0 >= 0 = top(active(X))
     problem:
      DPs:
       
      TRS:
       active(incr(nil())) -> mark(nil())
       active(incr(cons(X,L))) -> mark(cons(s(X),incr(L)))
       active(adx(nil())) -> mark(nil())
       active(adx(cons(X,L))) -> mark(incr(cons(X,adx(L))))
       active(nats()) -> mark(adx(zeros()))
       active(zeros()) -> mark(cons(0(),zeros()))
       active(head(cons(X,L))) -> mark(X)
       active(tail(cons(X,L))) -> mark(L)
       active(incr(X)) -> incr(active(X))
       active(cons(X1,X2)) -> cons(active(X1),X2)
       active(s(X)) -> s(active(X))
       active(adx(X)) -> adx(active(X))
       active(head(X)) -> head(active(X))
       active(tail(X)) -> tail(active(X))
       incr(mark(X)) -> mark(incr(X))
       cons(mark(X1),X2) -> mark(cons(X1,X2))
       s(mark(X)) -> mark(s(X))
       adx(mark(X)) -> mark(adx(X))
       head(mark(X)) -> mark(head(X))
       tail(mark(X)) -> mark(tail(X))
       proper(incr(X)) -> incr(proper(X))
       proper(nil()) -> ok(nil())
       proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
       proper(s(X)) -> s(proper(X))
       proper(adx(X)) -> adx(proper(X))
       proper(nats()) -> ok(nats())
       proper(zeros()) -> ok(zeros())
       proper(0()) -> ok(0())
       proper(head(X)) -> head(proper(X))
       proper(tail(X)) -> tail(proper(X))
       incr(ok(X)) -> ok(incr(X))
       cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
       s(ok(X)) -> ok(s(X))
       adx(ok(X)) -> ok(adx(X))
       head(ok(X)) -> ok(head(X))
       tail(ok(X)) -> ok(tail(X))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Qed
    
    DPs:
     incr#(ok(X)) -> incr#(X)
     incr#(mark(X)) -> incr#(X)
    TRS:
     active(incr(nil())) -> mark(nil())
     active(incr(cons(X,L))) -> mark(cons(s(X),incr(L)))
     active(adx(nil())) -> mark(nil())
     active(adx(cons(X,L))) -> mark(incr(cons(X,adx(L))))
     active(nats()) -> mark(adx(zeros()))
     active(zeros()) -> mark(cons(0(),zeros()))
     active(head(cons(X,L))) -> mark(X)
     active(tail(cons(X,L))) -> mark(L)
     active(incr(X)) -> incr(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(s(X)) -> s(active(X))
     active(adx(X)) -> adx(active(X))
     active(head(X)) -> head(active(X))
     active(tail(X)) -> tail(active(X))
     incr(mark(X)) -> mark(incr(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     s(mark(X)) -> mark(s(X))
     adx(mark(X)) -> mark(adx(X))
     head(mark(X)) -> mark(head(X))
     tail(mark(X)) -> mark(tail(X))
     proper(incr(X)) -> incr(proper(X))
     proper(nil()) -> ok(nil())
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(s(X)) -> s(proper(X))
     proper(adx(X)) -> adx(proper(X))
     proper(nats()) -> ok(nats())
     proper(zeros()) -> ok(zeros())
     proper(0()) -> ok(0())
     proper(head(X)) -> head(proper(X))
     proper(tail(X)) -> tail(proper(X))
     incr(ok(X)) -> ok(incr(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     s(ok(X)) -> ok(s(X))
     adx(ok(X)) -> ok(adx(X))
     head(ok(X)) -> ok(head(X))
     tail(ok(X)) -> ok(tail(X))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Matrix Interpretation Processor:
     dimension: 1
     interpretation:
      [incr#](x0) = x0 + 1,
      
      [top](x0) = 0,
      
      [ok](x0) = x0,
      
      [proper](x0) = x0,
      
      [tail](x0) = x0,
      
      [head](x0) = x0,
      
      [0] = 0,
      
      [zeros] = 0,
      
      [nats] = 1,
      
      [adx](x0) = x0,
      
      [s](x0) = x0,
      
      [cons](x0, x1) = x0 + x1,
      
      [mark](x0) = x0 + 1,
      
      [active](x0) = x0 + 1,
      
      [incr](x0) = x0,
      
      [nil] = 1
     orientation:
      incr#(ok(X)) = X + 1 >= X + 1 = incr#(X)
      
      incr#(mark(X)) = X + 2 >= X + 1 = incr#(X)
      
      active(incr(nil())) = 2 >= 2 = mark(nil())
      
      active(incr(cons(X,L))) = L + X + 1 >= L + X + 1 = mark(cons(s(X),incr(L)))
      
      active(adx(nil())) = 2 >= 2 = mark(nil())
      
      active(adx(cons(X,L))) = L + X + 1 >= L + X + 1 = mark(incr(cons(X,adx(L))))
      
      active(nats()) = 2 >= 1 = mark(adx(zeros()))
      
      active(zeros()) = 1 >= 1 = mark(cons(0(),zeros()))
      
      active(head(cons(X,L))) = L + X + 1 >= X + 1 = mark(X)
      
      active(tail(cons(X,L))) = L + X + 1 >= L + 1 = mark(L)
      
      active(incr(X)) = X + 1 >= X + 1 = incr(active(X))
      
      active(cons(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = cons(active(X1),X2)
      
      active(s(X)) = X + 1 >= X + 1 = s(active(X))
      
      active(adx(X)) = X + 1 >= X + 1 = adx(active(X))
      
      active(head(X)) = X + 1 >= X + 1 = head(active(X))
      
      active(tail(X)) = X + 1 >= X + 1 = tail(active(X))
      
      incr(mark(X)) = X + 1 >= X + 1 = mark(incr(X))
      
      cons(mark(X1),X2) = X1 + X2 + 1 >= X1 + X2 + 1 = mark(cons(X1,X2))
      
      s(mark(X)) = X + 1 >= X + 1 = mark(s(X))
      
      adx(mark(X)) = X + 1 >= X + 1 = mark(adx(X))
      
      head(mark(X)) = X + 1 >= X + 1 = mark(head(X))
      
      tail(mark(X)) = X + 1 >= X + 1 = mark(tail(X))
      
      proper(incr(X)) = X >= X = incr(proper(X))
      
      proper(nil()) = 1 >= 1 = ok(nil())
      
      proper(cons(X1,X2)) = X1 + X2 >= X1 + X2 = cons(proper(X1),proper(X2))
      
      proper(s(X)) = X >= X = s(proper(X))
      
      proper(adx(X)) = X >= X = adx(proper(X))
      
      proper(nats()) = 1 >= 1 = ok(nats())
      
      proper(zeros()) = 0 >= 0 = ok(zeros())
      
      proper(0()) = 0 >= 0 = ok(0())
      
      proper(head(X)) = X >= X = head(proper(X))
      
      proper(tail(X)) = X >= X = tail(proper(X))
      
      incr(ok(X)) = X >= X = ok(incr(X))
      
      cons(ok(X1),ok(X2)) = X1 + X2 >= X1 + X2 = ok(cons(X1,X2))
      
      s(ok(X)) = X >= X = ok(s(X))
      
      adx(ok(X)) = X >= X = ok(adx(X))
      
      head(ok(X)) = X >= X = ok(head(X))
      
      tail(ok(X)) = X >= X = ok(tail(X))
      
      top(mark(X)) = 0 >= 0 = top(proper(X))
      
      top(ok(X)) = 0 >= 0 = top(active(X))
     problem:
      DPs:
       incr#(ok(X)) -> incr#(X)
      TRS:
       active(incr(nil())) -> mark(nil())
       active(incr(cons(X,L))) -> mark(cons(s(X),incr(L)))
       active(adx(nil())) -> mark(nil())
       active(adx(cons(X,L))) -> mark(incr(cons(X,adx(L))))
       active(nats()) -> mark(adx(zeros()))
       active(zeros()) -> mark(cons(0(),zeros()))
       active(head(cons(X,L))) -> mark(X)
       active(tail(cons(X,L))) -> mark(L)
       active(incr(X)) -> incr(active(X))
       active(cons(X1,X2)) -> cons(active(X1),X2)
       active(s(X)) -> s(active(X))
       active(adx(X)) -> adx(active(X))
       active(head(X)) -> head(active(X))
       active(tail(X)) -> tail(active(X))
       incr(mark(X)) -> mark(incr(X))
       cons(mark(X1),X2) -> mark(cons(X1,X2))
       s(mark(X)) -> mark(s(X))
       adx(mark(X)) -> mark(adx(X))
       head(mark(X)) -> mark(head(X))
       tail(mark(X)) -> mark(tail(X))
       proper(incr(X)) -> incr(proper(X))
       proper(nil()) -> ok(nil())
       proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
       proper(s(X)) -> s(proper(X))
       proper(adx(X)) -> adx(proper(X))
       proper(nats()) -> ok(nats())
       proper(zeros()) -> ok(zeros())
       proper(0()) -> ok(0())
       proper(head(X)) -> head(proper(X))
       proper(tail(X)) -> tail(proper(X))
       incr(ok(X)) -> ok(incr(X))
       cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
       s(ok(X)) -> ok(s(X))
       adx(ok(X)) -> ok(adx(X))
       head(ok(X)) -> ok(head(X))
       tail(ok(X)) -> ok(tail(X))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Matrix Interpretation Processor:
      dimension: 1
      interpretation:
       [incr#](x0) = x0 + 1,
       
       [top](x0) = 0,
       
       [ok](x0) = x0 + 1,
       
       [proper](x0) = x0 + 1,
       
       [tail](x0) = x0,
       
       [head](x0) = x0,
       
       [0] = 1,
       
       [zeros] = 0,
       
       [nats] = 1,
       
       [adx](x0) = x0 + 1,
       
       [s](x0) = x0,
       
       [cons](x0, x1) = x1,
       
       [mark](x0) = 0,
       
       [active](x0) = x0 + 1,
       
       [incr](x0) = x0,
       
       [nil] = 0
      orientation:
       incr#(ok(X)) = X + 2 >= X + 1 = incr#(X)
       
       active(incr(nil())) = 1 >= 0 = mark(nil())
       
       active(incr(cons(X,L))) = L + 1 >= 0 = mark(cons(s(X),incr(L)))
       
       active(adx(nil())) = 2 >= 0 = mark(nil())
       
       active(adx(cons(X,L))) = L + 2 >= 0 = mark(incr(cons(X,adx(L))))
       
       active(nats()) = 2 >= 0 = mark(adx(zeros()))
       
       active(zeros()) = 1 >= 0 = mark(cons(0(),zeros()))
       
       active(head(cons(X,L))) = L + 1 >= 0 = mark(X)
       
       active(tail(cons(X,L))) = L + 1 >= 0 = mark(L)
       
       active(incr(X)) = X + 1 >= X + 1 = incr(active(X))
       
       active(cons(X1,X2)) = X2 + 1 >= X2 = cons(active(X1),X2)
       
       active(s(X)) = X + 1 >= X + 1 = s(active(X))
       
       active(adx(X)) = X + 2 >= X + 2 = adx(active(X))
       
       active(head(X)) = X + 1 >= X + 1 = head(active(X))
       
       active(tail(X)) = X + 1 >= X + 1 = tail(active(X))
       
       incr(mark(X)) = 0 >= 0 = mark(incr(X))
       
       cons(mark(X1),X2) = X2 >= 0 = mark(cons(X1,X2))
       
       s(mark(X)) = 0 >= 0 = mark(s(X))
       
       adx(mark(X)) = 1 >= 0 = mark(adx(X))
       
       head(mark(X)) = 0 >= 0 = mark(head(X))
       
       tail(mark(X)) = 0 >= 0 = mark(tail(X))
       
       proper(incr(X)) = X + 1 >= X + 1 = incr(proper(X))
       
       proper(nil()) = 1 >= 1 = ok(nil())
       
       proper(cons(X1,X2)) = X2 + 1 >= X2 + 1 = cons(proper(X1),proper(X2))
       
       proper(s(X)) = X + 1 >= X + 1 = s(proper(X))
       
       proper(adx(X)) = X + 2 >= X + 2 = adx(proper(X))
       
       proper(nats()) = 2 >= 2 = ok(nats())
       
       proper(zeros()) = 1 >= 1 = ok(zeros())
       
       proper(0()) = 2 >= 2 = ok(0())
       
       proper(head(X)) = X + 1 >= X + 1 = head(proper(X))
       
       proper(tail(X)) = X + 1 >= X + 1 = tail(proper(X))
       
       incr(ok(X)) = X + 1 >= X + 1 = ok(incr(X))
       
       cons(ok(X1),ok(X2)) = X2 + 1 >= X2 + 1 = ok(cons(X1,X2))
       
       s(ok(X)) = X + 1 >= X + 1 = ok(s(X))
       
       adx(ok(X)) = X + 2 >= X + 2 = ok(adx(X))
       
       head(ok(X)) = X + 1 >= X + 1 = ok(head(X))
       
       tail(ok(X)) = X + 1 >= X + 1 = ok(tail(X))
       
       top(mark(X)) = 0 >= 0 = top(proper(X))
       
       top(ok(X)) = 0 >= 0 = top(active(X))
      problem:
       DPs:
        
       TRS:
        active(incr(nil())) -> mark(nil())
        active(incr(cons(X,L))) -> mark(cons(s(X),incr(L)))
        active(adx(nil())) -> mark(nil())
        active(adx(cons(X,L))) -> mark(incr(cons(X,adx(L))))
        active(nats()) -> mark(adx(zeros()))
        active(zeros()) -> mark(cons(0(),zeros()))
        active(head(cons(X,L))) -> mark(X)
        active(tail(cons(X,L))) -> mark(L)
        active(incr(X)) -> incr(active(X))
        active(cons(X1,X2)) -> cons(active(X1),X2)
        active(s(X)) -> s(active(X))
        active(adx(X)) -> adx(active(X))
        active(head(X)) -> head(active(X))
        active(tail(X)) -> tail(active(X))
        incr(mark(X)) -> mark(incr(X))
        cons(mark(X1),X2) -> mark(cons(X1,X2))
        s(mark(X)) -> mark(s(X))
        adx(mark(X)) -> mark(adx(X))
        head(mark(X)) -> mark(head(X))
        tail(mark(X)) -> mark(tail(X))
        proper(incr(X)) -> incr(proper(X))
        proper(nil()) -> ok(nil())
        proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
        proper(s(X)) -> s(proper(X))
        proper(adx(X)) -> adx(proper(X))
        proper(nats()) -> ok(nats())
        proper(zeros()) -> ok(zeros())
        proper(0()) -> ok(0())
        proper(head(X)) -> head(proper(X))
        proper(tail(X)) -> tail(proper(X))
        incr(ok(X)) -> ok(incr(X))
        cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
        s(ok(X)) -> ok(s(X))
        adx(ok(X)) -> ok(adx(X))
        head(ok(X)) -> ok(head(X))
        tail(ok(X)) -> ok(tail(X))
        top(mark(X)) -> top(proper(X))
        top(ok(X)) -> top(active(X))
      Qed
    
    DPs:
     cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
     cons#(mark(X1),X2) -> cons#(X1,X2)
    TRS:
     active(incr(nil())) -> mark(nil())
     active(incr(cons(X,L))) -> mark(cons(s(X),incr(L)))
     active(adx(nil())) -> mark(nil())
     active(adx(cons(X,L))) -> mark(incr(cons(X,adx(L))))
     active(nats()) -> mark(adx(zeros()))
     active(zeros()) -> mark(cons(0(),zeros()))
     active(head(cons(X,L))) -> mark(X)
     active(tail(cons(X,L))) -> mark(L)
     active(incr(X)) -> incr(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(s(X)) -> s(active(X))
     active(adx(X)) -> adx(active(X))
     active(head(X)) -> head(active(X))
     active(tail(X)) -> tail(active(X))
     incr(mark(X)) -> mark(incr(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     s(mark(X)) -> mark(s(X))
     adx(mark(X)) -> mark(adx(X))
     head(mark(X)) -> mark(head(X))
     tail(mark(X)) -> mark(tail(X))
     proper(incr(X)) -> incr(proper(X))
     proper(nil()) -> ok(nil())
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(s(X)) -> s(proper(X))
     proper(adx(X)) -> adx(proper(X))
     proper(nats()) -> ok(nats())
     proper(zeros()) -> ok(zeros())
     proper(0()) -> ok(0())
     proper(head(X)) -> head(proper(X))
     proper(tail(X)) -> tail(proper(X))
     incr(ok(X)) -> ok(incr(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     s(ok(X)) -> ok(s(X))
     adx(ok(X)) -> ok(adx(X))
     head(ok(X)) -> ok(head(X))
     tail(ok(X)) -> ok(tail(X))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Matrix Interpretation Processor:
     dimension: 1
     interpretation:
      [cons#](x0, x1) = x1 + 1,
      
      [top](x0) = 0,
      
      [ok](x0) = x0 + 1,
      
      [proper](x0) = x0 + 1,
      
      [tail](x0) = x0,
      
      [head](x0) = x0,
      
      [0] = 0,
      
      [zeros] = 0,
      
      [nats] = 0,
      
      [adx](x0) = x0 + 1,
      
      [s](x0) = x0 + 1,
      
      [cons](x0, x1) = x1,
      
      [mark](x0) = 0,
      
      [active](x0) = x0,
      
      [incr](x0) = x0,
      
      [nil] = 0
     orientation:
      cons#(ok(X1),ok(X2)) = X2 + 2 >= X2 + 1 = cons#(X1,X2)
      
      cons#(mark(X1),X2) = X2 + 1 >= X2 + 1 = cons#(X1,X2)
      
      active(incr(nil())) = 0 >= 0 = mark(nil())
      
      active(incr(cons(X,L))) = L >= 0 = mark(cons(s(X),incr(L)))
      
      active(adx(nil())) = 1 >= 0 = mark(nil())
      
      active(adx(cons(X,L))) = L + 1 >= 0 = mark(incr(cons(X,adx(L))))
      
      active(nats()) = 0 >= 0 = mark(adx(zeros()))
      
      active(zeros()) = 0 >= 0 = mark(cons(0(),zeros()))
      
      active(head(cons(X,L))) = L >= 0 = mark(X)
      
      active(tail(cons(X,L))) = L >= 0 = mark(L)
      
      active(incr(X)) = X >= X = incr(active(X))
      
      active(cons(X1,X2)) = X2 >= X2 = cons(active(X1),X2)
      
      active(s(X)) = X + 1 >= X + 1 = s(active(X))
      
      active(adx(X)) = X + 1 >= X + 1 = adx(active(X))
      
      active(head(X)) = X >= X = head(active(X))
      
      active(tail(X)) = X >= X = tail(active(X))
      
      incr(mark(X)) = 0 >= 0 = mark(incr(X))
      
      cons(mark(X1),X2) = X2 >= 0 = mark(cons(X1,X2))
      
      s(mark(X)) = 1 >= 0 = mark(s(X))
      
      adx(mark(X)) = 1 >= 0 = mark(adx(X))
      
      head(mark(X)) = 0 >= 0 = mark(head(X))
      
      tail(mark(X)) = 0 >= 0 = mark(tail(X))
      
      proper(incr(X)) = X + 1 >= X + 1 = incr(proper(X))
      
      proper(nil()) = 1 >= 1 = ok(nil())
      
      proper(cons(X1,X2)) = X2 + 1 >= X2 + 1 = cons(proper(X1),proper(X2))
      
      proper(s(X)) = X + 2 >= X + 2 = s(proper(X))
      
      proper(adx(X)) = X + 2 >= X + 2 = adx(proper(X))
      
      proper(nats()) = 1 >= 1 = ok(nats())
      
      proper(zeros()) = 1 >= 1 = ok(zeros())
      
      proper(0()) = 1 >= 1 = ok(0())
      
      proper(head(X)) = X + 1 >= X + 1 = head(proper(X))
      
      proper(tail(X)) = X + 1 >= X + 1 = tail(proper(X))
      
      incr(ok(X)) = X + 1 >= X + 1 = ok(incr(X))
      
      cons(ok(X1),ok(X2)) = X2 + 1 >= X2 + 1 = ok(cons(X1,X2))
      
      s(ok(X)) = X + 2 >= X + 2 = ok(s(X))
      
      adx(ok(X)) = X + 2 >= X + 2 = ok(adx(X))
      
      head(ok(X)) = X + 1 >= X + 1 = ok(head(X))
      
      tail(ok(X)) = X + 1 >= X + 1 = ok(tail(X))
      
      top(mark(X)) = 0 >= 0 = top(proper(X))
      
      top(ok(X)) = 0 >= 0 = top(active(X))
     problem:
      DPs:
       cons#(mark(X1),X2) -> cons#(X1,X2)
      TRS:
       active(incr(nil())) -> mark(nil())
       active(incr(cons(X,L))) -> mark(cons(s(X),incr(L)))
       active(adx(nil())) -> mark(nil())
       active(adx(cons(X,L))) -> mark(incr(cons(X,adx(L))))
       active(nats()) -> mark(adx(zeros()))
       active(zeros()) -> mark(cons(0(),zeros()))
       active(head(cons(X,L))) -> mark(X)
       active(tail(cons(X,L))) -> mark(L)
       active(incr(X)) -> incr(active(X))
       active(cons(X1,X2)) -> cons(active(X1),X2)
       active(s(X)) -> s(active(X))
       active(adx(X)) -> adx(active(X))
       active(head(X)) -> head(active(X))
       active(tail(X)) -> tail(active(X))
       incr(mark(X)) -> mark(incr(X))
       cons(mark(X1),X2) -> mark(cons(X1,X2))
       s(mark(X)) -> mark(s(X))
       adx(mark(X)) -> mark(adx(X))
       head(mark(X)) -> mark(head(X))
       tail(mark(X)) -> mark(tail(X))
       proper(incr(X)) -> incr(proper(X))
       proper(nil()) -> ok(nil())
       proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
       proper(s(X)) -> s(proper(X))
       proper(adx(X)) -> adx(proper(X))
       proper(nats()) -> ok(nats())
       proper(zeros()) -> ok(zeros())
       proper(0()) -> ok(0())
       proper(head(X)) -> head(proper(X))
       proper(tail(X)) -> tail(proper(X))
       incr(ok(X)) -> ok(incr(X))
       cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
       s(ok(X)) -> ok(s(X))
       adx(ok(X)) -> ok(adx(X))
       head(ok(X)) -> ok(head(X))
       tail(ok(X)) -> ok(tail(X))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Matrix Interpretation Processor:
      dimension: 1
      interpretation:
       [cons#](x0, x1) = x0 + 1,
       
       [top](x0) = 0,
       
       [ok](x0) = 0,
       
       [proper](x0) = 0,
       
       [tail](x0) = x0,
       
       [head](x0) = x0,
       
       [0] = 0,
       
       [zeros] = 0,
       
       [nats] = 1,
       
       [adx](x0) = x0,
       
       [s](x0) = x0,
       
       [cons](x0, x1) = x0 + x1,
       
       [mark](x0) = x0 + 1,
       
       [active](x0) = x0 + 1,
       
       [incr](x0) = x0,
       
       [nil] = 0
      orientation:
       cons#(mark(X1),X2) = X1 + 2 >= X1 + 1 = cons#(X1,X2)
       
       active(incr(nil())) = 1 >= 1 = mark(nil())
       
       active(incr(cons(X,L))) = L + X + 1 >= L + X + 1 = mark(cons(s(X),incr(L)))
       
       active(adx(nil())) = 1 >= 1 = mark(nil())
       
       active(adx(cons(X,L))) = L + X + 1 >= L + X + 1 = mark(incr(cons(X,adx(L))))
       
       active(nats()) = 2 >= 1 = mark(adx(zeros()))
       
       active(zeros()) = 1 >= 1 = mark(cons(0(),zeros()))
       
       active(head(cons(X,L))) = L + X + 1 >= X + 1 = mark(X)
       
       active(tail(cons(X,L))) = L + X + 1 >= L + 1 = mark(L)
       
       active(incr(X)) = X + 1 >= X + 1 = incr(active(X))
       
       active(cons(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = cons(active(X1),X2)
       
       active(s(X)) = X + 1 >= X + 1 = s(active(X))
       
       active(adx(X)) = X + 1 >= X + 1 = adx(active(X))
       
       active(head(X)) = X + 1 >= X + 1 = head(active(X))
       
       active(tail(X)) = X + 1 >= X + 1 = tail(active(X))
       
       incr(mark(X)) = X + 1 >= X + 1 = mark(incr(X))
       
       cons(mark(X1),X2) = X1 + X2 + 1 >= X1 + X2 + 1 = mark(cons(X1,X2))
       
       s(mark(X)) = X + 1 >= X + 1 = mark(s(X))
       
       adx(mark(X)) = X + 1 >= X + 1 = mark(adx(X))
       
       head(mark(X)) = X + 1 >= X + 1 = mark(head(X))
       
       tail(mark(X)) = X + 1 >= X + 1 = mark(tail(X))
       
       proper(incr(X)) = 0 >= 0 = incr(proper(X))
       
       proper(nil()) = 0 >= 0 = ok(nil())
       
       proper(cons(X1,X2)) = 0 >= 0 = cons(proper(X1),proper(X2))
       
       proper(s(X)) = 0 >= 0 = s(proper(X))
       
       proper(adx(X)) = 0 >= 0 = adx(proper(X))
       
       proper(nats()) = 0 >= 0 = ok(nats())
       
       proper(zeros()) = 0 >= 0 = ok(zeros())
       
       proper(0()) = 0 >= 0 = ok(0())
       
       proper(head(X)) = 0 >= 0 = head(proper(X))
       
       proper(tail(X)) = 0 >= 0 = tail(proper(X))
       
       incr(ok(X)) = 0 >= 0 = ok(incr(X))
       
       cons(ok(X1),ok(X2)) = 0 >= 0 = ok(cons(X1,X2))
       
       s(ok(X)) = 0 >= 0 = ok(s(X))
       
       adx(ok(X)) = 0 >= 0 = ok(adx(X))
       
       head(ok(X)) = 0 >= 0 = ok(head(X))
       
       tail(ok(X)) = 0 >= 0 = ok(tail(X))
       
       top(mark(X)) = 0 >= 0 = top(proper(X))
       
       top(ok(X)) = 0 >= 0 = top(active(X))
      problem:
       DPs:
        
       TRS:
        active(incr(nil())) -> mark(nil())
        active(incr(cons(X,L))) -> mark(cons(s(X),incr(L)))
        active(adx(nil())) -> mark(nil())
        active(adx(cons(X,L))) -> mark(incr(cons(X,adx(L))))
        active(nats()) -> mark(adx(zeros()))
        active(zeros()) -> mark(cons(0(),zeros()))
        active(head(cons(X,L))) -> mark(X)
        active(tail(cons(X,L))) -> mark(L)
        active(incr(X)) -> incr(active(X))
        active(cons(X1,X2)) -> cons(active(X1),X2)
        active(s(X)) -> s(active(X))
        active(adx(X)) -> adx(active(X))
        active(head(X)) -> head(active(X))
        active(tail(X)) -> tail(active(X))
        incr(mark(X)) -> mark(incr(X))
        cons(mark(X1),X2) -> mark(cons(X1,X2))
        s(mark(X)) -> mark(s(X))
        adx(mark(X)) -> mark(adx(X))
        head(mark(X)) -> mark(head(X))
        tail(mark(X)) -> mark(tail(X))
        proper(incr(X)) -> incr(proper(X))
        proper(nil()) -> ok(nil())
        proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
        proper(s(X)) -> s(proper(X))
        proper(adx(X)) -> adx(proper(X))
        proper(nats()) -> ok(nats())
        proper(zeros()) -> ok(zeros())
        proper(0()) -> ok(0())
        proper(head(X)) -> head(proper(X))
        proper(tail(X)) -> tail(proper(X))
        incr(ok(X)) -> ok(incr(X))
        cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
        s(ok(X)) -> ok(s(X))
        adx(ok(X)) -> ok(adx(X))
        head(ok(X)) -> ok(head(X))
        tail(ok(X)) -> ok(tail(X))
        top(mark(X)) -> top(proper(X))
        top(ok(X)) -> top(active(X))
      Qed
    
    DPs:
     s#(ok(X)) -> s#(X)
     s#(mark(X)) -> s#(X)
    TRS:
     active(incr(nil())) -> mark(nil())
     active(incr(cons(X,L))) -> mark(cons(s(X),incr(L)))
     active(adx(nil())) -> mark(nil())
     active(adx(cons(X,L))) -> mark(incr(cons(X,adx(L))))
     active(nats()) -> mark(adx(zeros()))
     active(zeros()) -> mark(cons(0(),zeros()))
     active(head(cons(X,L))) -> mark(X)
     active(tail(cons(X,L))) -> mark(L)
     active(incr(X)) -> incr(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(s(X)) -> s(active(X))
     active(adx(X)) -> adx(active(X))
     active(head(X)) -> head(active(X))
     active(tail(X)) -> tail(active(X))
     incr(mark(X)) -> mark(incr(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     s(mark(X)) -> mark(s(X))
     adx(mark(X)) -> mark(adx(X))
     head(mark(X)) -> mark(head(X))
     tail(mark(X)) -> mark(tail(X))
     proper(incr(X)) -> incr(proper(X))
     proper(nil()) -> ok(nil())
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(s(X)) -> s(proper(X))
     proper(adx(X)) -> adx(proper(X))
     proper(nats()) -> ok(nats())
     proper(zeros()) -> ok(zeros())
     proper(0()) -> ok(0())
     proper(head(X)) -> head(proper(X))
     proper(tail(X)) -> tail(proper(X))
     incr(ok(X)) -> ok(incr(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     s(ok(X)) -> ok(s(X))
     adx(ok(X)) -> ok(adx(X))
     head(ok(X)) -> ok(head(X))
     tail(ok(X)) -> ok(tail(X))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Matrix Interpretation Processor:
     dimension: 1
     interpretation:
      [s#](x0) = x0 + 1,
      
      [top](x0) = 0,
      
      [ok](x0) = x0,
      
      [proper](x0) = x0,
      
      [tail](x0) = x0,
      
      [head](x0) = x0,
      
      [0] = 0,
      
      [zeros] = 0,
      
      [nats] = 1,
      
      [adx](x0) = x0,
      
      [s](x0) = x0,
      
      [cons](x0, x1) = x0 + x1,
      
      [mark](x0) = x0 + 1,
      
      [active](x0) = x0 + 1,
      
      [incr](x0) = x0,
      
      [nil] = 1
     orientation:
      s#(ok(X)) = X + 1 >= X + 1 = s#(X)
      
      s#(mark(X)) = X + 2 >= X + 1 = s#(X)
      
      active(incr(nil())) = 2 >= 2 = mark(nil())
      
      active(incr(cons(X,L))) = L + X + 1 >= L + X + 1 = mark(cons(s(X),incr(L)))
      
      active(adx(nil())) = 2 >= 2 = mark(nil())
      
      active(adx(cons(X,L))) = L + X + 1 >= L + X + 1 = mark(incr(cons(X,adx(L))))
      
      active(nats()) = 2 >= 1 = mark(adx(zeros()))
      
      active(zeros()) = 1 >= 1 = mark(cons(0(),zeros()))
      
      active(head(cons(X,L))) = L + X + 1 >= X + 1 = mark(X)
      
      active(tail(cons(X,L))) = L + X + 1 >= L + 1 = mark(L)
      
      active(incr(X)) = X + 1 >= X + 1 = incr(active(X))
      
      active(cons(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = cons(active(X1),X2)
      
      active(s(X)) = X + 1 >= X + 1 = s(active(X))
      
      active(adx(X)) = X + 1 >= X + 1 = adx(active(X))
      
      active(head(X)) = X + 1 >= X + 1 = head(active(X))
      
      active(tail(X)) = X + 1 >= X + 1 = tail(active(X))
      
      incr(mark(X)) = X + 1 >= X + 1 = mark(incr(X))
      
      cons(mark(X1),X2) = X1 + X2 + 1 >= X1 + X2 + 1 = mark(cons(X1,X2))
      
      s(mark(X)) = X + 1 >= X + 1 = mark(s(X))
      
      adx(mark(X)) = X + 1 >= X + 1 = mark(adx(X))
      
      head(mark(X)) = X + 1 >= X + 1 = mark(head(X))
      
      tail(mark(X)) = X + 1 >= X + 1 = mark(tail(X))
      
      proper(incr(X)) = X >= X = incr(proper(X))
      
      proper(nil()) = 1 >= 1 = ok(nil())
      
      proper(cons(X1,X2)) = X1 + X2 >= X1 + X2 = cons(proper(X1),proper(X2))
      
      proper(s(X)) = X >= X = s(proper(X))
      
      proper(adx(X)) = X >= X = adx(proper(X))
      
      proper(nats()) = 1 >= 1 = ok(nats())
      
      proper(zeros()) = 0 >= 0 = ok(zeros())
      
      proper(0()) = 0 >= 0 = ok(0())
      
      proper(head(X)) = X >= X = head(proper(X))
      
      proper(tail(X)) = X >= X = tail(proper(X))
      
      incr(ok(X)) = X >= X = ok(incr(X))
      
      cons(ok(X1),ok(X2)) = X1 + X2 >= X1 + X2 = ok(cons(X1,X2))
      
      s(ok(X)) = X >= X = ok(s(X))
      
      adx(ok(X)) = X >= X = ok(adx(X))
      
      head(ok(X)) = X >= X = ok(head(X))
      
      tail(ok(X)) = X >= X = ok(tail(X))
      
      top(mark(X)) = 0 >= 0 = top(proper(X))
      
      top(ok(X)) = 0 >= 0 = top(active(X))
     problem:
      DPs:
       s#(ok(X)) -> s#(X)
      TRS:
       active(incr(nil())) -> mark(nil())
       active(incr(cons(X,L))) -> mark(cons(s(X),incr(L)))
       active(adx(nil())) -> mark(nil())
       active(adx(cons(X,L))) -> mark(incr(cons(X,adx(L))))
       active(nats()) -> mark(adx(zeros()))
       active(zeros()) -> mark(cons(0(),zeros()))
       active(head(cons(X,L))) -> mark(X)
       active(tail(cons(X,L))) -> mark(L)
       active(incr(X)) -> incr(active(X))
       active(cons(X1,X2)) -> cons(active(X1),X2)
       active(s(X)) -> s(active(X))
       active(adx(X)) -> adx(active(X))
       active(head(X)) -> head(active(X))
       active(tail(X)) -> tail(active(X))
       incr(mark(X)) -> mark(incr(X))
       cons(mark(X1),X2) -> mark(cons(X1,X2))
       s(mark(X)) -> mark(s(X))
       adx(mark(X)) -> mark(adx(X))
       head(mark(X)) -> mark(head(X))
       tail(mark(X)) -> mark(tail(X))
       proper(incr(X)) -> incr(proper(X))
       proper(nil()) -> ok(nil())
       proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
       proper(s(X)) -> s(proper(X))
       proper(adx(X)) -> adx(proper(X))
       proper(nats()) -> ok(nats())
       proper(zeros()) -> ok(zeros())
       proper(0()) -> ok(0())
       proper(head(X)) -> head(proper(X))
       proper(tail(X)) -> tail(proper(X))
       incr(ok(X)) -> ok(incr(X))
       cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
       s(ok(X)) -> ok(s(X))
       adx(ok(X)) -> ok(adx(X))
       head(ok(X)) -> ok(head(X))
       tail(ok(X)) -> ok(tail(X))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Matrix Interpretation Processor:
      dimension: 1
      interpretation:
       [s#](x0) = x0 + 1,
       
       [top](x0) = 0,
       
       [ok](x0) = x0 + 1,
       
       [proper](x0) = x0 + 1,
       
       [tail](x0) = x0,
       
       [head](x0) = x0,
       
       [0] = 1,
       
       [zeros] = 0,
       
       [nats] = 1,
       
       [adx](x0) = x0 + 1,
       
       [s](x0) = x0,
       
       [cons](x0, x1) = x1,
       
       [mark](x0) = 0,
       
       [active](x0) = x0 + 1,
       
       [incr](x0) = x0,
       
       [nil] = 0
      orientation:
       s#(ok(X)) = X + 2 >= X + 1 = s#(X)
       
       active(incr(nil())) = 1 >= 0 = mark(nil())
       
       active(incr(cons(X,L))) = L + 1 >= 0 = mark(cons(s(X),incr(L)))
       
       active(adx(nil())) = 2 >= 0 = mark(nil())
       
       active(adx(cons(X,L))) = L + 2 >= 0 = mark(incr(cons(X,adx(L))))
       
       active(nats()) = 2 >= 0 = mark(adx(zeros()))
       
       active(zeros()) = 1 >= 0 = mark(cons(0(),zeros()))
       
       active(head(cons(X,L))) = L + 1 >= 0 = mark(X)
       
       active(tail(cons(X,L))) = L + 1 >= 0 = mark(L)
       
       active(incr(X)) = X + 1 >= X + 1 = incr(active(X))
       
       active(cons(X1,X2)) = X2 + 1 >= X2 = cons(active(X1),X2)
       
       active(s(X)) = X + 1 >= X + 1 = s(active(X))
       
       active(adx(X)) = X + 2 >= X + 2 = adx(active(X))
       
       active(head(X)) = X + 1 >= X + 1 = head(active(X))
       
       active(tail(X)) = X + 1 >= X + 1 = tail(active(X))
       
       incr(mark(X)) = 0 >= 0 = mark(incr(X))
       
       cons(mark(X1),X2) = X2 >= 0 = mark(cons(X1,X2))
       
       s(mark(X)) = 0 >= 0 = mark(s(X))
       
       adx(mark(X)) = 1 >= 0 = mark(adx(X))
       
       head(mark(X)) = 0 >= 0 = mark(head(X))
       
       tail(mark(X)) = 0 >= 0 = mark(tail(X))
       
       proper(incr(X)) = X + 1 >= X + 1 = incr(proper(X))
       
       proper(nil()) = 1 >= 1 = ok(nil())
       
       proper(cons(X1,X2)) = X2 + 1 >= X2 + 1 = cons(proper(X1),proper(X2))
       
       proper(s(X)) = X + 1 >= X + 1 = s(proper(X))
       
       proper(adx(X)) = X + 2 >= X + 2 = adx(proper(X))
       
       proper(nats()) = 2 >= 2 = ok(nats())
       
       proper(zeros()) = 1 >= 1 = ok(zeros())
       
       proper(0()) = 2 >= 2 = ok(0())
       
       proper(head(X)) = X + 1 >= X + 1 = head(proper(X))
       
       proper(tail(X)) = X + 1 >= X + 1 = tail(proper(X))
       
       incr(ok(X)) = X + 1 >= X + 1 = ok(incr(X))
       
       cons(ok(X1),ok(X2)) = X2 + 1 >= X2 + 1 = ok(cons(X1,X2))
       
       s(ok(X)) = X + 1 >= X + 1 = ok(s(X))
       
       adx(ok(X)) = X + 2 >= X + 2 = ok(adx(X))
       
       head(ok(X)) = X + 1 >= X + 1 = ok(head(X))
       
       tail(ok(X)) = X + 1 >= X + 1 = ok(tail(X))
       
       top(mark(X)) = 0 >= 0 = top(proper(X))
       
       top(ok(X)) = 0 >= 0 = top(active(X))
      problem:
       DPs:
        
       TRS:
        active(incr(nil())) -> mark(nil())
        active(incr(cons(X,L))) -> mark(cons(s(X),incr(L)))
        active(adx(nil())) -> mark(nil())
        active(adx(cons(X,L))) -> mark(incr(cons(X,adx(L))))
        active(nats()) -> mark(adx(zeros()))
        active(zeros()) -> mark(cons(0(),zeros()))
        active(head(cons(X,L))) -> mark(X)
        active(tail(cons(X,L))) -> mark(L)
        active(incr(X)) -> incr(active(X))
        active(cons(X1,X2)) -> cons(active(X1),X2)
        active(s(X)) -> s(active(X))
        active(adx(X)) -> adx(active(X))
        active(head(X)) -> head(active(X))
        active(tail(X)) -> tail(active(X))
        incr(mark(X)) -> mark(incr(X))
        cons(mark(X1),X2) -> mark(cons(X1,X2))
        s(mark(X)) -> mark(s(X))
        adx(mark(X)) -> mark(adx(X))
        head(mark(X)) -> mark(head(X))
        tail(mark(X)) -> mark(tail(X))
        proper(incr(X)) -> incr(proper(X))
        proper(nil()) -> ok(nil())
        proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
        proper(s(X)) -> s(proper(X))
        proper(adx(X)) -> adx(proper(X))
        proper(nats()) -> ok(nats())
        proper(zeros()) -> ok(zeros())
        proper(0()) -> ok(0())
        proper(head(X)) -> head(proper(X))
        proper(tail(X)) -> tail(proper(X))
        incr(ok(X)) -> ok(incr(X))
        cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
        s(ok(X)) -> ok(s(X))
        adx(ok(X)) -> ok(adx(X))
        head(ok(X)) -> ok(head(X))
        tail(ok(X)) -> ok(tail(X))
        top(mark(X)) -> top(proper(X))
        top(ok(X)) -> top(active(X))
      Qed
    
    DPs:
     adx#(ok(X)) -> adx#(X)
     adx#(mark(X)) -> adx#(X)
    TRS:
     active(incr(nil())) -> mark(nil())
     active(incr(cons(X,L))) -> mark(cons(s(X),incr(L)))
     active(adx(nil())) -> mark(nil())
     active(adx(cons(X,L))) -> mark(incr(cons(X,adx(L))))
     active(nats()) -> mark(adx(zeros()))
     active(zeros()) -> mark(cons(0(),zeros()))
     active(head(cons(X,L))) -> mark(X)
     active(tail(cons(X,L))) -> mark(L)
     active(incr(X)) -> incr(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(s(X)) -> s(active(X))
     active(adx(X)) -> adx(active(X))
     active(head(X)) -> head(active(X))
     active(tail(X)) -> tail(active(X))
     incr(mark(X)) -> mark(incr(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     s(mark(X)) -> mark(s(X))
     adx(mark(X)) -> mark(adx(X))
     head(mark(X)) -> mark(head(X))
     tail(mark(X)) -> mark(tail(X))
     proper(incr(X)) -> incr(proper(X))
     proper(nil()) -> ok(nil())
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(s(X)) -> s(proper(X))
     proper(adx(X)) -> adx(proper(X))
     proper(nats()) -> ok(nats())
     proper(zeros()) -> ok(zeros())
     proper(0()) -> ok(0())
     proper(head(X)) -> head(proper(X))
     proper(tail(X)) -> tail(proper(X))
     incr(ok(X)) -> ok(incr(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     s(ok(X)) -> ok(s(X))
     adx(ok(X)) -> ok(adx(X))
     head(ok(X)) -> ok(head(X))
     tail(ok(X)) -> ok(tail(X))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Matrix Interpretation Processor:
     dimension: 1
     interpretation:
      [adx#](x0) = x0 + 1,
      
      [top](x0) = 0,
      
      [ok](x0) = x0,
      
      [proper](x0) = x0,
      
      [tail](x0) = x0,
      
      [head](x0) = x0,
      
      [0] = 0,
      
      [zeros] = 0,
      
      [nats] = 1,
      
      [adx](x0) = x0,
      
      [s](x0) = x0,
      
      [cons](x0, x1) = x0 + x1,
      
      [mark](x0) = x0 + 1,
      
      [active](x0) = x0 + 1,
      
      [incr](x0) = x0,
      
      [nil] = 1
     orientation:
      adx#(ok(X)) = X + 1 >= X + 1 = adx#(X)
      
      adx#(mark(X)) = X + 2 >= X + 1 = adx#(X)
      
      active(incr(nil())) = 2 >= 2 = mark(nil())
      
      active(incr(cons(X,L))) = L + X + 1 >= L + X + 1 = mark(cons(s(X),incr(L)))
      
      active(adx(nil())) = 2 >= 2 = mark(nil())
      
      active(adx(cons(X,L))) = L + X + 1 >= L + X + 1 = mark(incr(cons(X,adx(L))))
      
      active(nats()) = 2 >= 1 = mark(adx(zeros()))
      
      active(zeros()) = 1 >= 1 = mark(cons(0(),zeros()))
      
      active(head(cons(X,L))) = L + X + 1 >= X + 1 = mark(X)
      
      active(tail(cons(X,L))) = L + X + 1 >= L + 1 = mark(L)
      
      active(incr(X)) = X + 1 >= X + 1 = incr(active(X))
      
      active(cons(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = cons(active(X1),X2)
      
      active(s(X)) = X + 1 >= X + 1 = s(active(X))
      
      active(adx(X)) = X + 1 >= X + 1 = adx(active(X))
      
      active(head(X)) = X + 1 >= X + 1 = head(active(X))
      
      active(tail(X)) = X + 1 >= X + 1 = tail(active(X))
      
      incr(mark(X)) = X + 1 >= X + 1 = mark(incr(X))
      
      cons(mark(X1),X2) = X1 + X2 + 1 >= X1 + X2 + 1 = mark(cons(X1,X2))
      
      s(mark(X)) = X + 1 >= X + 1 = mark(s(X))
      
      adx(mark(X)) = X + 1 >= X + 1 = mark(adx(X))
      
      head(mark(X)) = X + 1 >= X + 1 = mark(head(X))
      
      tail(mark(X)) = X + 1 >= X + 1 = mark(tail(X))
      
      proper(incr(X)) = X >= X = incr(proper(X))
      
      proper(nil()) = 1 >= 1 = ok(nil())
      
      proper(cons(X1,X2)) = X1 + X2 >= X1 + X2 = cons(proper(X1),proper(X2))
      
      proper(s(X)) = X >= X = s(proper(X))
      
      proper(adx(X)) = X >= X = adx(proper(X))
      
      proper(nats()) = 1 >= 1 = ok(nats())
      
      proper(zeros()) = 0 >= 0 = ok(zeros())
      
      proper(0()) = 0 >= 0 = ok(0())
      
      proper(head(X)) = X >= X = head(proper(X))
      
      proper(tail(X)) = X >= X = tail(proper(X))
      
      incr(ok(X)) = X >= X = ok(incr(X))
      
      cons(ok(X1),ok(X2)) = X1 + X2 >= X1 + X2 = ok(cons(X1,X2))
      
      s(ok(X)) = X >= X = ok(s(X))
      
      adx(ok(X)) = X >= X = ok(adx(X))
      
      head(ok(X)) = X >= X = ok(head(X))
      
      tail(ok(X)) = X >= X = ok(tail(X))
      
      top(mark(X)) = 0 >= 0 = top(proper(X))
      
      top(ok(X)) = 0 >= 0 = top(active(X))
     problem:
      DPs:
       adx#(ok(X)) -> adx#(X)
      TRS:
       active(incr(nil())) -> mark(nil())
       active(incr(cons(X,L))) -> mark(cons(s(X),incr(L)))
       active(adx(nil())) -> mark(nil())
       active(adx(cons(X,L))) -> mark(incr(cons(X,adx(L))))
       active(nats()) -> mark(adx(zeros()))
       active(zeros()) -> mark(cons(0(),zeros()))
       active(head(cons(X,L))) -> mark(X)
       active(tail(cons(X,L))) -> mark(L)
       active(incr(X)) -> incr(active(X))
       active(cons(X1,X2)) -> cons(active(X1),X2)
       active(s(X)) -> s(active(X))
       active(adx(X)) -> adx(active(X))
       active(head(X)) -> head(active(X))
       active(tail(X)) -> tail(active(X))
       incr(mark(X)) -> mark(incr(X))
       cons(mark(X1),X2) -> mark(cons(X1,X2))
       s(mark(X)) -> mark(s(X))
       adx(mark(X)) -> mark(adx(X))
       head(mark(X)) -> mark(head(X))
       tail(mark(X)) -> mark(tail(X))
       proper(incr(X)) -> incr(proper(X))
       proper(nil()) -> ok(nil())
       proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
       proper(s(X)) -> s(proper(X))
       proper(adx(X)) -> adx(proper(X))
       proper(nats()) -> ok(nats())
       proper(zeros()) -> ok(zeros())
       proper(0()) -> ok(0())
       proper(head(X)) -> head(proper(X))
       proper(tail(X)) -> tail(proper(X))
       incr(ok(X)) -> ok(incr(X))
       cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
       s(ok(X)) -> ok(s(X))
       adx(ok(X)) -> ok(adx(X))
       head(ok(X)) -> ok(head(X))
       tail(ok(X)) -> ok(tail(X))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Matrix Interpretation Processor:
      dimension: 1
      interpretation:
       [adx#](x0) = x0 + 1,
       
       [top](x0) = 0,
       
       [ok](x0) = x0 + 1,
       
       [proper](x0) = x0 + 1,
       
       [tail](x0) = x0,
       
       [head](x0) = x0,
       
       [0] = 1,
       
       [zeros] = 0,
       
       [nats] = 1,
       
       [adx](x0) = x0 + 1,
       
       [s](x0) = x0,
       
       [cons](x0, x1) = x1,
       
       [mark](x0) = 0,
       
       [active](x0) = x0 + 1,
       
       [incr](x0) = x0,
       
       [nil] = 0
      orientation:
       adx#(ok(X)) = X + 2 >= X + 1 = adx#(X)
       
       active(incr(nil())) = 1 >= 0 = mark(nil())
       
       active(incr(cons(X,L))) = L + 1 >= 0 = mark(cons(s(X),incr(L)))
       
       active(adx(nil())) = 2 >= 0 = mark(nil())
       
       active(adx(cons(X,L))) = L + 2 >= 0 = mark(incr(cons(X,adx(L))))
       
       active(nats()) = 2 >= 0 = mark(adx(zeros()))
       
       active(zeros()) = 1 >= 0 = mark(cons(0(),zeros()))
       
       active(head(cons(X,L))) = L + 1 >= 0 = mark(X)
       
       active(tail(cons(X,L))) = L + 1 >= 0 = mark(L)
       
       active(incr(X)) = X + 1 >= X + 1 = incr(active(X))
       
       active(cons(X1,X2)) = X2 + 1 >= X2 = cons(active(X1),X2)
       
       active(s(X)) = X + 1 >= X + 1 = s(active(X))
       
       active(adx(X)) = X + 2 >= X + 2 = adx(active(X))
       
       active(head(X)) = X + 1 >= X + 1 = head(active(X))
       
       active(tail(X)) = X + 1 >= X + 1 = tail(active(X))
       
       incr(mark(X)) = 0 >= 0 = mark(incr(X))
       
       cons(mark(X1),X2) = X2 >= 0 = mark(cons(X1,X2))
       
       s(mark(X)) = 0 >= 0 = mark(s(X))
       
       adx(mark(X)) = 1 >= 0 = mark(adx(X))
       
       head(mark(X)) = 0 >= 0 = mark(head(X))
       
       tail(mark(X)) = 0 >= 0 = mark(tail(X))
       
       proper(incr(X)) = X + 1 >= X + 1 = incr(proper(X))
       
       proper(nil()) = 1 >= 1 = ok(nil())
       
       proper(cons(X1,X2)) = X2 + 1 >= X2 + 1 = cons(proper(X1),proper(X2))
       
       proper(s(X)) = X + 1 >= X + 1 = s(proper(X))
       
       proper(adx(X)) = X + 2 >= X + 2 = adx(proper(X))
       
       proper(nats()) = 2 >= 2 = ok(nats())
       
       proper(zeros()) = 1 >= 1 = ok(zeros())
       
       proper(0()) = 2 >= 2 = ok(0())
       
       proper(head(X)) = X + 1 >= X + 1 = head(proper(X))
       
       proper(tail(X)) = X + 1 >= X + 1 = tail(proper(X))
       
       incr(ok(X)) = X + 1 >= X + 1 = ok(incr(X))
       
       cons(ok(X1),ok(X2)) = X2 + 1 >= X2 + 1 = ok(cons(X1,X2))
       
       s(ok(X)) = X + 1 >= X + 1 = ok(s(X))
       
       adx(ok(X)) = X + 2 >= X + 2 = ok(adx(X))
       
       head(ok(X)) = X + 1 >= X + 1 = ok(head(X))
       
       tail(ok(X)) = X + 1 >= X + 1 = ok(tail(X))
       
       top(mark(X)) = 0 >= 0 = top(proper(X))
       
       top(ok(X)) = 0 >= 0 = top(active(X))
      problem:
       DPs:
        
       TRS:
        active(incr(nil())) -> mark(nil())
        active(incr(cons(X,L))) -> mark(cons(s(X),incr(L)))
        active(adx(nil())) -> mark(nil())
        active(adx(cons(X,L))) -> mark(incr(cons(X,adx(L))))
        active(nats()) -> mark(adx(zeros()))
        active(zeros()) -> mark(cons(0(),zeros()))
        active(head(cons(X,L))) -> mark(X)
        active(tail(cons(X,L))) -> mark(L)
        active(incr(X)) -> incr(active(X))
        active(cons(X1,X2)) -> cons(active(X1),X2)
        active(s(X)) -> s(active(X))
        active(adx(X)) -> adx(active(X))
        active(head(X)) -> head(active(X))
        active(tail(X)) -> tail(active(X))
        incr(mark(X)) -> mark(incr(X))
        cons(mark(X1),X2) -> mark(cons(X1,X2))
        s(mark(X)) -> mark(s(X))
        adx(mark(X)) -> mark(adx(X))
        head(mark(X)) -> mark(head(X))
        tail(mark(X)) -> mark(tail(X))
        proper(incr(X)) -> incr(proper(X))
        proper(nil()) -> ok(nil())
        proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
        proper(s(X)) -> s(proper(X))
        proper(adx(X)) -> adx(proper(X))
        proper(nats()) -> ok(nats())
        proper(zeros()) -> ok(zeros())
        proper(0()) -> ok(0())
        proper(head(X)) -> head(proper(X))
        proper(tail(X)) -> tail(proper(X))
        incr(ok(X)) -> ok(incr(X))
        cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
        s(ok(X)) -> ok(s(X))
        adx(ok(X)) -> ok(adx(X))
        head(ok(X)) -> ok(head(X))
        tail(ok(X)) -> ok(tail(X))
        top(mark(X)) -> top(proper(X))
        top(ok(X)) -> top(active(X))
      Qed
    
    DPs:
     head#(ok(X)) -> head#(X)
     head#(mark(X)) -> head#(X)
    TRS:
     active(incr(nil())) -> mark(nil())
     active(incr(cons(X,L))) -> mark(cons(s(X),incr(L)))
     active(adx(nil())) -> mark(nil())
     active(adx(cons(X,L))) -> mark(incr(cons(X,adx(L))))
     active(nats()) -> mark(adx(zeros()))
     active(zeros()) -> mark(cons(0(),zeros()))
     active(head(cons(X,L))) -> mark(X)
     active(tail(cons(X,L))) -> mark(L)
     active(incr(X)) -> incr(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(s(X)) -> s(active(X))
     active(adx(X)) -> adx(active(X))
     active(head(X)) -> head(active(X))
     active(tail(X)) -> tail(active(X))
     incr(mark(X)) -> mark(incr(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     s(mark(X)) -> mark(s(X))
     adx(mark(X)) -> mark(adx(X))
     head(mark(X)) -> mark(head(X))
     tail(mark(X)) -> mark(tail(X))
     proper(incr(X)) -> incr(proper(X))
     proper(nil()) -> ok(nil())
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(s(X)) -> s(proper(X))
     proper(adx(X)) -> adx(proper(X))
     proper(nats()) -> ok(nats())
     proper(zeros()) -> ok(zeros())
     proper(0()) -> ok(0())
     proper(head(X)) -> head(proper(X))
     proper(tail(X)) -> tail(proper(X))
     incr(ok(X)) -> ok(incr(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     s(ok(X)) -> ok(s(X))
     adx(ok(X)) -> ok(adx(X))
     head(ok(X)) -> ok(head(X))
     tail(ok(X)) -> ok(tail(X))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Matrix Interpretation Processor:
     dimension: 1
     interpretation:
      [head#](x0) = x0 + 1,
      
      [top](x0) = 0,
      
      [ok](x0) = x0,
      
      [proper](x0) = x0,
      
      [tail](x0) = x0,
      
      [head](x0) = x0,
      
      [0] = 0,
      
      [zeros] = 0,
      
      [nats] = 1,
      
      [adx](x0) = x0,
      
      [s](x0) = x0,
      
      [cons](x0, x1) = x0 + x1,
      
      [mark](x0) = x0 + 1,
      
      [active](x0) = x0 + 1,
      
      [incr](x0) = x0,
      
      [nil] = 1
     orientation:
      head#(ok(X)) = X + 1 >= X + 1 = head#(X)
      
      head#(mark(X)) = X + 2 >= X + 1 = head#(X)
      
      active(incr(nil())) = 2 >= 2 = mark(nil())
      
      active(incr(cons(X,L))) = L + X + 1 >= L + X + 1 = mark(cons(s(X),incr(L)))
      
      active(adx(nil())) = 2 >= 2 = mark(nil())
      
      active(adx(cons(X,L))) = L + X + 1 >= L + X + 1 = mark(incr(cons(X,adx(L))))
      
      active(nats()) = 2 >= 1 = mark(adx(zeros()))
      
      active(zeros()) = 1 >= 1 = mark(cons(0(),zeros()))
      
      active(head(cons(X,L))) = L + X + 1 >= X + 1 = mark(X)
      
      active(tail(cons(X,L))) = L + X + 1 >= L + 1 = mark(L)
      
      active(incr(X)) = X + 1 >= X + 1 = incr(active(X))
      
      active(cons(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = cons(active(X1),X2)
      
      active(s(X)) = X + 1 >= X + 1 = s(active(X))
      
      active(adx(X)) = X + 1 >= X + 1 = adx(active(X))
      
      active(head(X)) = X + 1 >= X + 1 = head(active(X))
      
      active(tail(X)) = X + 1 >= X + 1 = tail(active(X))
      
      incr(mark(X)) = X + 1 >= X + 1 = mark(incr(X))
      
      cons(mark(X1),X2) = X1 + X2 + 1 >= X1 + X2 + 1 = mark(cons(X1,X2))
      
      s(mark(X)) = X + 1 >= X + 1 = mark(s(X))
      
      adx(mark(X)) = X + 1 >= X + 1 = mark(adx(X))
      
      head(mark(X)) = X + 1 >= X + 1 = mark(head(X))
      
      tail(mark(X)) = X + 1 >= X + 1 = mark(tail(X))
      
      proper(incr(X)) = X >= X = incr(proper(X))
      
      proper(nil()) = 1 >= 1 = ok(nil())
      
      proper(cons(X1,X2)) = X1 + X2 >= X1 + X2 = cons(proper(X1),proper(X2))
      
      proper(s(X)) = X >= X = s(proper(X))
      
      proper(adx(X)) = X >= X = adx(proper(X))
      
      proper(nats()) = 1 >= 1 = ok(nats())
      
      proper(zeros()) = 0 >= 0 = ok(zeros())
      
      proper(0()) = 0 >= 0 = ok(0())
      
      proper(head(X)) = X >= X = head(proper(X))
      
      proper(tail(X)) = X >= X = tail(proper(X))
      
      incr(ok(X)) = X >= X = ok(incr(X))
      
      cons(ok(X1),ok(X2)) = X1 + X2 >= X1 + X2 = ok(cons(X1,X2))
      
      s(ok(X)) = X >= X = ok(s(X))
      
      adx(ok(X)) = X >= X = ok(adx(X))
      
      head(ok(X)) = X >= X = ok(head(X))
      
      tail(ok(X)) = X >= X = ok(tail(X))
      
      top(mark(X)) = 0 >= 0 = top(proper(X))
      
      top(ok(X)) = 0 >= 0 = top(active(X))
     problem:
      DPs:
       head#(ok(X)) -> head#(X)
      TRS:
       active(incr(nil())) -> mark(nil())
       active(incr(cons(X,L))) -> mark(cons(s(X),incr(L)))
       active(adx(nil())) -> mark(nil())
       active(adx(cons(X,L))) -> mark(incr(cons(X,adx(L))))
       active(nats()) -> mark(adx(zeros()))
       active(zeros()) -> mark(cons(0(),zeros()))
       active(head(cons(X,L))) -> mark(X)
       active(tail(cons(X,L))) -> mark(L)
       active(incr(X)) -> incr(active(X))
       active(cons(X1,X2)) -> cons(active(X1),X2)
       active(s(X)) -> s(active(X))
       active(adx(X)) -> adx(active(X))
       active(head(X)) -> head(active(X))
       active(tail(X)) -> tail(active(X))
       incr(mark(X)) -> mark(incr(X))
       cons(mark(X1),X2) -> mark(cons(X1,X2))
       s(mark(X)) -> mark(s(X))
       adx(mark(X)) -> mark(adx(X))
       head(mark(X)) -> mark(head(X))
       tail(mark(X)) -> mark(tail(X))
       proper(incr(X)) -> incr(proper(X))
       proper(nil()) -> ok(nil())
       proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
       proper(s(X)) -> s(proper(X))
       proper(adx(X)) -> adx(proper(X))
       proper(nats()) -> ok(nats())
       proper(zeros()) -> ok(zeros())
       proper(0()) -> ok(0())
       proper(head(X)) -> head(proper(X))
       proper(tail(X)) -> tail(proper(X))
       incr(ok(X)) -> ok(incr(X))
       cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
       s(ok(X)) -> ok(s(X))
       adx(ok(X)) -> ok(adx(X))
       head(ok(X)) -> ok(head(X))
       tail(ok(X)) -> ok(tail(X))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Matrix Interpretation Processor:
      dimension: 1
      interpretation:
       [head#](x0) = x0 + 1,
       
       [top](x0) = 0,
       
       [ok](x0) = x0 + 1,
       
       [proper](x0) = x0 + 1,
       
       [tail](x0) = x0,
       
       [head](x0) = x0,
       
       [0] = 1,
       
       [zeros] = 0,
       
       [nats] = 1,
       
       [adx](x0) = x0 + 1,
       
       [s](x0) = x0,
       
       [cons](x0, x1) = x1,
       
       [mark](x0) = 0,
       
       [active](x0) = x0 + 1,
       
       [incr](x0) = x0,
       
       [nil] = 0
      orientation:
       head#(ok(X)) = X + 2 >= X + 1 = head#(X)
       
       active(incr(nil())) = 1 >= 0 = mark(nil())
       
       active(incr(cons(X,L))) = L + 1 >= 0 = mark(cons(s(X),incr(L)))
       
       active(adx(nil())) = 2 >= 0 = mark(nil())
       
       active(adx(cons(X,L))) = L + 2 >= 0 = mark(incr(cons(X,adx(L))))
       
       active(nats()) = 2 >= 0 = mark(adx(zeros()))
       
       active(zeros()) = 1 >= 0 = mark(cons(0(),zeros()))
       
       active(head(cons(X,L))) = L + 1 >= 0 = mark(X)
       
       active(tail(cons(X,L))) = L + 1 >= 0 = mark(L)
       
       active(incr(X)) = X + 1 >= X + 1 = incr(active(X))
       
       active(cons(X1,X2)) = X2 + 1 >= X2 = cons(active(X1),X2)
       
       active(s(X)) = X + 1 >= X + 1 = s(active(X))
       
       active(adx(X)) = X + 2 >= X + 2 = adx(active(X))
       
       active(head(X)) = X + 1 >= X + 1 = head(active(X))
       
       active(tail(X)) = X + 1 >= X + 1 = tail(active(X))
       
       incr(mark(X)) = 0 >= 0 = mark(incr(X))
       
       cons(mark(X1),X2) = X2 >= 0 = mark(cons(X1,X2))
       
       s(mark(X)) = 0 >= 0 = mark(s(X))
       
       adx(mark(X)) = 1 >= 0 = mark(adx(X))
       
       head(mark(X)) = 0 >= 0 = mark(head(X))
       
       tail(mark(X)) = 0 >= 0 = mark(tail(X))
       
       proper(incr(X)) = X + 1 >= X + 1 = incr(proper(X))
       
       proper(nil()) = 1 >= 1 = ok(nil())
       
       proper(cons(X1,X2)) = X2 + 1 >= X2 + 1 = cons(proper(X1),proper(X2))
       
       proper(s(X)) = X + 1 >= X + 1 = s(proper(X))
       
       proper(adx(X)) = X + 2 >= X + 2 = adx(proper(X))
       
       proper(nats()) = 2 >= 2 = ok(nats())
       
       proper(zeros()) = 1 >= 1 = ok(zeros())
       
       proper(0()) = 2 >= 2 = ok(0())
       
       proper(head(X)) = X + 1 >= X + 1 = head(proper(X))
       
       proper(tail(X)) = X + 1 >= X + 1 = tail(proper(X))
       
       incr(ok(X)) = X + 1 >= X + 1 = ok(incr(X))
       
       cons(ok(X1),ok(X2)) = X2 + 1 >= X2 + 1 = ok(cons(X1,X2))
       
       s(ok(X)) = X + 1 >= X + 1 = ok(s(X))
       
       adx(ok(X)) = X + 2 >= X + 2 = ok(adx(X))
       
       head(ok(X)) = X + 1 >= X + 1 = ok(head(X))
       
       tail(ok(X)) = X + 1 >= X + 1 = ok(tail(X))
       
       top(mark(X)) = 0 >= 0 = top(proper(X))
       
       top(ok(X)) = 0 >= 0 = top(active(X))
      problem:
       DPs:
        
       TRS:
        active(incr(nil())) -> mark(nil())
        active(incr(cons(X,L))) -> mark(cons(s(X),incr(L)))
        active(adx(nil())) -> mark(nil())
        active(adx(cons(X,L))) -> mark(incr(cons(X,adx(L))))
        active(nats()) -> mark(adx(zeros()))
        active(zeros()) -> mark(cons(0(),zeros()))
        active(head(cons(X,L))) -> mark(X)
        active(tail(cons(X,L))) -> mark(L)
        active(incr(X)) -> incr(active(X))
        active(cons(X1,X2)) -> cons(active(X1),X2)
        active(s(X)) -> s(active(X))
        active(adx(X)) -> adx(active(X))
        active(head(X)) -> head(active(X))
        active(tail(X)) -> tail(active(X))
        incr(mark(X)) -> mark(incr(X))
        cons(mark(X1),X2) -> mark(cons(X1,X2))
        s(mark(X)) -> mark(s(X))
        adx(mark(X)) -> mark(adx(X))
        head(mark(X)) -> mark(head(X))
        tail(mark(X)) -> mark(tail(X))
        proper(incr(X)) -> incr(proper(X))
        proper(nil()) -> ok(nil())
        proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
        proper(s(X)) -> s(proper(X))
        proper(adx(X)) -> adx(proper(X))
        proper(nats()) -> ok(nats())
        proper(zeros()) -> ok(zeros())
        proper(0()) -> ok(0())
        proper(head(X)) -> head(proper(X))
        proper(tail(X)) -> tail(proper(X))
        incr(ok(X)) -> ok(incr(X))
        cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
        s(ok(X)) -> ok(s(X))
        adx(ok(X)) -> ok(adx(X))
        head(ok(X)) -> ok(head(X))
        tail(ok(X)) -> ok(tail(X))
        top(mark(X)) -> top(proper(X))
        top(ok(X)) -> top(active(X))
      Qed
    
    DPs:
     tail#(ok(X)) -> tail#(X)
     tail#(mark(X)) -> tail#(X)
    TRS:
     active(incr(nil())) -> mark(nil())
     active(incr(cons(X,L))) -> mark(cons(s(X),incr(L)))
     active(adx(nil())) -> mark(nil())
     active(adx(cons(X,L))) -> mark(incr(cons(X,adx(L))))
     active(nats()) -> mark(adx(zeros()))
     active(zeros()) -> mark(cons(0(),zeros()))
     active(head(cons(X,L))) -> mark(X)
     active(tail(cons(X,L))) -> mark(L)
     active(incr(X)) -> incr(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(s(X)) -> s(active(X))
     active(adx(X)) -> adx(active(X))
     active(head(X)) -> head(active(X))
     active(tail(X)) -> tail(active(X))
     incr(mark(X)) -> mark(incr(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     s(mark(X)) -> mark(s(X))
     adx(mark(X)) -> mark(adx(X))
     head(mark(X)) -> mark(head(X))
     tail(mark(X)) -> mark(tail(X))
     proper(incr(X)) -> incr(proper(X))
     proper(nil()) -> ok(nil())
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(s(X)) -> s(proper(X))
     proper(adx(X)) -> adx(proper(X))
     proper(nats()) -> ok(nats())
     proper(zeros()) -> ok(zeros())
     proper(0()) -> ok(0())
     proper(head(X)) -> head(proper(X))
     proper(tail(X)) -> tail(proper(X))
     incr(ok(X)) -> ok(incr(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     s(ok(X)) -> ok(s(X))
     adx(ok(X)) -> ok(adx(X))
     head(ok(X)) -> ok(head(X))
     tail(ok(X)) -> ok(tail(X))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Matrix Interpretation Processor:
     dimension: 1
     interpretation:
      [tail#](x0) = x0 + 1,
      
      [top](x0) = 0,
      
      [ok](x0) = x0,
      
      [proper](x0) = x0,
      
      [tail](x0) = x0,
      
      [head](x0) = x0,
      
      [0] = 0,
      
      [zeros] = 0,
      
      [nats] = 1,
      
      [adx](x0) = x0,
      
      [s](x0) = x0,
      
      [cons](x0, x1) = x0 + x1,
      
      [mark](x0) = x0 + 1,
      
      [active](x0) = x0 + 1,
      
      [incr](x0) = x0,
      
      [nil] = 1
     orientation:
      tail#(ok(X)) = X + 1 >= X + 1 = tail#(X)
      
      tail#(mark(X)) = X + 2 >= X + 1 = tail#(X)
      
      active(incr(nil())) = 2 >= 2 = mark(nil())
      
      active(incr(cons(X,L))) = L + X + 1 >= L + X + 1 = mark(cons(s(X),incr(L)))
      
      active(adx(nil())) = 2 >= 2 = mark(nil())
      
      active(adx(cons(X,L))) = L + X + 1 >= L + X + 1 = mark(incr(cons(X,adx(L))))
      
      active(nats()) = 2 >= 1 = mark(adx(zeros()))
      
      active(zeros()) = 1 >= 1 = mark(cons(0(),zeros()))
      
      active(head(cons(X,L))) = L + X + 1 >= X + 1 = mark(X)
      
      active(tail(cons(X,L))) = L + X + 1 >= L + 1 = mark(L)
      
      active(incr(X)) = X + 1 >= X + 1 = incr(active(X))
      
      active(cons(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = cons(active(X1),X2)
      
      active(s(X)) = X + 1 >= X + 1 = s(active(X))
      
      active(adx(X)) = X + 1 >= X + 1 = adx(active(X))
      
      active(head(X)) = X + 1 >= X + 1 = head(active(X))
      
      active(tail(X)) = X + 1 >= X + 1 = tail(active(X))
      
      incr(mark(X)) = X + 1 >= X + 1 = mark(incr(X))
      
      cons(mark(X1),X2) = X1 + X2 + 1 >= X1 + X2 + 1 = mark(cons(X1,X2))
      
      s(mark(X)) = X + 1 >= X + 1 = mark(s(X))
      
      adx(mark(X)) = X + 1 >= X + 1 = mark(adx(X))
      
      head(mark(X)) = X + 1 >= X + 1 = mark(head(X))
      
      tail(mark(X)) = X + 1 >= X + 1 = mark(tail(X))
      
      proper(incr(X)) = X >= X = incr(proper(X))
      
      proper(nil()) = 1 >= 1 = ok(nil())
      
      proper(cons(X1,X2)) = X1 + X2 >= X1 + X2 = cons(proper(X1),proper(X2))
      
      proper(s(X)) = X >= X = s(proper(X))
      
      proper(adx(X)) = X >= X = adx(proper(X))
      
      proper(nats()) = 1 >= 1 = ok(nats())
      
      proper(zeros()) = 0 >= 0 = ok(zeros())
      
      proper(0()) = 0 >= 0 = ok(0())
      
      proper(head(X)) = X >= X = head(proper(X))
      
      proper(tail(X)) = X >= X = tail(proper(X))
      
      incr(ok(X)) = X >= X = ok(incr(X))
      
      cons(ok(X1),ok(X2)) = X1 + X2 >= X1 + X2 = ok(cons(X1,X2))
      
      s(ok(X)) = X >= X = ok(s(X))
      
      adx(ok(X)) = X >= X = ok(adx(X))
      
      head(ok(X)) = X >= X = ok(head(X))
      
      tail(ok(X)) = X >= X = ok(tail(X))
      
      top(mark(X)) = 0 >= 0 = top(proper(X))
      
      top(ok(X)) = 0 >= 0 = top(active(X))
     problem:
      DPs:
       tail#(ok(X)) -> tail#(X)
      TRS:
       active(incr(nil())) -> mark(nil())
       active(incr(cons(X,L))) -> mark(cons(s(X),incr(L)))
       active(adx(nil())) -> mark(nil())
       active(adx(cons(X,L))) -> mark(incr(cons(X,adx(L))))
       active(nats()) -> mark(adx(zeros()))
       active(zeros()) -> mark(cons(0(),zeros()))
       active(head(cons(X,L))) -> mark(X)
       active(tail(cons(X,L))) -> mark(L)
       active(incr(X)) -> incr(active(X))
       active(cons(X1,X2)) -> cons(active(X1),X2)
       active(s(X)) -> s(active(X))
       active(adx(X)) -> adx(active(X))
       active(head(X)) -> head(active(X))
       active(tail(X)) -> tail(active(X))
       incr(mark(X)) -> mark(incr(X))
       cons(mark(X1),X2) -> mark(cons(X1,X2))
       s(mark(X)) -> mark(s(X))
       adx(mark(X)) -> mark(adx(X))
       head(mark(X)) -> mark(head(X))
       tail(mark(X)) -> mark(tail(X))
       proper(incr(X)) -> incr(proper(X))
       proper(nil()) -> ok(nil())
       proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
       proper(s(X)) -> s(proper(X))
       proper(adx(X)) -> adx(proper(X))
       proper(nats()) -> ok(nats())
       proper(zeros()) -> ok(zeros())
       proper(0()) -> ok(0())
       proper(head(X)) -> head(proper(X))
       proper(tail(X)) -> tail(proper(X))
       incr(ok(X)) -> ok(incr(X))
       cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
       s(ok(X)) -> ok(s(X))
       adx(ok(X)) -> ok(adx(X))
       head(ok(X)) -> ok(head(X))
       tail(ok(X)) -> ok(tail(X))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Matrix Interpretation Processor:
      dimension: 1
      interpretation:
       [tail#](x0) = x0 + 1,
       
       [top](x0) = 0,
       
       [ok](x0) = x0 + 1,
       
       [proper](x0) = x0 + 1,
       
       [tail](x0) = x0,
       
       [head](x0) = x0,
       
       [0] = 1,
       
       [zeros] = 0,
       
       [nats] = 1,
       
       [adx](x0) = x0 + 1,
       
       [s](x0) = x0,
       
       [cons](x0, x1) = x1,
       
       [mark](x0) = 0,
       
       [active](x0) = x0 + 1,
       
       [incr](x0) = x0,
       
       [nil] = 0
      orientation:
       tail#(ok(X)) = X + 2 >= X + 1 = tail#(X)
       
       active(incr(nil())) = 1 >= 0 = mark(nil())
       
       active(incr(cons(X,L))) = L + 1 >= 0 = mark(cons(s(X),incr(L)))
       
       active(adx(nil())) = 2 >= 0 = mark(nil())
       
       active(adx(cons(X,L))) = L + 2 >= 0 = mark(incr(cons(X,adx(L))))
       
       active(nats()) = 2 >= 0 = mark(adx(zeros()))
       
       active(zeros()) = 1 >= 0 = mark(cons(0(),zeros()))
       
       active(head(cons(X,L))) = L + 1 >= 0 = mark(X)
       
       active(tail(cons(X,L))) = L + 1 >= 0 = mark(L)
       
       active(incr(X)) = X + 1 >= X + 1 = incr(active(X))
       
       active(cons(X1,X2)) = X2 + 1 >= X2 = cons(active(X1),X2)
       
       active(s(X)) = X + 1 >= X + 1 = s(active(X))
       
       active(adx(X)) = X + 2 >= X + 2 = adx(active(X))
       
       active(head(X)) = X + 1 >= X + 1 = head(active(X))
       
       active(tail(X)) = X + 1 >= X + 1 = tail(active(X))
       
       incr(mark(X)) = 0 >= 0 = mark(incr(X))
       
       cons(mark(X1),X2) = X2 >= 0 = mark(cons(X1,X2))
       
       s(mark(X)) = 0 >= 0 = mark(s(X))
       
       adx(mark(X)) = 1 >= 0 = mark(adx(X))
       
       head(mark(X)) = 0 >= 0 = mark(head(X))
       
       tail(mark(X)) = 0 >= 0 = mark(tail(X))
       
       proper(incr(X)) = X + 1 >= X + 1 = incr(proper(X))
       
       proper(nil()) = 1 >= 1 = ok(nil())
       
       proper(cons(X1,X2)) = X2 + 1 >= X2 + 1 = cons(proper(X1),proper(X2))
       
       proper(s(X)) = X + 1 >= X + 1 = s(proper(X))
       
       proper(adx(X)) = X + 2 >= X + 2 = adx(proper(X))
       
       proper(nats()) = 2 >= 2 = ok(nats())
       
       proper(zeros()) = 1 >= 1 = ok(zeros())
       
       proper(0()) = 2 >= 2 = ok(0())
       
       proper(head(X)) = X + 1 >= X + 1 = head(proper(X))
       
       proper(tail(X)) = X + 1 >= X + 1 = tail(proper(X))
       
       incr(ok(X)) = X + 1 >= X + 1 = ok(incr(X))
       
       cons(ok(X1),ok(X2)) = X2 + 1 >= X2 + 1 = ok(cons(X1,X2))
       
       s(ok(X)) = X + 1 >= X + 1 = ok(s(X))
       
       adx(ok(X)) = X + 2 >= X + 2 = ok(adx(X))
       
       head(ok(X)) = X + 1 >= X + 1 = ok(head(X))
       
       tail(ok(X)) = X + 1 >= X + 1 = ok(tail(X))
       
       top(mark(X)) = 0 >= 0 = top(proper(X))
       
       top(ok(X)) = 0 >= 0 = top(active(X))
      problem:
       DPs:
        
       TRS:
        active(incr(nil())) -> mark(nil())
        active(incr(cons(X,L))) -> mark(cons(s(X),incr(L)))
        active(adx(nil())) -> mark(nil())
        active(adx(cons(X,L))) -> mark(incr(cons(X,adx(L))))
        active(nats()) -> mark(adx(zeros()))
        active(zeros()) -> mark(cons(0(),zeros()))
        active(head(cons(X,L))) -> mark(X)
        active(tail(cons(X,L))) -> mark(L)
        active(incr(X)) -> incr(active(X))
        active(cons(X1,X2)) -> cons(active(X1),X2)
        active(s(X)) -> s(active(X))
        active(adx(X)) -> adx(active(X))
        active(head(X)) -> head(active(X))
        active(tail(X)) -> tail(active(X))
        incr(mark(X)) -> mark(incr(X))
        cons(mark(X1),X2) -> mark(cons(X1,X2))
        s(mark(X)) -> mark(s(X))
        adx(mark(X)) -> mark(adx(X))
        head(mark(X)) -> mark(head(X))
        tail(mark(X)) -> mark(tail(X))
        proper(incr(X)) -> incr(proper(X))
        proper(nil()) -> ok(nil())
        proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
        proper(s(X)) -> s(proper(X))
        proper(adx(X)) -> adx(proper(X))
        proper(nats()) -> ok(nats())
        proper(zeros()) -> ok(zeros())
        proper(0()) -> ok(0())
        proper(head(X)) -> head(proper(X))
        proper(tail(X)) -> tail(proper(X))
        incr(ok(X)) -> ok(incr(X))
        cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
        s(ok(X)) -> ok(s(X))
        adx(ok(X)) -> ok(adx(X))
        head(ok(X)) -> ok(head(X))
        tail(ok(X)) -> ok(tail(X))
        top(mark(X)) -> top(proper(X))
        top(ok(X)) -> top(active(X))
      Qed