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)
    Matrix Interpretation Processor: dim=1
     
     interpretation:
      [a__zWadr#](x0, x1) = 2x0 + 3x1 + 4,
      
      [a__from#](x0) = 6x0 + 3,
      
      [mark#](x0) = 2x0 + 2,
      
      [a__app#](x0, x1) = 2x0 + 2x1,
      
      [prefix](x0) = x0 + 6,
      
      [a__prefix](x0) = x0 + 6,
      
      [zWadr](x0, x1) = x0 + 2x1 + 4,
      
      [a__zWadr](x0, x1) = x0 + 2x1 + 4,
      
      [from](x0) = 4x0 + 2,
      
      [s](x0) = x0 + 5,
      
      [a__from](x0) = 4x0 + 2,
      
      [app](x0, x1) = 2x0 + x1 + 4,
      
      [cons](x0, x1) = x0 + 2,
      
      [mark](x0) = x0,
      
      [a__app](x0, x1) = 2x0 + x1 + 4,
      
      [nil] = 4
     orientation:
      a__zWadr#(cons(X,XS),cons(Y,YS)) = 2X + 3Y + 14 >= 2Y + 2 = mark#(Y)
      
      mark#(app(X1,X2)) = 4X1 + 2X2 + 10 >= 2X2 + 2 = mark#(X2)
      
      mark#(app(X1,X2)) = 4X1 + 2X2 + 10 >= 2X1 + 2 = mark#(X1)
      
      mark#(app(X1,X2)) = 4X1 + 2X2 + 10 >= 2X1 + 2X2 = a__app#(mark(X1),mark(X2))
      
      a__app#(nil(),YS) = 2YS + 8 >= 2YS + 2 = mark#(YS)
      
      mark#(from(X)) = 8X + 6 >= 2X + 2 = mark#(X)
      
      mark#(from(X)) = 8X + 6 >= 6X + 3 = a__from#(mark(X))
      
      a__from#(X) = 6X + 3 >= 2X + 2 = mark#(X)
      
      mark#(zWadr(X1,X2)) = 2X1 + 4X2 + 10 >= 2X2 + 2 = mark#(X2)
      
      mark#(zWadr(X1,X2)) = 2X1 + 4X2 + 10 >= 2X1 + 2 = mark#(X1)
      
      mark#(zWadr(X1,X2)) = 2X1 + 4X2 + 10 >= 2X1 + 3X2 + 4 = a__zWadr#(mark(X1),mark(X2))
      
      a__zWadr#(cons(X,XS),cons(Y,YS)) = 2X + 3Y + 14 >= 2X + 2 = mark#(X)
      
      mark#(prefix(X)) = 2X + 14 >= 2X + 2 = mark#(X)
      
      mark#(cons(X1,X2)) = 2X1 + 6 >= 2X1 + 2 = mark#(X1)
      
      mark#(s(X)) = 2X + 12 >= 2X + 2 = mark#(X)
      
      a__zWadr#(cons(X,XS),cons(Y,YS)) = 2X + 3Y + 14 >= 2X + 2Y + 4 = a__app#(mark(Y),cons(mark(X),nil()))
      
      a__app#(cons(X,XS),YS) = 2X + 2YS + 4 >= 2X + 2 = mark#(X)
      
      a__app(nil(),YS) = YS + 12 >= YS = mark(YS)
      
      a__app(cons(X,XS),YS) = 2X + YS + 8 >= X + 2 = cons(mark(X),app(XS,YS))
      
      a__from(X) = 4X + 2 >= X + 2 = cons(mark(X),from(s(X)))
      
      a__zWadr(nil(),YS) = 2YS + 8 >= 4 = nil()
      
      a__zWadr(XS,nil()) = XS + 12 >= 4 = nil()
      
      a__zWadr(cons(X,XS),cons(Y,YS)) = X + 2Y + 10 >= X + 2Y + 8 = cons(a__app(mark(Y),cons(mark(X),nil())),zWadr(XS,YS))
      
      a__prefix(L) = L + 6 >= 6 = cons(nil(),zWadr(L,prefix(L)))
      
      mark(app(X1,X2)) = 2X1 + X2 + 4 >= 2X1 + X2 + 4 = a__app(mark(X1),mark(X2))
      
      mark(from(X)) = 4X + 2 >= 4X + 2 = a__from(mark(X))
      
      mark(zWadr(X1,X2)) = X1 + 2X2 + 4 >= X1 + 2X2 + 4 = a__zWadr(mark(X1),mark(X2))
      
      mark(prefix(X)) = X + 6 >= X + 6 = a__prefix(mark(X))
      
      mark(nil()) = 4 >= 4 = nil()
      
      mark(cons(X1,X2)) = X1 + 2 >= X1 + 2 = cons(mark(X1),X2)
      
      mark(s(X)) = X + 5 >= X + 5 = s(mark(X))
      
      a__app(X1,X2) = 2X1 + X2 + 4 >= 2X1 + X2 + 4 = app(X1,X2)
      
      a__from(X) = 4X + 2 >= 4X + 2 = from(X)
      
      a__zWadr(X1,X2) = X1 + 2X2 + 4 >= X1 + 2X2 + 4 = zWadr(X1,X2)
      
      a__prefix(X) = X + 6 >= X + 6 = prefix(X)
     problem:
      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)
     Qed