YES
Time: 0.022019
TRS:
 {   r1(empty(), a) -> a,
  r1(cons(x, k), a) -> r1(k, cons(x, a)),
             rev ls -> r1(ls, empty())}
 DP:
  DP:
   {r1#(cons(x, k), a) -> r1#(k, cons(x, a)),
               rev# ls -> r1#(ls, empty())}
  TRS:
  {   r1(empty(), a) -> a,
   r1(cons(x, k), a) -> r1(k, cons(x, a)),
              rev ls -> r1(ls, empty())}
  UR:
   {}
   EDG:
    {(rev# ls -> r1#(ls, empty()), r1#(cons(x, k), a) -> r1#(k, cons(x, a)))
     (r1#(cons(x, k), a) -> r1#(k, cons(x, a)), r1#(cons(x, k), a) -> r1#(k, cons(x, a)))}
    STATUS:
     arrows: 0.500000
     SCCS (1):
      Scc:
       {r1#(cons(x, k), a) -> r1#(k, cons(x, a))}
      
      
      SCC (1):
       Strict:
        {r1#(cons(x, k), a) -> r1#(k, cons(x, a))}
       Weak:
       {   r1(empty(), a) -> a,
        r1(cons(x, k), a) -> r1(k, cons(x, a)),
                   rev ls -> r1(ls, empty())}
       POLY:
        Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true
        Interpretation:
         [r1](x0, x1) = 0,
         
         [cons](x0, x1) = x0 + 1,
         
         [rev](x0) = 0,
         
         [empty] = 0,
         
         [r1#](x0, x1) = x0
        Strict:
         r1#(cons(x, k), a) -> r1#(k, cons(x, a))
         1 + 0a + 1k + 0x >= 0 + 0a + 1k + 0x
        Weak:
         rev ls -> r1(ls, empty())
         0 + 0ls >= 0 + 0ls
         r1(cons(x, k), a) -> r1(k, cons(x, a))
         0 + 0a + 0k + 0x >= 0 + 0a + 0k + 0x
         r1(empty(), a) -> a
         0 + 0a >= 1a
       Qed