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) linear polynomial interpretations on N: sort_A(x1) = x1 + 1 sort#_A(x1) = x1 + 2 nil_A = 1 nil#_A = 0 cons_A(x1,x2) = x1 + x2 + 2 cons#_A(x1,x2) = 1 insert_A(x1,x2) = x1 + x2 + 2 insert#_A(x1,x2) = x1 + x2 + 1 choose_A(x1,x2,x3,x4) = x1 + x2 + 2 choose#_A(x1,x2,x3,x4) = x1 + x2 0_A = 1 0#_A = 0 s_A(x1) = x1 + 1 s#_A(x1) = 0 precedence: sort = choose = 0 = s > insert > nil = cons