YES(?,O(n^1)) We are left with following problem, upon which TcT provides the certificate YES(?,O(n^1)). Strict Trs: { addlist(Cons(x, xs'), Cons(S(0()), xs)) -> Cons(S(x), addlist(xs', xs)) , addlist(Cons(S(0()), xs'), Cons(x, xs)) -> Cons(S(x), addlist(xs', xs)) , addlist(Nil(), ys) -> Nil() , notEmpty(Cons(x, xs)) -> True() , notEmpty(Nil()) -> False() , goal(xs, ys) -> addlist(xs, ys) } Obligation: innermost runtime complexity Answer: YES(?,O(n^1)) The input was oriented with the instance of 'Small Polynomial Path Order (PS,1-bounded)' as induced by the safe mapping safe(addlist) = {1}, safe(Cons) = {1, 2}, safe(S) = {1}, safe(0) = {}, safe(Nil) = {}, safe(notEmpty) = {}, safe(True) = {}, safe(False) = {}, safe(goal) = {1} and precedence notEmpty > addlist, goal > addlist, notEmpty ~ goal . Following symbols are considered recursive: {addlist} The recursion depth is 1. For your convenience, here are the satisfied ordering constraints: addlist(Cons(; S(; 0()), xs); Cons(; x, xs')) > Cons(; S(; x), addlist(xs; xs')) addlist(Cons(; x, xs); Cons(; S(; 0()), xs')) > Cons(; S(; x), addlist(xs; xs')) addlist(ys; Nil()) > Nil() notEmpty(Cons(; x, xs);) > True() notEmpty(Nil();) > False() goal(ys; xs) > addlist(ys; xs) Hurray, we answered YES(?,O(n^1))