YES(?,O(n^3))
TRS:
 {
             a__f X -> f X,
           a__f 0() -> cons(0(), f s 0()),
         a__f s 0() -> a__f a__p s 0(),
             a__p X -> p X,
         a__p s 0() -> 0(),
           mark f X -> a__f mark X,
  mark cons(X1, X2) -> cons(mark X1, X2),
           mark 0() -> 0(),
           mark s X -> s mark X,
           mark p X -> a__p mark X
 }
 DUP: We consider a non-duplicating system.
  Trs:
   {
               a__f X -> f X,
             a__f 0() -> cons(0(), f s 0()),
           a__f s 0() -> a__f a__p s 0(),
               a__p X -> p X,
           a__p s 0() -> 0(),
             mark f X -> a__f mark X,
    mark cons(X1, X2) -> cons(mark X1, X2),
             mark 0() -> 0(),
             mark s X -> s mark X,
             mark p X -> a__p mark X
   }
  Matrix Interpretation:
   Interpretation class: triangular
       [X2]    [1 1 0][X2]   [0]
   [p]([X1]) = [0 1 0][X1] + [1]
       [X0]    [0 0 0][X0]   [0]
   
          [X2]    [1 3 0][X2]   [1]
   [mark]([X1]) = [0 1 0][X1] + [0]
          [X0]    [0 0 1][X0]   [0]
   
          [X2]    [1 1 0][X2]   [1]
   [a__p]([X1]) = [0 1 0][X1] + [1]
          [X0]    [0 0 0][X0]   [0]
   
          [X2]    [1 0 3][X2]   [2]
   [a__f]([X1]) = [0 1 1][X1] + [1]
          [X0]    [0 0 0][X0]   [0]
   
       [X2]    [1 1 0][X2]   [0]
   [s]([X1]) = [0 1 0][X1] + [1]
       [X0]    [0 0 0][X0]   [3]
   
         [0]
   [0] = [0]
         [0]
   
          [X5]  [X2]    [1 0 2][X5]   [1 0 1][X2]   [0]
   [cons]([X4], [X1]) = [0 1 1][X4] + [0 0 0][X1] + [1]
          [X3]  [X0]    [0 0 0][X3]   [0 0 0][X0]   [0]
   
       [X2]    [1 0 0][X2]   [0]
   [f]([X1]) = [0 1 1][X1] + [1]
       [X0]    [0 0 0][X0]   [0]
   
   
   Qed