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)))) max/plus interpretations on N: rev1_A(x1,x2) = max{3, 2, 1} rev1#_A(x1,x2) = max{11, -1, 11} 0_A = 3 0#_A = 10 nil_A = 1 nil#_A = 11 s_A(x1) = max{3, -1} s#_A(x1) = max{12, 11} cons_A(x1,x2) = max{1, -3, 15 + x2} cons#_A(x1,x2) = max{0, 8, 12 + x2} rev_A(x1) = max{0, x1} rev#_A(x1) = max{10, 4 + x1} rev2_A(x1,x2) = max{0, -13, x2} rev2#_A(x1,x2) = max{2, 9, 6 + x2} precedence: nil > rev > rev2 > cons > rev1 > 0 = s