YES TRS: sort(nil()) -> nil() sort(cons(x,y)) -> insert(x,sort(y)) insert(x,nil()) -> cons(x,nil()) insert(x,cons(v,w)) -> choose(x,cons(v,w),x,v) choose(x,cons(v,w),y,0()) -> cons(x,cons(v,w)) choose(x,cons(v,w),0(),s(z)) -> cons(v,insert(x,w)) choose(x,cons(v,w),s(y),s(z)) -> choose(x,cons(v,w),y,z) max/plus interpretations on N: sort_A(x1) = max{8, 1 + x1} sort#_A(x1) = max{0, 22 + x1} nil_A = 17 nil#_A = 40 cons_A(x1,x2) = max{22, 7, 10 + x2} cons#_A(x1,x2) = max{1, 2, 21} insert_A(x1,x2) = max{12, 9, 10 + x2} insert#_A(x1,x2) = max{7, 10, 5 + x2} choose_A(x1,x2,x3,x4) = max{21, 16, 10 + x2, 19, 18} choose#_A(x1,x2,x3,x4) = max{4, 11, -1 + x2, 21, 3} 0_A = 1 0#_A = 0 s_A(x1) = max{1, 1 + x1} s#_A(x1) = max{0, 0} precedence: sort > insert = 0 = s > nil = choose > cons