YES(?,POLY) We are left with following problem, upon which TcT provides the certificate YES(?,POLY). Strict Trs: { sqr(0()) -> 0() , sqr(s(x)) -> s(+(sqr(x), double(x))) , sqr(s(x)) -> +(sqr(x), s(double(x))) , +(x, 0()) -> x , +(x, s(y)) -> s(+(x, y)) , double(0()) -> 0() , double(s(x)) -> s(s(double(x))) } Obligation: innermost runtime complexity Answer: YES(?,POLY) The input was oriented with the instance of 'Polynomial Path Order' as induced by the safe mapping safe(sqr) = {}, safe(0) = {}, safe(s) = {1}, safe(+) = {1}, safe(double) = {} and precedence sqr > +, sqr > double, + ~ double . Following symbols are considered recursive: {sqr, +, double} The recursion depth is 2. For your convenience, here are the satisfied ordering constraints: sqr(0();) > 0() sqr(s(; x);) > s(; +(double(x;); sqr(x;))) sqr(s(; x);) > +(s(; double(x;)); sqr(x;)) +(0(); x) > x +(s(; y); x) > s(; +(y; x)) double(0();) > 0() double(s(; x);) > s(; s(; double(x;))) Hurray, we answered YES(?,POLY)