YES TRS: rev1(0(),nil()) -> 0() rev1(s(X),nil()) -> s(X) rev1(X,cons(Y,L)) -> rev1(Y,L) rev(nil()) -> nil() rev(cons(X,L)) -> cons(rev1(X,L),rev2(X,L)) rev2(X,nil()) -> nil() rev2(X,cons(Y,L)) -> rev(cons(X,rev(rev2(Y,L)))) linear polynomial interpretations on N: rev1_A(x1,x2) = 1 rev1#_A(x1,x2) = x2 + 2 0_A = 1 0#_A = 0 nil_A = 1 nil#_A = 1 s_A(x1) = 1 s#_A(x1) = 4 cons_A(x1,x2) = x2 + 3 cons#_A(x1,x2) = x2 + 2 rev_A(x1) = x1 rev#_A(x1) = x1 + 1 rev2_A(x1,x2) = x2 rev2#_A(x1,x2) = x2 + 3 precedence: cons > rev2 > s = rev > rev1 = nil > 0