YES

Problem:
 first(0(),X) -> nil()
 first(s(X),cons(Y,Z)) -> cons(Y,n__first(X,activate(Z)))
 from(X) -> cons(X,n__from(s(X)))
 first(X1,X2) -> n__first(X1,X2)
 from(X) -> n__from(X)
 activate(n__first(X1,X2)) -> first(X1,X2)
 activate(n__from(X)) -> from(X)
 activate(X) -> X

Proof:
 DP Processor:
  DPs:
   first#(s(X),cons(Y,Z)) -> activate#(Z)
   activate#(n__first(X1,X2)) -> first#(X1,X2)
   activate#(n__from(X)) -> from#(X)
  TRS:
   first(0(),X) -> nil()
   first(s(X),cons(Y,Z)) -> cons(Y,n__first(X,activate(Z)))
   from(X) -> cons(X,n__from(s(X)))
   first(X1,X2) -> n__first(X1,X2)
   from(X) -> n__from(X)
   activate(n__first(X1,X2)) -> first(X1,X2)
   activate(n__from(X)) -> from(X)
   activate(X) -> X
  TDG Processor:
   DPs:
    first#(s(X),cons(Y,Z)) -> activate#(Z)
    activate#(n__first(X1,X2)) -> first#(X1,X2)
    activate#(n__from(X)) -> from#(X)
   TRS:
    first(0(),X) -> nil()
    first(s(X),cons(Y,Z)) -> cons(Y,n__first(X,activate(Z)))
    from(X) -> cons(X,n__from(s(X)))
    first(X1,X2) -> n__first(X1,X2)
    from(X) -> n__from(X)
    activate(n__first(X1,X2)) -> first(X1,X2)
    activate(n__from(X)) -> from(X)
    activate(X) -> X
   graph:
    activate#(n__first(X1,X2)) -> first#(X1,X2) ->
    first#(s(X),cons(Y,Z)) -> activate#(Z)
    first#(s(X),cons(Y,Z)) -> activate#(Z) ->
    activate#(n__from(X)) -> from#(X)
    first#(s(X),cons(Y,Z)) -> activate#(Z) -> activate#(n__first(X1,X2)) -> first#(X1,X2)
   SCC Processor:
    #sccs: 1
    #rules: 2
    #arcs: 3/9
    DPs:
     activate#(n__first(X1,X2)) -> first#(X1,X2)
     first#(s(X),cons(Y,Z)) -> activate#(Z)
    TRS:
     first(0(),X) -> nil()
     first(s(X),cons(Y,Z)) -> cons(Y,n__first(X,activate(Z)))
     from(X) -> cons(X,n__from(s(X)))
     first(X1,X2) -> n__first(X1,X2)
     from(X) -> n__from(X)
     activate(n__first(X1,X2)) -> first(X1,X2)
     activate(n__from(X)) -> from(X)
     activate(X) -> X
    Matrix Interpretation Processor: dim=1
     
     interpretation:
      [activate#](x0) = 1/2x0 + 5/2,
      
      [first#](x0, x1) = x1 + 3,
      
      [n__from](x0) = 0,
      
      [from](x0) = 0,
      
      [n__first](x0, x1) = x0 + 3x1 + 2,
      
      [activate](x0) = x0,
      
      [cons](x0, x1) = 1/2x1,
      
      [s](x0) = 1/2x0,
      
      [nil] = 0,
      
      [first](x0, x1) = x0 + 3x1 + 2,
      
      [0] = 1/2
     orientation:
      activate#(n__first(X1,X2)) = 1/2X1 + 3/2X2 + 7/2 >= X2 + 3 = first#(X1,X2)
      
      first#(s(X),cons(Y,Z)) = 1/2Z + 3 >= 1/2Z + 5/2 = activate#(Z)
      
      first(0(),X) = 3X + 5/2 >= 0 = nil()
      
      first(s(X),cons(Y,Z)) = 1/2X + 3/2Z + 2 >= 1/2X + 3/2Z + 1 = cons(Y,n__first(X,activate(Z)))
      
      from(X) = 0 >= 0 = cons(X,n__from(s(X)))
      
      first(X1,X2) = X1 + 3X2 + 2 >= X1 + 3X2 + 2 = n__first(X1,X2)
      
      from(X) = 0 >= 0 = n__from(X)
      
      activate(n__first(X1,X2)) = X1 + 3X2 + 2 >= X1 + 3X2 + 2 = first(X1,X2)
      
      activate(n__from(X)) = 0 >= 0 = from(X)
      
      activate(X) = X >= X = X
     problem:
      DPs:
       
      TRS:
       first(0(),X) -> nil()
       first(s(X),cons(Y,Z)) -> cons(Y,n__first(X,activate(Z)))
       from(X) -> cons(X,n__from(s(X)))
       first(X1,X2) -> n__first(X1,X2)
       from(X) -> n__from(X)
       activate(n__first(X1,X2)) -> first(X1,X2)
       activate(n__from(X)) -> from(X)
       activate(X) -> X
     Qed