MAYBE We are left with following problem, upon which TcT provides the certificate MAYBE. Strict Trs: { a__fact(X) -> a__if(a__zero(mark(X)), s(0()), prod(X, fact(p(X)))) , a__fact(X) -> fact(X) , a__if(X1, X2, X3) -> if(X1, X2, X3) , a__if(true(), X, Y) -> mark(X) , a__if(false(), X, Y) -> mark(Y) , a__zero(X) -> zero(X) , a__zero(s(X)) -> false() , a__zero(0()) -> true() , mark(s(X)) -> s(mark(X)) , mark(0()) -> 0() , mark(prod(X1, X2)) -> a__prod(mark(X1), mark(X2)) , mark(fact(X)) -> a__fact(mark(X)) , mark(p(X)) -> a__p(mark(X)) , mark(true()) -> true() , mark(false()) -> false() , mark(if(X1, X2, X3)) -> a__if(mark(X1), X2, X3) , mark(zero(X)) -> a__zero(mark(X)) , mark(add(X1, X2)) -> a__add(mark(X1), mark(X2)) , a__add(X1, X2) -> add(X1, X2) , a__add(s(X), Y) -> s(a__add(mark(X), mark(Y))) , a__add(0(), X) -> mark(X) , a__prod(X1, X2) -> prod(X1, X2) , a__prod(s(X), Y) -> a__add(mark(Y), a__prod(mark(X), mark(Y))) , a__prod(0(), X) -> 0() , a__p(X) -> p(X) , a__p(s(X)) -> mark(X) } Obligation: innermost runtime complexity Answer: MAYBE The input cannot be shown compatible Arrrr..