We are left with following problem, upon which TcT provides the certificate YES(?,O(n^1)). Strict Trs: { norm(nil()) -> 0() , norm(g(x, y)) -> s(norm(x)) , f(x, nil()) -> g(nil(), x) , f(x, g(y, z)) -> g(f(x, y), z) , rem(nil(), y) -> nil() , rem(g(x, y), 0()) -> g(x, y) , rem(g(x, y), s(z)) -> rem(x, z) } Obligation: runtime complexity Answer: YES(?,O(n^1)) The input is overlay and right-linear. Switching to innermost rewriting. We are left with following problem, upon which TcT provides the certificate YES(?,O(n^1)). Strict Trs: { norm(nil()) -> 0() , norm(g(x, y)) -> s(norm(x)) , f(x, nil()) -> g(nil(), x) , f(x, g(y, z)) -> g(f(x, y), z) , rem(nil(), y) -> nil() , rem(g(x, y), 0()) -> g(x, y) , rem(g(x, y), s(z)) -> rem(x, z) } 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(norm) = {}, safe(nil) = {}, safe(0) = {}, safe(g) = {1, 2}, safe(s) = {1}, safe(f) = {1}, safe(rem) = {} and precedence empty . Following symbols are considered recursive: {norm, f, rem} The recursion depth is 1. For your convenience, here are the satisfied ordering constraints: norm(nil();) > 0() norm(g(; x, y);) > s(; norm(x;)) f(nil(); x) > g(; nil(), x) f(g(; y, z); x) > g(; f(y; x), z) rem(nil(), y;) > nil() rem(g(; x, y), 0();) > g(; x, y) rem(g(; x, y), s(; z);) > rem(x, z;) Hurray, we answered YES(?,O(n^1))