YES

Problem:
 a__first(0(),X) -> nil()
 a__first(s(X),cons(Y,Z)) -> cons(mark(Y),first(X,Z))
 a__from(X) -> cons(mark(X),from(s(X)))
 mark(first(X1,X2)) -> a__first(mark(X1),mark(X2))
 mark(from(X)) -> a__from(mark(X))
 mark(0()) -> 0()
 mark(nil()) -> nil()
 mark(s(X)) -> s(mark(X))
 mark(cons(X1,X2)) -> cons(mark(X1),X2)
 a__first(X1,X2) -> first(X1,X2)
 a__from(X) -> from(X)

Proof:
 DP Processor:
  DPs:
   a__first#(s(X),cons(Y,Z)) -> mark#(Y)
   a__from#(X) -> mark#(X)
   mark#(first(X1,X2)) -> mark#(X2)
   mark#(first(X1,X2)) -> mark#(X1)
   mark#(first(X1,X2)) -> a__first#(mark(X1),mark(X2))
   mark#(from(X)) -> mark#(X)
   mark#(from(X)) -> a__from#(mark(X))
   mark#(s(X)) -> mark#(X)
   mark#(cons(X1,X2)) -> mark#(X1)
  TRS:
   a__first(0(),X) -> nil()
   a__first(s(X),cons(Y,Z)) -> cons(mark(Y),first(X,Z))
   a__from(X) -> cons(mark(X),from(s(X)))
   mark(first(X1,X2)) -> a__first(mark(X1),mark(X2))
   mark(from(X)) -> a__from(mark(X))
   mark(0()) -> 0()
   mark(nil()) -> nil()
   mark(s(X)) -> s(mark(X))
   mark(cons(X1,X2)) -> cons(mark(X1),X2)
   a__first(X1,X2) -> first(X1,X2)
   a__from(X) -> from(X)
  TDG Processor:
   DPs:
    a__first#(s(X),cons(Y,Z)) -> mark#(Y)
    a__from#(X) -> mark#(X)
    mark#(first(X1,X2)) -> mark#(X2)
    mark#(first(X1,X2)) -> mark#(X1)
    mark#(first(X1,X2)) -> a__first#(mark(X1),mark(X2))
    mark#(from(X)) -> mark#(X)
    mark#(from(X)) -> a__from#(mark(X))
    mark#(s(X)) -> mark#(X)
    mark#(cons(X1,X2)) -> mark#(X1)
   TRS:
    a__first(0(),X) -> nil()
    a__first(s(X),cons(Y,Z)) -> cons(mark(Y),first(X,Z))
    a__from(X) -> cons(mark(X),from(s(X)))
    mark(first(X1,X2)) -> a__first(mark(X1),mark(X2))
    mark(from(X)) -> a__from(mark(X))
    mark(0()) -> 0()
    mark(nil()) -> nil()
    mark(s(X)) -> s(mark(X))
    mark(cons(X1,X2)) -> cons(mark(X1),X2)
    a__first(X1,X2) -> first(X1,X2)
    a__from(X) -> from(X)
   graph:
    a__from#(X) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1)
    a__from#(X) -> mark#(X) -> mark#(s(X)) -> mark#(X)
    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#(first(X1,X2)) -> a__first#(mark(X1),mark(X2))
    a__from#(X) -> mark#(X) -> mark#(first(X1,X2)) -> mark#(X1)
    a__from#(X) -> mark#(X) -> mark#(first(X1,X2)) -> mark#(X2)
    mark#(from(X)) -> a__from#(mark(X)) -> a__from#(X) -> mark#(X)
    mark#(from(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1)
    mark#(from(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X)
    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#(first(X1,X2)) -> a__first#(mark(X1),mark(X2))
    mark#(from(X)) -> mark#(X) -> mark#(first(X1,X2)) -> mark#(X1)
    mark#(from(X)) -> mark#(X) -> mark#(first(X1,X2)) -> mark#(X2)
    mark#(first(X1,X2)) -> mark#(X2) ->
    mark#(cons(X1,X2)) -> mark#(X1)
    mark#(first(X1,X2)) -> mark#(X2) -> mark#(s(X)) -> mark#(X)
    mark#(first(X1,X2)) -> mark#(X2) ->
    mark#(from(X)) -> a__from#(mark(X))
    mark#(first(X1,X2)) -> mark#(X2) -> mark#(from(X)) -> mark#(X)
    mark#(first(X1,X2)) -> mark#(X2) ->
    mark#(first(X1,X2)) -> a__first#(mark(X1),mark(X2))
    mark#(first(X1,X2)) -> mark#(X2) ->
    mark#(first(X1,X2)) -> mark#(X1)
    mark#(first(X1,X2)) -> mark#(X2) ->
    mark#(first(X1,X2)) -> mark#(X2)
    mark#(first(X1,X2)) -> mark#(X1) ->
    mark#(cons(X1,X2)) -> mark#(X1)
    mark#(first(X1,X2)) -> mark#(X1) -> mark#(s(X)) -> mark#(X)
    mark#(first(X1,X2)) -> mark#(X1) ->
    mark#(from(X)) -> a__from#(mark(X))
    mark#(first(X1,X2)) -> mark#(X1) -> mark#(from(X)) -> mark#(X)
    mark#(first(X1,X2)) -> mark#(X1) ->
    mark#(first(X1,X2)) -> a__first#(mark(X1),mark(X2))
    mark#(first(X1,X2)) -> mark#(X1) ->
    mark#(first(X1,X2)) -> mark#(X1)
    mark#(first(X1,X2)) -> mark#(X1) ->
    mark#(first(X1,X2)) -> mark#(X2)
    mark#(first(X1,X2)) -> a__first#(mark(X1),mark(X2)) ->
    a__first#(s(X),cons(Y,Z)) -> mark#(Y)
    mark#(cons(X1,X2)) -> mark#(X1) ->
    mark#(cons(X1,X2)) -> mark#(X1)
    mark#(cons(X1,X2)) -> mark#(X1) -> mark#(s(X)) -> mark#(X)
    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#(first(X1,X2)) -> a__first#(mark(X1),mark(X2))
    mark#(cons(X1,X2)) -> mark#(X1) ->
    mark#(first(X1,X2)) -> mark#(X1)
    mark#(cons(X1,X2)) -> mark#(X1) -> mark#(first(X1,X2)) -> mark#(X2)
    mark#(s(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1)
    mark#(s(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X)
    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#(first(X1,X2)) -> a__first#(mark(X1),mark(X2))
    mark#(s(X)) -> mark#(X) -> mark#(first(X1,X2)) -> mark#(X1)
    mark#(s(X)) -> mark#(X) ->
    mark#(first(X1,X2)) -> mark#(X2)
    a__first#(s(X),cons(Y,Z)) -> mark#(Y) ->
    mark#(cons(X1,X2)) -> mark#(X1)
    a__first#(s(X),cons(Y,Z)) -> mark#(Y) ->
    mark#(s(X)) -> mark#(X)
    a__first#(s(X),cons(Y,Z)) -> mark#(Y) ->
    mark#(from(X)) -> a__from#(mark(X))
    a__first#(s(X),cons(Y,Z)) -> mark#(Y) ->
    mark#(from(X)) -> mark#(X)
    a__first#(s(X),cons(Y,Z)) -> mark#(Y) ->
    mark#(first(X1,X2)) -> a__first#(mark(X1),mark(X2))
    a__first#(s(X),cons(Y,Z)) -> mark#(Y) ->
    mark#(first(X1,X2)) -> mark#(X1)
    a__first#(s(X),cons(Y,Z)) -> mark#(Y) -> mark#(first(X1,X2)) -> mark#(X2)
   Arctic Interpretation Processor:
    dimension: 1
    usable rules:
     a__first(0(),X) -> nil()
     a__first(s(X),cons(Y,Z)) -> cons(mark(Y),first(X,Z))
     a__from(X) -> cons(mark(X),from(s(X)))
     mark(first(X1,X2)) -> a__first(mark(X1),mark(X2))
     mark(from(X)) -> a__from(mark(X))
     mark(0()) -> 0()
     mark(nil()) -> nil()
     mark(s(X)) -> s(mark(X))
     mark(cons(X1,X2)) -> cons(mark(X1),X2)
     a__first(X1,X2) -> first(X1,X2)
     a__from(X) -> from(X)
    interpretation:
     [a__from#](x0) = x0 + 0,
     
     [mark#](x0) = x0,
     
     [a__first#](x0, x1) = x1 + 0,
     
     [from](x0) = x0 + 0,
     
     [a__from](x0) = x0 + 0,
     
     [first](x0, x1) = 7x0 + x1 + 0,
     
     [mark](x0) = x0,
     
     [cons](x0, x1) = x0 + x1 + 0,
     
     [s](x0) = x0 + 0,
     
     [nil] = 7,
     
     [a__first](x0, x1) = 7x0 + x1 + 0,
     
     [0] = 0
    orientation:
     a__first#(s(X),cons(Y,Z)) = Y + Z + 0 >= Y = mark#(Y)
     
     a__from#(X) = X + 0 >= X = mark#(X)
     
     mark#(first(X1,X2)) = 7X1 + X2 + 0 >= X2 = mark#(X2)
     
     mark#(first(X1,X2)) = 7X1 + X2 + 0 >= X1 = mark#(X1)
     
     mark#(first(X1,X2)) = 7X1 + X2 + 0 >= X2 + 0 = a__first#(mark(X1),mark(X2))
     
     mark#(from(X)) = X + 0 >= X = mark#(X)
     
     mark#(from(X)) = X + 0 >= X + 0 = a__from#(mark(X))
     
     mark#(s(X)) = X + 0 >= X = mark#(X)
     
     mark#(cons(X1,X2)) = X1 + X2 + 0 >= X1 = mark#(X1)
     
     a__first(0(),X) = X + 7 >= 7 = nil()
     
     a__first(s(X),cons(Y,Z)) = 7X + Y + Z + 7 >= 7X + Y + Z + 0 = cons(mark(Y),first(X,Z))
     
     a__from(X) = X + 0 >= X + 0 = cons(mark(X),from(s(X)))
     
     mark(first(X1,X2)) = 7X1 + X2 + 0 >= 7X1 + X2 + 0 = a__first(mark(X1),mark(X2))
     
     mark(from(X)) = X + 0 >= X + 0 = a__from(mark(X))
     
     mark(0()) = 0 >= 0 = 0()
     
     mark(nil()) = 7 >= 7 = nil()
     
     mark(s(X)) = X + 0 >= X + 0 = s(mark(X))
     
     mark(cons(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = cons(mark(X1),X2)
     
     a__first(X1,X2) = 7X1 + X2 + 0 >= 7X1 + X2 + 0 = first(X1,X2)
     
     a__from(X) = X + 0 >= X + 0 = from(X)
    problem:
     DPs:
      a__first#(s(X),cons(Y,Z)) -> mark#(Y)
      a__from#(X) -> mark#(X)
      mark#(first(X1,X2)) -> mark#(X2)
      mark#(first(X1,X2)) -> a__first#(mark(X1),mark(X2))
      mark#(from(X)) -> mark#(X)
      mark#(from(X)) -> a__from#(mark(X))
      mark#(s(X)) -> mark#(X)
      mark#(cons(X1,X2)) -> mark#(X1)
     TRS:
      a__first(0(),X) -> nil()
      a__first(s(X),cons(Y,Z)) -> cons(mark(Y),first(X,Z))
      a__from(X) -> cons(mark(X),from(s(X)))
      mark(first(X1,X2)) -> a__first(mark(X1),mark(X2))
      mark(from(X)) -> a__from(mark(X))
      mark(0()) -> 0()
      mark(nil()) -> nil()
      mark(s(X)) -> s(mark(X))
      mark(cons(X1,X2)) -> cons(mark(X1),X2)
      a__first(X1,X2) -> first(X1,X2)
      a__from(X) -> from(X)
    Restore Modifier:
     DPs:
      a__first#(s(X),cons(Y,Z)) -> mark#(Y)
      a__from#(X) -> mark#(X)
      mark#(first(X1,X2)) -> mark#(X2)
      mark#(first(X1,X2)) -> a__first#(mark(X1),mark(X2))
      mark#(from(X)) -> mark#(X)
      mark#(from(X)) -> a__from#(mark(X))
      mark#(s(X)) -> mark#(X)
      mark#(cons(X1,X2)) -> mark#(X1)
     TRS:
      a__first(0(),X) -> nil()
      a__first(s(X),cons(Y,Z)) -> cons(mark(Y),first(X,Z))
      a__from(X) -> cons(mark(X),from(s(X)))
      mark(first(X1,X2)) -> a__first(mark(X1),mark(X2))
      mark(from(X)) -> a__from(mark(X))
      mark(0()) -> 0()
      mark(nil()) -> nil()
      mark(s(X)) -> s(mark(X))
      mark(cons(X1,X2)) -> cons(mark(X1),X2)
      a__first(X1,X2) -> first(X1,X2)
      a__from(X) -> from(X)
     Arctic Interpretation Processor:
      dimension: 1
      usable rules:
       a__first(0(),X) -> nil()
       a__first(s(X),cons(Y,Z)) -> cons(mark(Y),first(X,Z))
       a__from(X) -> cons(mark(X),from(s(X)))
       mark(first(X1,X2)) -> a__first(mark(X1),mark(X2))
       mark(from(X)) -> a__from(mark(X))
       mark(0()) -> 0()
       mark(nil()) -> nil()
       mark(s(X)) -> s(mark(X))
       mark(cons(X1,X2)) -> cons(mark(X1),X2)
       a__first(X1,X2) -> first(X1,X2)
       a__from(X) -> from(X)
      interpretation:
       [a__from#](x0) = x0 + 0,
       
       [mark#](x0) = x0 + 0,
       
       [a__first#](x0, x1) = x0 + x1,
       
       [from](x0) = 1x0 + 0,
       
       [a__from](x0) = 1x0 + 1,
       
       [first](x0, x1) = 6x0 + 3x1 + 4,
       
       [mark](x0) = 1x0,
       
       [cons](x0, x1) = x0 + x1 + 0,
       
       [s](x0) = x0 + 0,
       
       [nil] = 4,
       
       [a__first](x0, x1) = 6x0 + 3x1 + 5,
       
       [0] = 1
      orientation:
       a__first#(s(X),cons(Y,Z)) = X + Y + Z + 0 >= Y + 0 = mark#(Y)
       
       a__from#(X) = X + 0 >= X + 0 = mark#(X)
       
       mark#(first(X1,X2)) = 6X1 + 3X2 + 4 >= X2 + 0 = mark#(X2)
       
       mark#(first(X1,X2)) = 6X1 + 3X2 + 4 >= 1X1 + 1X2 = a__first#(mark(X1),mark(X2))
       
       mark#(from(X)) = 1X + 0 >= X + 0 = mark#(X)
       
       mark#(from(X)) = 1X + 0 >= 1X + 0 = a__from#(mark(X))
       
       mark#(s(X)) = X + 0 >= X + 0 = mark#(X)
       
       mark#(cons(X1,X2)) = X1 + X2 + 0 >= X1 + 0 = mark#(X1)
       
       a__first(0(),X) = 3X + 7 >= 4 = nil()
       
       a__first(s(X),cons(Y,Z)) = 6X + 3Y + 3Z + 6 >= 6X + 1Y + 3Z + 4 = cons(mark(Y),first(X,Z))
       
       a__from(X) = 1X + 1 >= 1X + 1 = cons(mark(X),from(s(X)))
       
       mark(first(X1,X2)) = 7X1 + 4X2 + 5 >= 7X1 + 4X2 + 5 = a__first(mark(X1),mark(X2))
       
       mark(from(X)) = 2X + 1 >= 2X + 1 = a__from(mark(X))
       
       mark(0()) = 2 >= 1 = 0()
       
       mark(nil()) = 5 >= 4 = nil()
       
       mark(s(X)) = 1X + 1 >= 1X + 0 = s(mark(X))
       
       mark(cons(X1,X2)) = 1X1 + 1X2 + 1 >= 1X1 + X2 + 0 = cons(mark(X1),X2)
       
       a__first(X1,X2) = 6X1 + 3X2 + 5 >= 6X1 + 3X2 + 4 = first(X1,X2)
       
       a__from(X) = 1X + 1 >= 1X + 0 = from(X)
      problem:
       DPs:
        a__first#(s(X),cons(Y,Z)) -> mark#(Y)
        a__from#(X) -> mark#(X)
        mark#(from(X)) -> mark#(X)
        mark#(from(X)) -> a__from#(mark(X))
        mark#(s(X)) -> mark#(X)
        mark#(cons(X1,X2)) -> mark#(X1)
       TRS:
        a__first(0(),X) -> nil()
        a__first(s(X),cons(Y,Z)) -> cons(mark(Y),first(X,Z))
        a__from(X) -> cons(mark(X),from(s(X)))
        mark(first(X1,X2)) -> a__first(mark(X1),mark(X2))
        mark(from(X)) -> a__from(mark(X))
        mark(0()) -> 0()
        mark(nil()) -> nil()
        mark(s(X)) -> s(mark(X))
        mark(cons(X1,X2)) -> cons(mark(X1),X2)
        a__first(X1,X2) -> first(X1,X2)
        a__from(X) -> from(X)
      Restore Modifier:
       DPs:
        a__first#(s(X),cons(Y,Z)) -> mark#(Y)
        a__from#(X) -> mark#(X)
        mark#(from(X)) -> mark#(X)
        mark#(from(X)) -> a__from#(mark(X))
        mark#(s(X)) -> mark#(X)
        mark#(cons(X1,X2)) -> mark#(X1)
       TRS:
        a__first(0(),X) -> nil()
        a__first(s(X),cons(Y,Z)) -> cons(mark(Y),first(X,Z))
        a__from(X) -> cons(mark(X),from(s(X)))
        mark(first(X1,X2)) -> a__first(mark(X1),mark(X2))
        mark(from(X)) -> a__from(mark(X))
        mark(0()) -> 0()
        mark(nil()) -> nil()
        mark(s(X)) -> s(mark(X))
        mark(cons(X1,X2)) -> cons(mark(X1),X2)
        a__first(X1,X2) -> first(X1,X2)
        a__from(X) -> from(X)
       SCC Processor:
        #sccs: 1
        #rules: 5
        #arcs: 51/36
        DPs:
         a__from#(X) -> mark#(X)
         mark#(from(X)) -> mark#(X)
         mark#(from(X)) -> a__from#(mark(X))
         mark#(s(X)) -> mark#(X)
         mark#(cons(X1,X2)) -> mark#(X1)
        TRS:
         a__first(0(),X) -> nil()
         a__first(s(X),cons(Y,Z)) -> cons(mark(Y),first(X,Z))
         a__from(X) -> cons(mark(X),from(s(X)))
         mark(first(X1,X2)) -> a__first(mark(X1),mark(X2))
         mark(from(X)) -> a__from(mark(X))
         mark(0()) -> 0()
         mark(nil()) -> nil()
         mark(s(X)) -> s(mark(X))
         mark(cons(X1,X2)) -> cons(mark(X1),X2)
         a__first(X1,X2) -> first(X1,X2)
         a__from(X) -> from(X)
        Arctic Interpretation Processor:
         dimension: 1
         usable rules:
          a__first(0(),X) -> nil()
          a__first(s(X),cons(Y,Z)) -> cons(mark(Y),first(X,Z))
          a__from(X) -> cons(mark(X),from(s(X)))
          mark(first(X1,X2)) -> a__first(mark(X1),mark(X2))
          mark(from(X)) -> a__from(mark(X))
          mark(0()) -> 0()
          mark(nil()) -> nil()
          mark(s(X)) -> s(mark(X))
          mark(cons(X1,X2)) -> cons(mark(X1),X2)
          a__first(X1,X2) -> first(X1,X2)
          a__from(X) -> from(X)
         interpretation:
          [a__from#](x0) = x0 + 0,
          
          [mark#](x0) = x0 + 0,
          
          [from](x0) = 1x0 + 1,
          
          [a__from](x0) = 1x0 + 1,
          
          [first](x0, x1) = x0 + 1x1 + 2,
          
          [mark](x0) = 1x0 + 0,
          
          [cons](x0, x1) = x0 + 0,
          
          [s](x0) = 1x0 + 0,
          
          [nil] = 4,
          
          [a__first](x0, x1) = x0 + 1x1 + 2,
          
          [0] = 5
         orientation:
          a__from#(X) = X + 0 >= X + 0 = mark#(X)
          
          mark#(from(X)) = 1X + 1 >= X + 0 = mark#(X)
          
          mark#(from(X)) = 1X + 1 >= 1X + 0 = a__from#(mark(X))
          
          mark#(s(X)) = 1X + 0 >= X + 0 = mark#(X)
          
          mark#(cons(X1,X2)) = X1 + 0 >= X1 + 0 = mark#(X1)
          
          a__first(0(),X) = 1X + 5 >= 4 = nil()
          
          a__first(s(X),cons(Y,Z)) = 1X + 1Y + 2 >= 1Y + 0 = cons(mark(Y),first(X,Z))
          
          a__from(X) = 1X + 1 >= 1X + 0 = cons(mark(X),from(s(X)))
          
          mark(first(X1,X2)) = 1X1 + 2X2 + 3 >= 1X1 + 2X2 + 2 = a__first(mark(X1),mark(X2))
          
          mark(from(X)) = 2X + 2 >= 2X + 1 = a__from(mark(X))
          
          mark(0()) = 6 >= 5 = 0()
          
          mark(nil()) = 5 >= 4 = nil()
          
          mark(s(X)) = 2X + 1 >= 2X + 1 = s(mark(X))
          
          mark(cons(X1,X2)) = 1X1 + 1 >= 1X1 + 0 = cons(mark(X1),X2)
          
          a__first(X1,X2) = X1 + 1X2 + 2 >= X1 + 1X2 + 2 = first(X1,X2)
          
          a__from(X) = 1X + 1 >= 1X + 1 = from(X)
         problem:
          DPs:
           a__from#(X) -> mark#(X)
           mark#(from(X)) -> a__from#(mark(X))
           mark#(s(X)) -> mark#(X)
           mark#(cons(X1,X2)) -> mark#(X1)
          TRS:
           a__first(0(),X) -> nil()
           a__first(s(X),cons(Y,Z)) -> cons(mark(Y),first(X,Z))
           a__from(X) -> cons(mark(X),from(s(X)))
           mark(first(X1,X2)) -> a__first(mark(X1),mark(X2))
           mark(from(X)) -> a__from(mark(X))
           mark(0()) -> 0()
           mark(nil()) -> nil()
           mark(s(X)) -> s(mark(X))
           mark(cons(X1,X2)) -> cons(mark(X1),X2)
           a__first(X1,X2) -> first(X1,X2)
           a__from(X) -> from(X)
         Restore Modifier:
          DPs:
           a__from#(X) -> mark#(X)
           mark#(from(X)) -> a__from#(mark(X))
           mark#(s(X)) -> mark#(X)
           mark#(cons(X1,X2)) -> mark#(X1)
          TRS:
           a__first(0(),X) -> nil()
           a__first(s(X),cons(Y,Z)) -> cons(mark(Y),first(X,Z))
           a__from(X) -> cons(mark(X),from(s(X)))
           mark(first(X1,X2)) -> a__first(mark(X1),mark(X2))
           mark(from(X)) -> a__from(mark(X))
           mark(0()) -> 0()
           mark(nil()) -> nil()
           mark(s(X)) -> s(mark(X))
           mark(cons(X1,X2)) -> cons(mark(X1),X2)
           a__first(X1,X2) -> first(X1,X2)
           a__from(X) -> from(X)
          Arctic Interpretation Processor:
           dimension: 1
           usable rules:
            a__first(0(),X) -> nil()
            a__first(s(X),cons(Y,Z)) -> cons(mark(Y),first(X,Z))
            a__from(X) -> cons(mark(X),from(s(X)))
            mark(first(X1,X2)) -> a__first(mark(X1),mark(X2))
            mark(from(X)) -> a__from(mark(X))
            mark(0()) -> 0()
            mark(nil()) -> nil()
            mark(s(X)) -> s(mark(X))
            mark(cons(X1,X2)) -> cons(mark(X1),X2)
            a__first(X1,X2) -> first(X1,X2)
            a__from(X) -> from(X)
           interpretation:
            [a__from#](x0) = x0 + 0,
            
            [mark#](x0) = x0,
            
            [from](x0) = x0 + 0,
            
            [a__from](x0) = x0 + 0,
            
            [first](x0, x1) = 5x0 + 5x1 + 5,
            
            [mark](x0) = x0 + 0,
            
            [cons](x0, x1) = x0,
            
            [s](x0) = 1x0 + 1,
            
            [nil] = 4,
            
            [a__first](x0, x1) = 5x0 + 5x1 + 5,
            
            [0] = 0
           orientation:
            a__from#(X) = X + 0 >= X = mark#(X)
            
            mark#(from(X)) = X + 0 >= X + 0 = a__from#(mark(X))
            
            mark#(s(X)) = 1X + 1 >= X = mark#(X)
            
            mark#(cons(X1,X2)) = X1 >= X1 = mark#(X1)
            
            a__first(0(),X) = 5X + 5 >= 4 = nil()
            
            a__first(s(X),cons(Y,Z)) = 6X + 5Y + 6 >= Y + 0 = cons(mark(Y),first(X,Z))
            
            a__from(X) = X + 0 >= X + 0 = cons(mark(X),from(s(X)))
            
            mark(first(X1,X2)) = 5X1 + 5X2 + 5 >= 5X1 + 5X2 + 5 = a__first(mark(X1),mark(X2))
            
            mark(from(X)) = X + 0 >= X + 0 = a__from(mark(X))
            
            mark(0()) = 0 >= 0 = 0()
            
            mark(nil()) = 4 >= 4 = nil()
            
            mark(s(X)) = 1X + 1 >= 1X + 1 = s(mark(X))
            
            mark(cons(X1,X2)) = X1 + 0 >= X1 + 0 = cons(mark(X1),X2)
            
            a__first(X1,X2) = 5X1 + 5X2 + 5 >= 5X1 + 5X2 + 5 = first(X1,X2)
            
            a__from(X) = X + 0 >= X + 0 = from(X)
           problem:
            DPs:
             a__from#(X) -> mark#(X)
             mark#(from(X)) -> a__from#(mark(X))
             mark#(cons(X1,X2)) -> mark#(X1)
            TRS:
             a__first(0(),X) -> nil()
             a__first(s(X),cons(Y,Z)) -> cons(mark(Y),first(X,Z))
             a__from(X) -> cons(mark(X),from(s(X)))
             mark(first(X1,X2)) -> a__first(mark(X1),mark(X2))
             mark(from(X)) -> a__from(mark(X))
             mark(0()) -> 0()
             mark(nil()) -> nil()
             mark(s(X)) -> s(mark(X))
             mark(cons(X1,X2)) -> cons(mark(X1),X2)
             a__first(X1,X2) -> first(X1,X2)
             a__from(X) -> from(X)
           Restore Modifier:
            DPs:
             a__from#(X) -> mark#(X)
             mark#(from(X)) -> a__from#(mark(X))
             mark#(cons(X1,X2)) -> mark#(X1)
            TRS:
             a__first(0(),X) -> nil()
             a__first(s(X),cons(Y,Z)) -> cons(mark(Y),first(X,Z))
             a__from(X) -> cons(mark(X),from(s(X)))
             mark(first(X1,X2)) -> a__first(mark(X1),mark(X2))
             mark(from(X)) -> a__from(mark(X))
             mark(0()) -> 0()
             mark(nil()) -> nil()
             mark(s(X)) -> s(mark(X))
             mark(cons(X1,X2)) -> cons(mark(X1),X2)
             a__first(X1,X2) -> first(X1,X2)
             a__from(X) -> from(X)
            Arctic Interpretation Processor:
             dimension: 1
             usable rules:
              a__first(0(),X) -> nil()
              a__first(s(X),cons(Y,Z)) -> cons(mark(Y),first(X,Z))
              a__from(X) -> cons(mark(X),from(s(X)))
              mark(first(X1,X2)) -> a__first(mark(X1),mark(X2))
              mark(from(X)) -> a__from(mark(X))
              mark(0()) -> 0()
              mark(nil()) -> nil()
              mark(s(X)) -> s(mark(X))
              mark(cons(X1,X2)) -> cons(mark(X1),X2)
              a__first(X1,X2) -> first(X1,X2)
              a__from(X) -> from(X)
             interpretation:
              [a__from#](x0) = x0,
              
              [mark#](x0) = x0,
              
              [from](x0) = 1x0,
              
              [a__from](x0) = 1x0,
              
              [first](x0, x1) = x0 + x1 + 0,
              
              [mark](x0) = x0,
              
              [cons](x0, x1) = x0 + x1,
              
              [s](x0) = x0,
              
              [nil] = 1,
              
              [a__first](x0, x1) = x0 + x1 + 0,
              
              [0] = 1
             orientation:
              a__from#(X) = X >= X = mark#(X)
              
              mark#(from(X)) = 1X >= X = a__from#(mark(X))
              
              mark#(cons(X1,X2)) = X1 + X2 >= X1 = mark#(X1)
              
              a__first(0(),X) = X + 1 >= 1 = nil()
              
              a__first(s(X),cons(Y,Z)) = X + Y + Z + 0 >= X + Y + Z + 0 = cons(mark(Y),first(X,Z))
              
              a__from(X) = 1X >= 1X = cons(mark(X),from(s(X)))
              
              mark(first(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = a__first(mark(X1),mark(X2))
              
              mark(from(X)) = 1X >= 1X = a__from(mark(X))
              
              mark(0()) = 1 >= 1 = 0()
              
              mark(nil()) = 1 >= 1 = nil()
              
              mark(s(X)) = X >= X = s(mark(X))
              
              mark(cons(X1,X2)) = X1 + X2 >= X1 + X2 = cons(mark(X1),X2)
              
              a__first(X1,X2) = X1 + X2 + 0 >= X1 + X2 + 0 = first(X1,X2)
              
              a__from(X) = 1X >= 1X = from(X)
             problem:
              DPs:
               a__from#(X) -> mark#(X)
               mark#(cons(X1,X2)) -> mark#(X1)
              TRS:
               a__first(0(),X) -> nil()
               a__first(s(X),cons(Y,Z)) -> cons(mark(Y),first(X,Z))
               a__from(X) -> cons(mark(X),from(s(X)))
               mark(first(X1,X2)) -> a__first(mark(X1),mark(X2))
               mark(from(X)) -> a__from(mark(X))
               mark(0()) -> 0()
               mark(nil()) -> nil()
               mark(s(X)) -> s(mark(X))
               mark(cons(X1,X2)) -> cons(mark(X1),X2)
               a__first(X1,X2) -> first(X1,X2)
               a__from(X) -> from(X)
             Restore Modifier:
              DPs:
               a__from#(X) -> mark#(X)
               mark#(cons(X1,X2)) -> mark#(X1)
              TRS:
               a__first(0(),X) -> nil()
               a__first(s(X),cons(Y,Z)) -> cons(mark(Y),first(X,Z))
               a__from(X) -> cons(mark(X),from(s(X)))
               mark(first(X1,X2)) -> a__first(mark(X1),mark(X2))
               mark(from(X)) -> a__from(mark(X))
               mark(0()) -> 0()
               mark(nil()) -> nil()
               mark(s(X)) -> s(mark(X))
               mark(cons(X1,X2)) -> cons(mark(X1),X2)
               a__first(X1,X2) -> first(X1,X2)
               a__from(X) -> from(X)
              SCC Processor:
               #sccs: 1
               #rules: 1
               #arcs: 17/4
               DPs:
                mark#(cons(X1,X2)) -> mark#(X1)
               TRS:
                a__first(0(),X) -> nil()
                a__first(s(X),cons(Y,Z)) -> cons(mark(Y),first(X,Z))
                a__from(X) -> cons(mark(X),from(s(X)))
                mark(first(X1,X2)) -> a__first(mark(X1),mark(X2))
                mark(from(X)) -> a__from(mark(X))
                mark(0()) -> 0()
                mark(nil()) -> nil()
                mark(s(X)) -> s(mark(X))
                mark(cons(X1,X2)) -> cons(mark(X1),X2)
                a__first(X1,X2) -> first(X1,X2)
                a__from(X) -> from(X)
               Subterm Criterion Processor:
                simple projection:
                 pi(mark#) = 0
                problem:
                 DPs:
                  
                 TRS:
                  a__first(0(),X) -> nil()
                  a__first(s(X),cons(Y,Z)) -> cons(mark(Y),first(X,Z))
                  a__from(X) -> cons(mark(X),from(s(X)))
                  mark(first(X1,X2)) -> a__first(mark(X1),mark(X2))
                  mark(from(X)) -> a__from(mark(X))
                  mark(0()) -> 0()
                  mark(nil()) -> nil()
                  mark(s(X)) -> s(mark(X))
                  mark(cons(X1,X2)) -> cons(mark(X1),X2)
                  a__first(X1,X2) -> first(X1,X2)
                  a__from(X) -> from(X)
                Qed