YES

We show the termination of the TRS R:

  rev(a()) -> a()
  rev(b()) -> b()
  rev(++(x,y)) -> ++(rev(y),rev(x))
  rev(++(x,x)) -> rev(x)

-- SCC decomposition.

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

p1: rev#(++(x,y)) -> rev#(y)
p2: rev#(++(x,y)) -> rev#(x)
p3: rev#(++(x,x)) -> rev#(x)

and R consists of:

r1: rev(a()) -> a()
r2: rev(b()) -> b()
r3: rev(++(x,y)) -> ++(rev(y),rev(x))
r4: rev(++(x,x)) -> rev(x)

The estimated dependency graph contains the following SCCs:

  {p1, p2, p3}


-- Reduction pair.

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

p1: rev#(++(x,y)) -> rev#(y)
p2: rev#(++(x,x)) -> rev#(x)
p3: rev#(++(x,y)) -> rev#(x)

and R consists of:

r1: rev(a()) -> a()
r2: rev(b()) -> b()
r3: rev(++(x,y)) -> ++(rev(y),rev(x))
r4: rev(++(x,x)) -> rev(x)

The set of usable rules consists of

  (no rules)

Take the reduction pair:

  matrix interpretations:
  
    carrier: N^4
    order: lexicographic order
    interpretations:
      rev#_A(x1) = ((1,0,0,0),(0,1,0,0),(0,0,1,0),(1,0,0,1)) x1
      ++_A(x1,x2) = ((1,0,0,0),(1,1,0,0),(0,1,1,0),(0,0,0,1)) x1 + x2 + (1,1,1,1)

The next rules are strictly ordered:

  p1, p2, p3

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