We are left with following problem, upon which TcT provides the
certificate YES(?,O(n^1)).

Strict Trs:
  { rev(a()) -> a()
  , rev(b()) -> b()
  , rev(++(x, x)) -> rev(x)
  , rev(++(x, y)) -> ++(rev(y), rev(x)) }
Obligation:
  runtime complexity
Answer:
  YES(?,O(n^1))

The input is overlay and right-linear. Switching to innermost
rewriting.

We are left with following problem, upon which TcT provides the
certificate YES(?,O(n^1)).

Strict Trs:
  { rev(a()) -> a()
  , rev(b()) -> b()
  , rev(++(x, x)) -> rev(x)
  , rev(++(x, y)) -> ++(rev(y), rev(x)) }
Obligation:
  innermost runtime complexity
Answer:
  YES(?,O(n^1))

The problem is match-bounded by 1. The enriched problem is
compatible with the following automaton.
{ rev_0(2) -> 1
, rev_0(3) -> 1
, rev_0(4) -> 1
, rev_1(2) -> 1
, rev_1(3) -> 1
, rev_1(4) -> 1
, a_0() -> 2
, a_1() -> 1
, b_0() -> 3
, b_1() -> 1
, ++_0(2, 2) -> 4
, ++_0(2, 3) -> 4
, ++_0(2, 4) -> 4
, ++_0(3, 2) -> 4
, ++_0(3, 3) -> 4
, ++_0(3, 4) -> 4
, ++_0(4, 2) -> 4
, ++_0(4, 3) -> 4
, ++_0(4, 4) -> 4
, ++_1(1, 1) -> 1 }

Hurray, we answered YES(?,O(n^1))