YES

Problem:
 a__app(nil(),YS) -> mark(YS)
 a__app(cons(X,XS),YS) -> cons(mark(X),app(XS,YS))
 a__from(X) -> cons(mark(X),from(s(X)))
 a__zWadr(nil(),YS) -> nil()
 a__zWadr(XS,nil()) -> nil()
 a__zWadr(cons(X,XS),cons(Y,YS)) -> cons(a__app(mark(Y),cons(mark(X),nil())),zWadr(XS,YS))
 a__prefix(L) -> cons(nil(),zWadr(L,prefix(L)))
 mark(app(X1,X2)) -> a__app(mark(X1),mark(X2))
 mark(from(X)) -> a__from(mark(X))
 mark(zWadr(X1,X2)) -> a__zWadr(mark(X1),mark(X2))
 mark(prefix(X)) -> a__prefix(mark(X))
 mark(nil()) -> nil()
 mark(cons(X1,X2)) -> cons(mark(X1),X2)
 mark(s(X)) -> s(mark(X))
 a__app(X1,X2) -> app(X1,X2)
 a__from(X) -> from(X)
 a__zWadr(X1,X2) -> zWadr(X1,X2)
 a__prefix(X) -> prefix(X)

Proof:
 DP Processor:
  DPs:
   a__app#(nil(),YS) -> mark#(YS)
   a__app#(cons(X,XS),YS) -> mark#(X)
   a__from#(X) -> mark#(X)
   a__zWadr#(cons(X,XS),cons(Y,YS)) -> mark#(X)
   a__zWadr#(cons(X,XS),cons(Y,YS)) -> mark#(Y)
   a__zWadr#(cons(X,XS),cons(Y,YS)) -> a__app#(mark(Y),cons(mark(X),nil()))
   mark#(app(X1,X2)) -> mark#(X2)
   mark#(app(X1,X2)) -> mark#(X1)
   mark#(app(X1,X2)) -> a__app#(mark(X1),mark(X2))
   mark#(from(X)) -> mark#(X)
   mark#(from(X)) -> a__from#(mark(X))
   mark#(zWadr(X1,X2)) -> mark#(X2)
   mark#(zWadr(X1,X2)) -> mark#(X1)
   mark#(zWadr(X1,X2)) -> a__zWadr#(mark(X1),mark(X2))
   mark#(prefix(X)) -> mark#(X)
   mark#(prefix(X)) -> a__prefix#(mark(X))
   mark#(cons(X1,X2)) -> mark#(X1)
   mark#(s(X)) -> mark#(X)
  TRS:
   a__app(nil(),YS) -> mark(YS)
   a__app(cons(X,XS),YS) -> cons(mark(X),app(XS,YS))
   a__from(X) -> cons(mark(X),from(s(X)))
   a__zWadr(nil(),YS) -> nil()
   a__zWadr(XS,nil()) -> nil()
   a__zWadr(cons(X,XS),cons(Y,YS)) -> cons(a__app(mark(Y),cons(mark(X),nil())),zWadr(XS,YS))
   a__prefix(L) -> cons(nil(),zWadr(L,prefix(L)))
   mark(app(X1,X2)) -> a__app(mark(X1),mark(X2))
   mark(from(X)) -> a__from(mark(X))
   mark(zWadr(X1,X2)) -> a__zWadr(mark(X1),mark(X2))
   mark(prefix(X)) -> a__prefix(mark(X))
   mark(nil()) -> nil()
   mark(cons(X1,X2)) -> cons(mark(X1),X2)
   mark(s(X)) -> s(mark(X))
   a__app(X1,X2) -> app(X1,X2)
   a__from(X) -> from(X)
   a__zWadr(X1,X2) -> zWadr(X1,X2)
   a__prefix(X) -> prefix(X)
  TDG Processor:
   DPs:
    a__app#(nil(),YS) -> mark#(YS)
    a__app#(cons(X,XS),YS) -> mark#(X)
    a__from#(X) -> mark#(X)
    a__zWadr#(cons(X,XS),cons(Y,YS)) -> mark#(X)
    a__zWadr#(cons(X,XS),cons(Y,YS)) -> mark#(Y)
    a__zWadr#(cons(X,XS),cons(Y,YS)) -> a__app#(mark(Y),cons(mark(X),nil()))
    mark#(app(X1,X2)) -> mark#(X2)
    mark#(app(X1,X2)) -> mark#(X1)
    mark#(app(X1,X2)) -> a__app#(mark(X1),mark(X2))
    mark#(from(X)) -> mark#(X)
    mark#(from(X)) -> a__from#(mark(X))
    mark#(zWadr(X1,X2)) -> mark#(X2)
    mark#(zWadr(X1,X2)) -> mark#(X1)
    mark#(zWadr(X1,X2)) -> a__zWadr#(mark(X1),mark(X2))
    mark#(prefix(X)) -> mark#(X)
    mark#(prefix(X)) -> a__prefix#(mark(X))
    mark#(cons(X1,X2)) -> mark#(X1)
    mark#(s(X)) -> mark#(X)
   TRS:
    a__app(nil(),YS) -> mark(YS)
    a__app(cons(X,XS),YS) -> cons(mark(X),app(XS,YS))
    a__from(X) -> cons(mark(X),from(s(X)))
    a__zWadr(nil(),YS) -> nil()
    a__zWadr(XS,nil()) -> nil()
    a__zWadr(cons(X,XS),cons(Y,YS)) -> cons(a__app(mark(Y),cons(mark(X),nil())),zWadr(XS,YS))
    a__prefix(L) -> cons(nil(),zWadr(L,prefix(L)))
    mark(app(X1,X2)) -> a__app(mark(X1),mark(X2))
    mark(from(X)) -> a__from(mark(X))
    mark(zWadr(X1,X2)) -> a__zWadr(mark(X1),mark(X2))
    mark(prefix(X)) -> a__prefix(mark(X))
    mark(nil()) -> nil()
    mark(cons(X1,X2)) -> cons(mark(X1),X2)
    mark(s(X)) -> s(mark(X))
    a__app(X1,X2) -> app(X1,X2)
    a__from(X) -> from(X)
    a__zWadr(X1,X2) -> zWadr(X1,X2)
    a__prefix(X) -> prefix(X)
   graph:
    a__zWadr#(cons(X,XS),cons(Y,YS)) -> mark#(Y) ->
    mark#(s(X)) -> mark#(X)
    a__zWadr#(cons(X,XS),cons(Y,YS)) -> mark#(Y) ->
    mark#(cons(X1,X2)) -> mark#(X1)
    a__zWadr#(cons(X,XS),cons(Y,YS)) -> mark#(Y) ->
    mark#(prefix(X)) -> a__prefix#(mark(X))
    a__zWadr#(cons(X,XS),cons(Y,YS)) -> mark#(Y) ->
    mark#(prefix(X)) -> mark#(X)
    a__zWadr#(cons(X,XS),cons(Y,YS)) -> mark#(Y) ->
    mark#(zWadr(X1,X2)) -> a__zWadr#(mark(X1),mark(X2))
    a__zWadr#(cons(X,XS),cons(Y,YS)) -> mark#(Y) ->
    mark#(zWadr(X1,X2)) -> mark#(X1)
    a__zWadr#(cons(X,XS),cons(Y,YS)) -> mark#(Y) ->
    mark#(zWadr(X1,X2)) -> mark#(X2)
    a__zWadr#(cons(X,XS),cons(Y,YS)) -> mark#(Y) ->
    mark#(from(X)) -> a__from#(mark(X))
    a__zWadr#(cons(X,XS),cons(Y,YS)) -> mark#(Y) ->
    mark#(from(X)) -> mark#(X)
    a__zWadr#(cons(X,XS),cons(Y,YS)) -> mark#(Y) ->
    mark#(app(X1,X2)) -> a__app#(mark(X1),mark(X2))
    a__zWadr#(cons(X,XS),cons(Y,YS)) -> mark#(Y) ->
    mark#(app(X1,X2)) -> mark#(X1)
    a__zWadr#(cons(X,XS),cons(Y,YS)) -> mark#(Y) ->
    mark#(app(X1,X2)) -> mark#(X2)
    a__zWadr#(cons(X,XS),cons(Y,YS)) -> mark#(X) ->
    mark#(s(X)) -> mark#(X)
    a__zWadr#(cons(X,XS),cons(Y,YS)) -> mark#(X) ->
    mark#(cons(X1,X2)) -> mark#(X1)
    a__zWadr#(cons(X,XS),cons(Y,YS)) -> mark#(X) ->
    mark#(prefix(X)) -> a__prefix#(mark(X))
    a__zWadr#(cons(X,XS),cons(Y,YS)) -> mark#(X) ->
    mark#(prefix(X)) -> mark#(X)
    a__zWadr#(cons(X,XS),cons(Y,YS)) -> mark#(X) ->
    mark#(zWadr(X1,X2)) -> a__zWadr#(mark(X1),mark(X2))
    a__zWadr#(cons(X,XS),cons(Y,YS)) -> mark#(X) ->
    mark#(zWadr(X1,X2)) -> mark#(X1)
    a__zWadr#(cons(X,XS),cons(Y,YS)) -> mark#(X) ->
    mark#(zWadr(X1,X2)) -> mark#(X2)
    a__zWadr#(cons(X,XS),cons(Y,YS)) -> mark#(X) ->
    mark#(from(X)) -> a__from#(mark(X))
    a__zWadr#(cons(X,XS),cons(Y,YS)) -> mark#(X) ->
    mark#(from(X)) -> mark#(X)
    a__zWadr#(cons(X,XS),cons(Y,YS)) -> mark#(X) ->
    mark#(app(X1,X2)) -> a__app#(mark(X1),mark(X2))
    a__zWadr#(cons(X,XS),cons(Y,YS)) -> mark#(X) ->
    mark#(app(X1,X2)) -> mark#(X1)
    a__zWadr#(cons(X,XS),cons(Y,YS)) -> mark#(X) ->
    mark#(app(X1,X2)) -> mark#(X2)
    a__zWadr#(cons(X,XS),cons(Y,YS)) -> a__app#(mark(Y),cons(mark(X),nil())) ->
    a__app#(cons(X,XS),YS) -> mark#(X)
    a__zWadr#(cons(X,XS),cons(Y,YS)) -> a__app#(mark(Y),cons(mark(X),nil())) ->
    a__app#(nil(),YS) -> mark#(YS)
    a__from#(X) -> mark#(X) -> mark#(s(X)) -> mark#(X)
    a__from#(X) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1)
    a__from#(X) -> mark#(X) -> mark#(prefix(X)) -> a__prefix#(mark(X))
    a__from#(X) -> mark#(X) -> mark#(prefix(X)) -> mark#(X)
    a__from#(X) -> mark#(X) ->
    mark#(zWadr(X1,X2)) -> a__zWadr#(mark(X1),mark(X2))
    a__from#(X) -> mark#(X) -> mark#(zWadr(X1,X2)) -> mark#(X1)
    a__from#(X) -> mark#(X) -> mark#(zWadr(X1,X2)) -> mark#(X2)
    a__from#(X) -> mark#(X) -> mark#(from(X)) -> a__from#(mark(X))
    a__from#(X) -> mark#(X) -> mark#(from(X)) -> mark#(X)
    a__from#(X) -> mark#(X) ->
    mark#(app(X1,X2)) -> a__app#(mark(X1),mark(X2))
    a__from#(X) -> mark#(X) -> mark#(app(X1,X2)) -> mark#(X1)
    a__from#(X) -> mark#(X) -> mark#(app(X1,X2)) -> mark#(X2)
    mark#(prefix(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X)
    mark#(prefix(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1)
    mark#(prefix(X)) -> mark#(X) ->
    mark#(prefix(X)) -> a__prefix#(mark(X))
    mark#(prefix(X)) -> mark#(X) -> mark#(prefix(X)) -> mark#(X)
    mark#(prefix(X)) -> mark#(X) ->
    mark#(zWadr(X1,X2)) -> a__zWadr#(mark(X1),mark(X2))
    mark#(prefix(X)) -> mark#(X) -> mark#(zWadr(X1,X2)) -> mark#(X1)
    mark#(prefix(X)) -> mark#(X) -> mark#(zWadr(X1,X2)) -> mark#(X2)
    mark#(prefix(X)) -> mark#(X) -> mark#(from(X)) -> a__from#(mark(X))
    mark#(prefix(X)) -> mark#(X) -> mark#(from(X)) -> mark#(X)
    mark#(prefix(X)) -> mark#(X) ->
    mark#(app(X1,X2)) -> a__app#(mark(X1),mark(X2))
    mark#(prefix(X)) -> mark#(X) -> mark#(app(X1,X2)) -> mark#(X1)
    mark#(prefix(X)) -> mark#(X) ->
    mark#(app(X1,X2)) -> mark#(X2)
    mark#(zWadr(X1,X2)) -> a__zWadr#(mark(X1),mark(X2)) ->
    a__zWadr#(cons(X,XS),cons(Y,YS)) -> a__app#(mark(Y),cons(mark(X),nil()))
    mark#(zWadr(X1,X2)) -> a__zWadr#(mark(X1),mark(X2)) ->
    a__zWadr#(cons(X,XS),cons(Y,YS)) -> mark#(Y)
    mark#(zWadr(X1,X2)) -> a__zWadr#(mark(X1),mark(X2)) ->
    a__zWadr#(cons(X,XS),cons(Y,YS)) -> mark#(X)
    mark#(zWadr(X1,X2)) -> mark#(X2) -> mark#(s(X)) -> mark#(X)
    mark#(zWadr(X1,X2)) -> mark#(X2) ->
    mark#(cons(X1,X2)) -> mark#(X1)
    mark#(zWadr(X1,X2)) -> mark#(X2) ->
    mark#(prefix(X)) -> a__prefix#(mark(X))
    mark#(zWadr(X1,X2)) -> mark#(X2) ->
    mark#(prefix(X)) -> mark#(X)
    mark#(zWadr(X1,X2)) -> mark#(X2) ->
    mark#(zWadr(X1,X2)) -> a__zWadr#(mark(X1),mark(X2))
    mark#(zWadr(X1,X2)) -> mark#(X2) ->
    mark#(zWadr(X1,X2)) -> mark#(X1)
    mark#(zWadr(X1,X2)) -> mark#(X2) ->
    mark#(zWadr(X1,X2)) -> mark#(X2)
    mark#(zWadr(X1,X2)) -> mark#(X2) ->
    mark#(from(X)) -> a__from#(mark(X))
    mark#(zWadr(X1,X2)) -> mark#(X2) -> mark#(from(X)) -> mark#(X)
    mark#(zWadr(X1,X2)) -> mark#(X2) ->
    mark#(app(X1,X2)) -> a__app#(mark(X1),mark(X2))
    mark#(zWadr(X1,X2)) -> mark#(X2) ->
    mark#(app(X1,X2)) -> mark#(X1)
    mark#(zWadr(X1,X2)) -> mark#(X2) ->
    mark#(app(X1,X2)) -> mark#(X2)
    mark#(zWadr(X1,X2)) -> mark#(X1) -> mark#(s(X)) -> mark#(X)
    mark#(zWadr(X1,X2)) -> mark#(X1) ->
    mark#(cons(X1,X2)) -> mark#(X1)
    mark#(zWadr(X1,X2)) -> mark#(X1) ->
    mark#(prefix(X)) -> a__prefix#(mark(X))
    mark#(zWadr(X1,X2)) -> mark#(X1) ->
    mark#(prefix(X)) -> mark#(X)
    mark#(zWadr(X1,X2)) -> mark#(X1) ->
    mark#(zWadr(X1,X2)) -> a__zWadr#(mark(X1),mark(X2))
    mark#(zWadr(X1,X2)) -> mark#(X1) ->
    mark#(zWadr(X1,X2)) -> mark#(X1)
    mark#(zWadr(X1,X2)) -> mark#(X1) ->
    mark#(zWadr(X1,X2)) -> mark#(X2)
    mark#(zWadr(X1,X2)) -> mark#(X1) ->
    mark#(from(X)) -> a__from#(mark(X))
    mark#(zWadr(X1,X2)) -> mark#(X1) -> mark#(from(X)) -> mark#(X)
    mark#(zWadr(X1,X2)) -> mark#(X1) ->
    mark#(app(X1,X2)) -> a__app#(mark(X1),mark(X2))
    mark#(zWadr(X1,X2)) -> mark#(X1) ->
    mark#(app(X1,X2)) -> mark#(X1)
    mark#(zWadr(X1,X2)) -> mark#(X1) ->
    mark#(app(X1,X2)) -> mark#(X2)
    mark#(from(X)) -> a__from#(mark(X)) -> a__from#(X) -> mark#(X)
    mark#(from(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X)
    mark#(from(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1)
    mark#(from(X)) -> mark#(X) -> mark#(prefix(X)) -> a__prefix#(mark(X))
    mark#(from(X)) -> mark#(X) -> mark#(prefix(X)) -> mark#(X)
    mark#(from(X)) -> mark#(X) ->
    mark#(zWadr(X1,X2)) -> a__zWadr#(mark(X1),mark(X2))
    mark#(from(X)) -> mark#(X) -> mark#(zWadr(X1,X2)) -> mark#(X1)
    mark#(from(X)) -> mark#(X) -> mark#(zWadr(X1,X2)) -> mark#(X2)
    mark#(from(X)) -> mark#(X) -> mark#(from(X)) -> a__from#(mark(X))
    mark#(from(X)) -> mark#(X) -> mark#(from(X)) -> mark#(X)
    mark#(from(X)) -> mark#(X) ->
    mark#(app(X1,X2)) -> a__app#(mark(X1),mark(X2))
    mark#(from(X)) -> mark#(X) -> mark#(app(X1,X2)) -> mark#(X1)
    mark#(from(X)) -> mark#(X) -> mark#(app(X1,X2)) -> mark#(X2)
    mark#(s(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X)
    mark#(s(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1)
    mark#(s(X)) -> mark#(X) -> mark#(prefix(X)) -> a__prefix#(mark(X))
    mark#(s(X)) -> mark#(X) -> mark#(prefix(X)) -> mark#(X)
    mark#(s(X)) -> mark#(X) ->
    mark#(zWadr(X1,X2)) -> a__zWadr#(mark(X1),mark(X2))
    mark#(s(X)) -> mark#(X) -> mark#(zWadr(X1,X2)) -> mark#(X1)
    mark#(s(X)) -> mark#(X) -> mark#(zWadr(X1,X2)) -> mark#(X2)
    mark#(s(X)) -> mark#(X) -> mark#(from(X)) -> a__from#(mark(X))
    mark#(s(X)) -> mark#(X) -> mark#(from(X)) -> mark#(X)
    mark#(s(X)) -> mark#(X) ->
    mark#(app(X1,X2)) -> a__app#(mark(X1),mark(X2))
    mark#(s(X)) -> mark#(X) -> mark#(app(X1,X2)) -> mark#(X1)
    mark#(s(X)) -> mark#(X) -> mark#(app(X1,X2)) -> mark#(X2)
    mark#(app(X1,X2)) -> mark#(X2) -> mark#(s(X)) -> mark#(X)
    mark#(app(X1,X2)) -> mark#(X2) -> mark#(cons(X1,X2)) -> mark#(X1)
    mark#(app(X1,X2)) -> mark#(X2) ->
    mark#(prefix(X)) -> a__prefix#(mark(X))
    mark#(app(X1,X2)) -> mark#(X2) -> mark#(prefix(X)) -> mark#(X)
    mark#(app(X1,X2)) -> mark#(X2) ->
    mark#(zWadr(X1,X2)) -> a__zWadr#(mark(X1),mark(X2))
    mark#(app(X1,X2)) -> mark#(X2) ->
    mark#(zWadr(X1,X2)) -> mark#(X1)
    mark#(app(X1,X2)) -> mark#(X2) ->
    mark#(zWadr(X1,X2)) -> mark#(X2)
    mark#(app(X1,X2)) -> mark#(X2) ->
    mark#(from(X)) -> a__from#(mark(X))
    mark#(app(X1,X2)) -> mark#(X2) -> mark#(from(X)) -> mark#(X)
    mark#(app(X1,X2)) -> mark#(X2) ->
    mark#(app(X1,X2)) -> a__app#(mark(X1),mark(X2))
    mark#(app(X1,X2)) -> mark#(X2) -> mark#(app(X1,X2)) -> mark#(X1)
    mark#(app(X1,X2)) -> mark#(X2) -> mark#(app(X1,X2)) -> mark#(X2)
    mark#(app(X1,X2)) -> mark#(X1) -> mark#(s(X)) -> mark#(X)
    mark#(app(X1,X2)) -> mark#(X1) -> mark#(cons(X1,X2)) -> mark#(X1)
    mark#(app(X1,X2)) -> mark#(X1) ->
    mark#(prefix(X)) -> a__prefix#(mark(X))
    mark#(app(X1,X2)) -> mark#(X1) -> mark#(prefix(X)) -> mark#(X)
    mark#(app(X1,X2)) -> mark#(X1) ->
    mark#(zWadr(X1,X2)) -> a__zWadr#(mark(X1),mark(X2))
    mark#(app(X1,X2)) -> mark#(X1) ->
    mark#(zWadr(X1,X2)) -> mark#(X1)
    mark#(app(X1,X2)) -> mark#(X1) ->
    mark#(zWadr(X1,X2)) -> mark#(X2)
    mark#(app(X1,X2)) -> mark#(X1) ->
    mark#(from(X)) -> a__from#(mark(X))
    mark#(app(X1,X2)) -> mark#(X1) -> mark#(from(X)) -> mark#(X)
    mark#(app(X1,X2)) -> mark#(X1) ->
    mark#(app(X1,X2)) -> a__app#(mark(X1),mark(X2))
    mark#(app(X1,X2)) -> mark#(X1) -> mark#(app(X1,X2)) -> mark#(X1)
    mark#(app(X1,X2)) -> mark#(X1) ->
    mark#(app(X1,X2)) -> mark#(X2)
    mark#(app(X1,X2)) -> a__app#(mark(X1),mark(X2)) ->
    a__app#(cons(X,XS),YS) -> mark#(X)
    mark#(app(X1,X2)) -> a__app#(mark(X1),mark(X2)) ->
    a__app#(nil(),YS) -> mark#(YS)
    mark#(cons(X1,X2)) -> mark#(X1) -> mark#(s(X)) -> mark#(X)
    mark#(cons(X1,X2)) -> mark#(X1) ->
    mark#(cons(X1,X2)) -> mark#(X1)
    mark#(cons(X1,X2)) -> mark#(X1) ->
    mark#(prefix(X)) -> a__prefix#(mark(X))
    mark#(cons(X1,X2)) -> mark#(X1) -> mark#(prefix(X)) -> mark#(X)
    mark#(cons(X1,X2)) -> mark#(X1) ->
    mark#(zWadr(X1,X2)) -> a__zWadr#(mark(X1),mark(X2))
    mark#(cons(X1,X2)) -> mark#(X1) ->
    mark#(zWadr(X1,X2)) -> mark#(X1)
    mark#(cons(X1,X2)) -> mark#(X1) ->
    mark#(zWadr(X1,X2)) -> mark#(X2)
    mark#(cons(X1,X2)) -> mark#(X1) ->
    mark#(from(X)) -> a__from#(mark(X))
    mark#(cons(X1,X2)) -> mark#(X1) -> mark#(from(X)) -> mark#(X)
    mark#(cons(X1,X2)) -> mark#(X1) ->
    mark#(app(X1,X2)) -> a__app#(mark(X1),mark(X2))
    mark#(cons(X1,X2)) -> mark#(X1) ->
    mark#(app(X1,X2)) -> mark#(X1)
    mark#(cons(X1,X2)) -> mark#(X1) ->
    mark#(app(X1,X2)) -> mark#(X2)
    a__app#(cons(X,XS),YS) -> mark#(X) -> mark#(s(X)) -> mark#(X)
    a__app#(cons(X,XS),YS) -> mark#(X) ->
    mark#(cons(X1,X2)) -> mark#(X1)
    a__app#(cons(X,XS),YS) -> mark#(X) ->
    mark#(prefix(X)) -> a__prefix#(mark(X))
    a__app#(cons(X,XS),YS) -> mark#(X) ->
    mark#(prefix(X)) -> mark#(X)
    a__app#(cons(X,XS),YS) -> mark#(X) ->
    mark#(zWadr(X1,X2)) -> a__zWadr#(mark(X1),mark(X2))
    a__app#(cons(X,XS),YS) -> mark#(X) ->
    mark#(zWadr(X1,X2)) -> mark#(X1)
    a__app#(cons(X,XS),YS) -> mark#(X) ->
    mark#(zWadr(X1,X2)) -> mark#(X2)
    a__app#(cons(X,XS),YS) -> mark#(X) ->
    mark#(from(X)) -> a__from#(mark(X))
    a__app#(cons(X,XS),YS) -> mark#(X) ->
    mark#(from(X)) -> mark#(X)
    a__app#(cons(X,XS),YS) -> mark#(X) ->
    mark#(app(X1,X2)) -> a__app#(mark(X1),mark(X2))
    a__app#(cons(X,XS),YS) -> mark#(X) ->
    mark#(app(X1,X2)) -> mark#(X1)
    a__app#(cons(X,XS),YS) -> mark#(X) ->
    mark#(app(X1,X2)) -> mark#(X2)
    a__app#(nil(),YS) -> mark#(YS) -> mark#(s(X)) -> mark#(X)
    a__app#(nil(),YS) -> mark#(YS) -> mark#(cons(X1,X2)) -> mark#(X1)
    a__app#(nil(),YS) -> mark#(YS) ->
    mark#(prefix(X)) -> a__prefix#(mark(X))
    a__app#(nil(),YS) -> mark#(YS) -> mark#(prefix(X)) -> mark#(X)
    a__app#(nil(),YS) -> mark#(YS) ->
    mark#(zWadr(X1,X2)) -> a__zWadr#(mark(X1),mark(X2))
    a__app#(nil(),YS) -> mark#(YS) ->
    mark#(zWadr(X1,X2)) -> mark#(X1)
    a__app#(nil(),YS) -> mark#(YS) ->
    mark#(zWadr(X1,X2)) -> mark#(X2)
    a__app#(nil(),YS) -> mark#(YS) ->
    mark#(from(X)) -> a__from#(mark(X))
    a__app#(nil(),YS) -> mark#(YS) -> mark#(from(X)) -> mark#(X)
    a__app#(nil(),YS) -> mark#(YS) ->
    mark#(app(X1,X2)) -> a__app#(mark(X1),mark(X2))
    a__app#(nil(),YS) -> mark#(YS) -> mark#(app(X1,X2)) -> mark#(X1)
    a__app#(nil(),YS) -> mark#(YS) -> mark#(app(X1,X2)) -> mark#(X2)
   SCC Processor:
    #sccs: 1
    #rules: 17
    #arcs: 164/324
    DPs:
     a__zWadr#(cons(X,XS),cons(Y,YS)) -> mark#(Y)
     mark#(app(X1,X2)) -> mark#(X2)
     mark#(app(X1,X2)) -> mark#(X1)
     mark#(app(X1,X2)) -> a__app#(mark(X1),mark(X2))
     a__app#(nil(),YS) -> mark#(YS)
     mark#(from(X)) -> mark#(X)
     mark#(from(X)) -> a__from#(mark(X))
     a__from#(X) -> mark#(X)
     mark#(zWadr(X1,X2)) -> mark#(X2)
     mark#(zWadr(X1,X2)) -> mark#(X1)
     mark#(zWadr(X1,X2)) -> a__zWadr#(mark(X1),mark(X2))
     a__zWadr#(cons(X,XS),cons(Y,YS)) -> mark#(X)
     mark#(prefix(X)) -> mark#(X)
     mark#(cons(X1,X2)) -> mark#(X1)
     mark#(s(X)) -> mark#(X)
     a__zWadr#(cons(X,XS),cons(Y,YS)) -> a__app#(mark(Y),cons(mark(X),nil()))
     a__app#(cons(X,XS),YS) -> mark#(X)
    TRS:
     a__app(nil(),YS) -> mark(YS)
     a__app(cons(X,XS),YS) -> cons(mark(X),app(XS,YS))
     a__from(X) -> cons(mark(X),from(s(X)))
     a__zWadr(nil(),YS) -> nil()
     a__zWadr(XS,nil()) -> nil()
     a__zWadr(cons(X,XS),cons(Y,YS)) -> cons(a__app(mark(Y),cons(mark(X),nil())),zWadr(XS,YS))
     a__prefix(L) -> cons(nil(),zWadr(L,prefix(L)))
     mark(app(X1,X2)) -> a__app(mark(X1),mark(X2))
     mark(from(X)) -> a__from(mark(X))
     mark(zWadr(X1,X2)) -> a__zWadr(mark(X1),mark(X2))
     mark(prefix(X)) -> a__prefix(mark(X))
     mark(nil()) -> nil()
     mark(cons(X1,X2)) -> cons(mark(X1),X2)
     mark(s(X)) -> s(mark(X))
     a__app(X1,X2) -> app(X1,X2)
     a__from(X) -> from(X)
     a__zWadr(X1,X2) -> zWadr(X1,X2)
     a__prefix(X) -> prefix(X)
    KBO Processor:
     argument filtering:
      pi(nil) = []
      pi(a__app) = [0,1]
      pi(mark) = [0]
      pi(cons) = 0
      pi(app) = [0,1]
      pi(a__from) = [0]
      pi(s) = 0
      pi(from) = [0]
      pi(a__zWadr) = [0,1]
      pi(zWadr) = [0,1]
      pi(a__prefix) = [0]
      pi(prefix) = [0]
      pi(a__app#) = [0,1]
      pi(mark#) = [0]
      pi(a__from#) = [0]
      pi(a__zWadr#) = [0,1]
     usable rules:
      a__app(nil(),YS) -> mark(YS)
      a__app(cons(X,XS),YS) -> cons(mark(X),app(XS,YS))
      a__from(X) -> cons(mark(X),from(s(X)))
      a__zWadr(nil(),YS) -> nil()
      a__zWadr(XS,nil()) -> nil()
      a__zWadr(cons(X,XS),cons(Y,YS)) -> cons(a__app(mark(Y),cons(mark(X),nil())),zWadr(XS,YS))
      a__prefix(L) -> cons(nil(),zWadr(L,prefix(L)))
      mark(app(X1,X2)) -> a__app(mark(X1),mark(X2))
      mark(from(X)) -> a__from(mark(X))
      mark(zWadr(X1,X2)) -> a__zWadr(mark(X1),mark(X2))
      mark(prefix(X)) -> a__prefix(mark(X))
      mark(nil()) -> nil()
      mark(cons(X1,X2)) -> cons(mark(X1),X2)
      mark(s(X)) -> s(mark(X))
      a__app(X1,X2) -> app(X1,X2)
      a__from(X) -> from(X)
      a__zWadr(X1,X2) -> zWadr(X1,X2)
      a__prefix(X) -> prefix(X)
     weight function:
      w0 = 1
      w(a__zWadr#) = w(a__from#) = w(mark#) = w(a__app#) = w(prefix) = w(
      a__prefix) = w(from) = w(s) = w(a__from) = w(nil) = 1
      w(zWadr) = w(a__zWadr) = w(app) = w(cons) = w(mark) = w(a__app) = 0
     precedence:
      mark > a__zWadr > a__app > a__from# > mark# > a__zWadr# > a__prefix ~ 
      a__from > a__app# ~ prefix ~ zWadr ~ from ~ s ~ app ~ cons ~ nil
     problem:
      DPs:
       mark#(cons(X1,X2)) -> mark#(X1)
       mark#(s(X)) -> mark#(X)
      TRS:
       a__app(nil(),YS) -> mark(YS)
       a__app(cons(X,XS),YS) -> cons(mark(X),app(XS,YS))
       a__from(X) -> cons(mark(X),from(s(X)))
       a__zWadr(nil(),YS) -> nil()
       a__zWadr(XS,nil()) -> nil()
       a__zWadr(cons(X,XS),cons(Y,YS)) -> cons(a__app(mark(Y),cons(mark(X),nil())),zWadr(XS,YS))
       a__prefix(L) -> cons(nil(),zWadr(L,prefix(L)))
       mark(app(X1,X2)) -> a__app(mark(X1),mark(X2))
       mark(from(X)) -> a__from(mark(X))
       mark(zWadr(X1,X2)) -> a__zWadr(mark(X1),mark(X2))
       mark(prefix(X)) -> a__prefix(mark(X))
       mark(nil()) -> nil()
       mark(cons(X1,X2)) -> cons(mark(X1),X2)
       mark(s(X)) -> s(mark(X))
       a__app(X1,X2) -> app(X1,X2)
       a__from(X) -> from(X)
       a__zWadr(X1,X2) -> zWadr(X1,X2)
       a__prefix(X) -> prefix(X)
     Restore Modifier:
      DPs:
       mark#(cons(X1,X2)) -> mark#(X1)
       mark#(s(X)) -> mark#(X)
      TRS:
       a__app(nil(),YS) -> mark(YS)
       a__app(cons(X,XS),YS) -> cons(mark(X),app(XS,YS))
       a__from(X) -> cons(mark(X),from(s(X)))
       a__zWadr(nil(),YS) -> nil()
       a__zWadr(XS,nil()) -> nil()
       a__zWadr(cons(X,XS),cons(Y,YS)) -> cons(a__app(mark(Y),cons(mark(X),nil())),zWadr(XS,YS))
       a__prefix(L) -> cons(nil(),zWadr(L,prefix(L)))
       mark(app(X1,X2)) -> a__app(mark(X1),mark(X2))
       mark(from(X)) -> a__from(mark(X))
       mark(zWadr(X1,X2)) -> a__zWadr(mark(X1),mark(X2))
       mark(prefix(X)) -> a__prefix(mark(X))
       mark(nil()) -> nil()
       mark(cons(X1,X2)) -> cons(mark(X1),X2)
       mark(s(X)) -> s(mark(X))
       a__app(X1,X2) -> app(X1,X2)
       a__from(X) -> from(X)
       a__zWadr(X1,X2) -> zWadr(X1,X2)
       a__prefix(X) -> prefix(X)
      Size-Change Termination Processor:
       DPs:
        
       TRS:
        a__app(nil(),YS) -> mark(YS)
        a__app(cons(X,XS),YS) -> cons(mark(X),app(XS,YS))
        a__from(X) -> cons(mark(X),from(s(X)))
        a__zWadr(nil(),YS) -> nil()
        a__zWadr(XS,nil()) -> nil()
        a__zWadr(cons(X,XS),cons(Y,YS)) -> cons(a__app(mark(Y),cons(mark(X),nil())),zWadr(XS,YS))
        a__prefix(L) -> cons(nil(),zWadr(L,prefix(L)))
        mark(app(X1,X2)) -> a__app(mark(X1),mark(X2))
        mark(from(X)) -> a__from(mark(X))
        mark(zWadr(X1,X2)) -> a__zWadr(mark(X1),mark(X2))
        mark(prefix(X)) -> a__prefix(mark(X))
        mark(nil()) -> nil()
        mark(cons(X1,X2)) -> cons(mark(X1),X2)
        mark(s(X)) -> s(mark(X))
        a__app(X1,X2) -> app(X1,X2)
        a__from(X) -> from(X)
        a__zWadr(X1,X2) -> zWadr(X1,X2)
        a__prefix(X) -> prefix(X)
       The DP: mark#(cons(X1,X2)) -> mark#(X1) has the edges:
         0 >   0
       The DP: mark#(s(X)) -> mark#(X) has the edges:
         0 >   0
       Qed