YES TRS: rev(nil()) -> nil() rev(cons(x,l)) -> cons(rev1(x,l),rev2(x,l)) rev1(0(),nil()) -> 0() rev1(s(x),nil()) -> s(x) rev1(x,cons(y,l)) -> rev1(y,l) rev2(x,nil()) -> nil() rev2(x,cons(y,l)) -> rev(cons(x,rev2(y,l))) max/plus interpretations on N: rev_A(x1) = max{2, x1} rev#_A(x1) = max{8, 3 + x1} nil_A = 3 nil#_A = 7 cons_A(x1,x2) = max{0, 15, 6 + x2} cons#_A(x1,x2) = max{16, 17, 15} rev1_A(x1,x2) = max{3, 2, 1} rev1#_A(x1,x2) = max{1, 2, 2} rev2_A(x1,x2) = max{0, 1, x2} rev2#_A(x1,x2) = max{2, 1, 8 + x2} 0_A = 3 0#_A = 0 s_A(x1) = max{3, 1} s#_A(x1) = max{2, 0} precedence: rev > rev2 > cons > nil = rev1 > 0 = s