YES(?,O(n^1)) We are left with following problem, upon which TcT provides the certificate YES(?,O(n^1)). Strict Trs: { first(X1, X2) -> n__first(X1, X2) , first(0(), X) -> nil() , first(s(X), cons(Y, Z)) -> cons(Y, n__first(X, activate(Z))) , activate(X) -> X , activate(n__first(X1, X2)) -> first(X1, X2) , activate(n__from(X)) -> from(X) , from(X) -> cons(X, n__from(s(X))) , from(X) -> n__from(X) } Obligation: innermost runtime complexity Answer: YES(?,O(n^1)) The input was oriented with the instance of 'Small Polynomial Path Order (PS)' as induced by the safe mapping safe(first) = {1}, safe(0) = {}, safe(nil) = {}, safe(s) = {1}, safe(cons) = {1, 2}, safe(n__first) = {1, 2}, safe(activate) = {}, safe(from) = {1}, safe(n__from) = {1} and precedence first ~ activate, first ~ from, activate ~ from . Following symbols are considered recursive: {first, activate, from} The recursion depth is 1. For your convenience, here are the satisfied ordering constraints: first(X2; X1) > n__first(; X1, X2) first(X; 0()) > nil() first(cons(; Y, Z); s(; X)) > cons(; Y, n__first(; X, activate(Z;))) activate(X;) > X activate(n__first(; X1, X2);) > first(X2; X1) activate(n__from(; X);) > from(; X) from(; X) > cons(; X, n__from(; s(; X))) from(; X) > n__from(; X) Hurray, we answered YES(?,O(n^1))