YES

We show the termination of the TRS R:

  rev(ls) -> r1(ls,empty())
  r1(empty(),a) -> a
  r1(cons(x,k),a) -> r1(k,cons(x,a))

-- SCC decomposition.

Consider the dependency pair problem (P, R), where P consists of

p1: rev#(ls) -> r1#(ls,empty())
p2: r1#(cons(x,k),a) -> r1#(k,cons(x,a))

and R consists of:

r1: rev(ls) -> r1(ls,empty())
r2: r1(empty(),a) -> a
r3: r1(cons(x,k),a) -> r1(k,cons(x,a))

The estimated dependency graph contains the following SCCs:

  {p2}


-- Reduction pair.

Consider the dependency pair problem (P, R), where P consists of

p1: r1#(cons(x,k),a) -> r1#(k,cons(x,a))

and R consists of:

r1: rev(ls) -> r1(ls,empty())
r2: r1(empty(),a) -> a
r3: r1(cons(x,k),a) -> r1(k,cons(x,a))

The set of usable rules consists of

  (no rules)

Take the reduction pair:

  lexicographic path order with precedence:
  
    precedence:
    
      cons > r1#
    
    argument filter:
  
      pi(r1#) = 1
      pi(cons) = [1, 2]

The next rules are strictly ordered:

  p1

We remove them from the problem.  Then no dependency pair remains.