YES

Problem:
 a__f(0()) -> cons(0(),f(s(0())))
 a__f(s(0())) -> a__f(a__p(s(0())))
 a__p(s(X)) -> mark(X)
 mark(f(X)) -> a__f(mark(X))
 mark(p(X)) -> a__p(mark(X))
 mark(0()) -> 0()
 mark(cons(X1,X2)) -> cons(mark(X1),X2)
 mark(s(X)) -> s(mark(X))
 a__f(X) -> f(X)
 a__p(X) -> p(X)

Proof:
 DP Processor:
  DPs:
   a__f#(s(0())) -> a__p#(s(0()))
   a__f#(s(0())) -> a__f#(a__p(s(0())))
   a__p#(s(X)) -> mark#(X)
   mark#(f(X)) -> mark#(X)
   mark#(f(X)) -> a__f#(mark(X))
   mark#(p(X)) -> mark#(X)
   mark#(p(X)) -> a__p#(mark(X))
   mark#(cons(X1,X2)) -> mark#(X1)
   mark#(s(X)) -> mark#(X)
  TRS:
   a__f(0()) -> cons(0(),f(s(0())))
   a__f(s(0())) -> a__f(a__p(s(0())))
   a__p(s(X)) -> mark(X)
   mark(f(X)) -> a__f(mark(X))
   mark(p(X)) -> a__p(mark(X))
   mark(0()) -> 0()
   mark(cons(X1,X2)) -> cons(mark(X1),X2)
   mark(s(X)) -> s(mark(X))
   a__f(X) -> f(X)
   a__p(X) -> p(X)
  TDG Processor:
   DPs:
    a__f#(s(0())) -> a__p#(s(0()))
    a__f#(s(0())) -> a__f#(a__p(s(0())))
    a__p#(s(X)) -> mark#(X)
    mark#(f(X)) -> mark#(X)
    mark#(f(X)) -> a__f#(mark(X))
    mark#(p(X)) -> mark#(X)
    mark#(p(X)) -> a__p#(mark(X))
    mark#(cons(X1,X2)) -> mark#(X1)
    mark#(s(X)) -> mark#(X)
   TRS:
    a__f(0()) -> cons(0(),f(s(0())))
    a__f(s(0())) -> a__f(a__p(s(0())))
    a__p(s(X)) -> mark(X)
    mark(f(X)) -> a__f(mark(X))
    mark(p(X)) -> a__p(mark(X))
    mark(0()) -> 0()
    mark(cons(X1,X2)) -> cons(mark(X1),X2)
    mark(s(X)) -> s(mark(X))
    a__f(X) -> f(X)
    a__p(X) -> p(X)
   graph:
    mark#(p(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X)
    mark#(p(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1)
    mark#(p(X)) -> mark#(X) -> mark#(p(X)) -> a__p#(mark(X))
    mark#(p(X)) -> mark#(X) -> mark#(p(X)) -> mark#(X)
    mark#(p(X)) -> mark#(X) -> mark#(f(X)) -> a__f#(mark(X))
    mark#(p(X)) -> mark#(X) -> mark#(f(X)) -> mark#(X)
    mark#(p(X)) -> a__p#(mark(X)) -> a__p#(s(X)) -> mark#(X)
    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#(p(X)) -> a__p#(mark(X))
    mark#(cons(X1,X2)) -> mark#(X1) -> mark#(p(X)) -> mark#(X)
    mark#(cons(X1,X2)) -> mark#(X1) -> mark#(f(X)) -> a__f#(mark(X))
    mark#(cons(X1,X2)) -> mark#(X1) -> mark#(f(X)) -> mark#(X)
    mark#(f(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X)
    mark#(f(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1)
    mark#(f(X)) -> mark#(X) -> mark#(p(X)) -> a__p#(mark(X))
    mark#(f(X)) -> mark#(X) -> mark#(p(X)) -> mark#(X)
    mark#(f(X)) -> mark#(X) -> mark#(f(X)) -> a__f#(mark(X))
    mark#(f(X)) -> mark#(X) -> mark#(f(X)) -> mark#(X)
    mark#(f(X)) -> a__f#(mark(X)) ->
    a__f#(s(0())) -> a__f#(a__p(s(0())))
    mark#(f(X)) -> a__f#(mark(X)) -> a__f#(s(0())) -> a__p#(s(0()))
    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#(p(X)) -> a__p#(mark(X))
    mark#(s(X)) -> mark#(X) -> mark#(p(X)) -> mark#(X)
    mark#(s(X)) -> mark#(X) -> mark#(f(X)) -> a__f#(mark(X))
    mark#(s(X)) -> mark#(X) -> mark#(f(X)) -> mark#(X)
    a__p#(s(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X)
    a__p#(s(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1)
    a__p#(s(X)) -> mark#(X) -> mark#(p(X)) -> a__p#(mark(X))
    a__p#(s(X)) -> mark#(X) -> mark#(p(X)) -> mark#(X)
    a__p#(s(X)) -> mark#(X) -> mark#(f(X)) -> a__f#(mark(X))
    a__p#(s(X)) -> mark#(X) -> mark#(f(X)) -> mark#(X)
    a__f#(s(0())) -> a__p#(s(0())) -> a__p#(s(X)) -> mark#(X)
    a__f#(s(0())) -> a__f#(a__p(s(0()))) ->
    a__f#(s(0())) -> a__f#(a__p(s(0())))
    a__f#(s(0())) -> a__f#(a__p(s(0()))) -> a__f#(s(0())) -> a__p#(s(0()))
   CDG Processor:
    DPs:
     a__f#(s(0())) -> a__p#(s(0()))
     a__f#(s(0())) -> a__f#(a__p(s(0())))
     a__p#(s(X)) -> mark#(X)
     mark#(f(X)) -> mark#(X)
     mark#(f(X)) -> a__f#(mark(X))
     mark#(p(X)) -> mark#(X)
     mark#(p(X)) -> a__p#(mark(X))
     mark#(cons(X1,X2)) -> mark#(X1)
     mark#(s(X)) -> mark#(X)
    TRS:
     a__f(0()) -> cons(0(),f(s(0())))
     a__f(s(0())) -> a__f(a__p(s(0())))
     a__p(s(X)) -> mark(X)
     mark(f(X)) -> a__f(mark(X))
     mark(p(X)) -> a__p(mark(X))
     mark(0()) -> 0()
     mark(cons(X1,X2)) -> cons(mark(X1),X2)
     mark(s(X)) -> s(mark(X))
     a__f(X) -> f(X)
     a__p(X) -> p(X)
    graph:
     mark#(p(X)) -> mark#(X) -> mark#(f(X)) -> mark#(X)
     mark#(p(X)) -> mark#(X) -> mark#(f(X)) -> a__f#(mark(X))
     mark#(p(X)) -> mark#(X) -> mark#(p(X)) -> mark#(X)
     mark#(p(X)) -> mark#(X) -> mark#(p(X)) -> a__p#(mark(X))
     mark#(p(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1)
     mark#(p(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X)
     mark#(p(X)) -> a__p#(mark(X)) -> a__p#(s(X)) -> mark#(X)
     mark#(cons(X1,X2)) -> mark#(X1) -> mark#(f(X)) -> mark#(X)
     mark#(cons(X1,X2)) -> mark#(X1) ->
     mark#(f(X)) -> a__f#(mark(X))
     mark#(cons(X1,X2)) -> mark#(X1) -> mark#(p(X)) -> mark#(X)
     mark#(cons(X1,X2)) -> mark#(X1) ->
     mark#(p(X)) -> a__p#(mark(X))
     mark#(cons(X1,X2)) -> mark#(X1) ->
     mark#(cons(X1,X2)) -> mark#(X1)
     mark#(cons(X1,X2)) -> mark#(X1) -> mark#(s(X)) -> mark#(X)
     mark#(f(X)) -> mark#(X) -> mark#(f(X)) -> mark#(X)
     mark#(f(X)) -> mark#(X) -> mark#(f(X)) -> a__f#(mark(X))
     mark#(f(X)) -> mark#(X) -> mark#(p(X)) -> mark#(X)
     mark#(f(X)) -> mark#(X) -> mark#(p(X)) -> a__p#(mark(X))
     mark#(f(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1)
     mark#(f(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X)
     mark#(f(X)) -> a__f#(mark(X)) -> a__f#(s(0())) -> a__p#(s(0()))
     mark#(f(X)) -> a__f#(mark(X)) -> a__f#(s(0())) -> a__f#(a__p(s(0())))
     mark#(s(X)) -> mark#(X) -> mark#(f(X)) -> mark#(X)
     mark#(s(X)) -> mark#(X) -> mark#(f(X)) -> a__f#(mark(X))
     mark#(s(X)) -> mark#(X) -> mark#(p(X)) -> mark#(X)
     mark#(s(X)) -> mark#(X) -> mark#(p(X)) -> a__p#(mark(X))
     mark#(s(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1)
     mark#(s(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X)
     a__p#(s(X)) -> mark#(X) -> mark#(f(X)) -> mark#(X)
     a__p#(s(X)) -> mark#(X) -> mark#(f(X)) -> a__f#(mark(X))
     a__p#(s(X)) -> mark#(X) -> mark#(p(X)) -> mark#(X)
     a__p#(s(X)) -> mark#(X) -> mark#(p(X)) -> a__p#(mark(X))
     a__p#(s(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1)
     a__p#(s(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X)
     a__f#(s(0())) -> a__p#(s(0())) -> a__p#(s(X)) -> mark#(X)
    SCC Processor:
     #sccs: 1
     #rules: 8
     #arcs: 34/81
     DPs:
      mark#(p(X)) -> mark#(X)
      mark#(s(X)) -> mark#(X)
      mark#(cons(X1,X2)) -> mark#(X1)
      mark#(p(X)) -> a__p#(mark(X))
      a__p#(s(X)) -> mark#(X)
      mark#(f(X)) -> a__f#(mark(X))
      a__f#(s(0())) -> a__p#(s(0()))
      mark#(f(X)) -> mark#(X)
     TRS:
      a__f(0()) -> cons(0(),f(s(0())))
      a__f(s(0())) -> a__f(a__p(s(0())))
      a__p(s(X)) -> mark(X)
      mark(f(X)) -> a__f(mark(X))
      mark(p(X)) -> a__p(mark(X))
      mark(0()) -> 0()
      mark(cons(X1,X2)) -> cons(mark(X1),X2)
      mark(s(X)) -> s(mark(X))
      a__f(X) -> f(X)
      a__p(X) -> p(X)
     Arctic Interpretation Processor:
      dimension: 1
      interpretation:
       [mark#](x0) = x0 + 0,
       
       [a__p#](x0) = x0 + 0,
       
       [a__f#](x0) = x0 + 3,
       
       [p](x0) = x0,
       
       [mark](x0) = x0 + 0,
       
       [a__p](x0) = x0 + 0,
       
       [cons](x0, x1) = x0 + x1 + 0,
       
       [f](x0) = x0 + 3,
       
       [s](x0) = x0,
       
       [a__f](x0) = x0 + 3,
       
       [0] = 0
      orientation:
       mark#(p(X)) = X + 0 >= X + 0 = mark#(X)
       
       mark#(s(X)) = X + 0 >= X + 0 = mark#(X)
       
       mark#(cons(X1,X2)) = X1 + X2 + 0 >= X1 + 0 = mark#(X1)
       
       mark#(p(X)) = X + 0 >= X + 0 = a__p#(mark(X))
       
       a__p#(s(X)) = X + 0 >= X + 0 = mark#(X)
       
       mark#(f(X)) = X + 3 >= X + 3 = a__f#(mark(X))
       
       a__f#(s(0())) = 3 >= 0 = a__p#(s(0()))
       
       mark#(f(X)) = X + 3 >= X + 0 = mark#(X)
       
       a__f(0()) = 3 >= 3 = cons(0(),f(s(0())))
       
       a__f(s(0())) = 3 >= 3 = a__f(a__p(s(0())))
       
       a__p(s(X)) = X + 0 >= X + 0 = mark(X)
       
       mark(f(X)) = X + 3 >= X + 3 = a__f(mark(X))
       
       mark(p(X)) = X + 0 >= X + 0 = a__p(mark(X))
       
       mark(0()) = 0 >= 0 = 0()
       
       mark(cons(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = cons(mark(X1),X2)
       
       mark(s(X)) = X + 0 >= X + 0 = s(mark(X))
       
       a__f(X) = X + 3 >= X + 3 = f(X)
       
       a__p(X) = X + 0 >= X = p(X)
      problem:
       DPs:
        mark#(p(X)) -> mark#(X)
        mark#(s(X)) -> mark#(X)
        mark#(cons(X1,X2)) -> mark#(X1)
        mark#(p(X)) -> a__p#(mark(X))
        a__p#(s(X)) -> mark#(X)
        mark#(f(X)) -> a__f#(mark(X))
        mark#(f(X)) -> mark#(X)
       TRS:
        a__f(0()) -> cons(0(),f(s(0())))
        a__f(s(0())) -> a__f(a__p(s(0())))
        a__p(s(X)) -> mark(X)
        mark(f(X)) -> a__f(mark(X))
        mark(p(X)) -> a__p(mark(X))
        mark(0()) -> 0()
        mark(cons(X1,X2)) -> cons(mark(X1),X2)
        mark(s(X)) -> s(mark(X))
        a__f(X) -> f(X)
        a__p(X) -> p(X)
      SCC Processor:
       #sccs: 1
       #rules: 6
       #arcs: 33/49
       DPs:
        mark#(p(X)) -> mark#(X)
        mark#(s(X)) -> mark#(X)
        mark#(cons(X1,X2)) -> mark#(X1)
        mark#(p(X)) -> a__p#(mark(X))
        a__p#(s(X)) -> mark#(X)
        mark#(f(X)) -> mark#(X)
       TRS:
        a__f(0()) -> cons(0(),f(s(0())))
        a__f(s(0())) -> a__f(a__p(s(0())))
        a__p(s(X)) -> mark(X)
        mark(f(X)) -> a__f(mark(X))
        mark(p(X)) -> a__p(mark(X))
        mark(0()) -> 0()
        mark(cons(X1,X2)) -> cons(mark(X1),X2)
        mark(s(X)) -> s(mark(X))
        a__f(X) -> f(X)
        a__p(X) -> p(X)
       KBO Processor:
        argument filtering:
         pi(0) = []
         pi(a__f) = 0
         pi(s) = [0]
         pi(f) = 0
         pi(cons) = 0
         pi(a__p) = 0
         pi(mark) = 0
         pi(p) = 0
         pi(a__p#) = 0
         pi(mark#) = 0
        weight function:
         w0 = 1
         w(p) = w(cons) = w(s) = w(0) = 1
         w(mark#) = w(a__p#) = w(mark) = w(a__p) = w(f) = w(a__f) = 0
        precedence:
         p > mark# ~ a__p# ~ mark ~ a__p ~ cons ~ f ~ s ~ a__f ~ 0
        problem:
         DPs:
          mark#(p(X)) -> mark#(X)
          mark#(cons(X1,X2)) -> mark#(X1)
          mark#(p(X)) -> a__p#(mark(X))
          mark#(f(X)) -> mark#(X)
         TRS:
          a__f(0()) -> cons(0(),f(s(0())))
          a__f(s(0())) -> a__f(a__p(s(0())))
          a__p(s(X)) -> mark(X)
          mark(f(X)) -> a__f(mark(X))
          mark(p(X)) -> a__p(mark(X))
          mark(0()) -> 0()
          mark(cons(X1,X2)) -> cons(mark(X1),X2)
          mark(s(X)) -> s(mark(X))
          a__f(X) -> f(X)
          a__p(X) -> p(X)
        SCC Processor:
         #sccs: 1
         #rules: 3
         #arcs: 26/16
         DPs:
          mark#(p(X)) -> mark#(X)
          mark#(cons(X1,X2)) -> mark#(X1)
          mark#(f(X)) -> mark#(X)
         TRS:
          a__f(0()) -> cons(0(),f(s(0())))
          a__f(s(0())) -> a__f(a__p(s(0())))
          a__p(s(X)) -> mark(X)
          mark(f(X)) -> a__f(mark(X))
          mark(p(X)) -> a__p(mark(X))
          mark(0()) -> 0()
          mark(cons(X1,X2)) -> cons(mark(X1),X2)
          mark(s(X)) -> s(mark(X))
          a__f(X) -> f(X)
          a__p(X) -> p(X)
         Subterm Criterion Processor:
          simple projection:
           pi(mark#) = 0
          problem:
           DPs:
            
           TRS:
            a__f(0()) -> cons(0(),f(s(0())))
            a__f(s(0())) -> a__f(a__p(s(0())))
            a__p(s(X)) -> mark(X)
            mark(f(X)) -> a__f(mark(X))
            mark(p(X)) -> a__p(mark(X))
            mark(0()) -> 0()
            mark(cons(X1,X2)) -> cons(mark(X1),X2)
            mark(s(X)) -> s(mark(X))
            a__f(X) -> f(X)
            a__p(X) -> p(X)
          Qed