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))) linear polynomial interpretations on N: rev_A(x1) = x1 rev#_A(x1) = x1 + 1 nil_A = 1 nil#_A = 1 cons_A(x1,x2) = x1 + x2 + 3 cons#_A(x1,x2) = 3 rev1_A(x1,x2) = 0 rev1#_A(x1,x2) = 2 rev2_A(x1,x2) = x1 + x2 rev2#_A(x1,x2) = x1 + x2 + 2 0_A = 0 0#_A = 0 s_A(x1) = 0 s#_A(x1) = 3 precedence: rev > rev2 > nil = cons = s > rev1 > 0