MAYBE We are left with following problem, upon which TcT provides the certificate MAYBE. Strict Trs: { and(tt(), tt()) -> tt() , is_nat(0()) -> tt() , is_nat(s(x)) -> is_nat(x) , is_natlist(nil()) -> tt() , is_natlist(cons(x, xs)) -> and(is_nat(x), is_natlist(xs)) , from(x) -> fromCond(is_natlist(x), x) , fromCond(tt(), cons(x, xs)) -> from(cons(s(x), cons(x, xs))) } Obligation: innermost runtime complexity Answer: MAYBE We add following dependency tuples: Strict DPs: { and^#(tt(), tt()) -> c_1() , is_nat^#(0()) -> c_2() , is_nat^#(s(x)) -> c_3(is_nat^#(x)) , is_natlist^#(nil()) -> c_4() , is_natlist^#(cons(x, xs)) -> c_5(and^#(is_nat(x), is_natlist(xs)), is_nat^#(x), is_natlist^#(xs)) , from^#(x) -> c_6(fromCond^#(is_natlist(x), x), is_natlist^#(x)) , fromCond^#(tt(), cons(x, xs)) -> c_7(from^#(cons(s(x), cons(x, xs)))) } and mark the set of starting terms. We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { and^#(tt(), tt()) -> c_1() , is_nat^#(0()) -> c_2() , is_nat^#(s(x)) -> c_3(is_nat^#(x)) , is_natlist^#(nil()) -> c_4() , is_natlist^#(cons(x, xs)) -> c_5(and^#(is_nat(x), is_natlist(xs)), is_nat^#(x), is_natlist^#(xs)) , from^#(x) -> c_6(fromCond^#(is_natlist(x), x), is_natlist^#(x)) , fromCond^#(tt(), cons(x, xs)) -> c_7(from^#(cons(s(x), cons(x, xs)))) } Weak Trs: { and(tt(), tt()) -> tt() , is_nat(0()) -> tt() , is_nat(s(x)) -> is_nat(x) , is_natlist(nil()) -> tt() , is_natlist(cons(x, xs)) -> and(is_nat(x), is_natlist(xs)) , from(x) -> fromCond(is_natlist(x), x) , fromCond(tt(), cons(x, xs)) -> from(cons(s(x), cons(x, xs))) } Obligation: innermost runtime complexity Answer: MAYBE We estimate the number of application of {1,2,4} by applications of Pre({1,2,4}) = {3,5,6}. Here rules are labeled as follows: DPs: { 1: and^#(tt(), tt()) -> c_1() , 2: is_nat^#(0()) -> c_2() , 3: is_nat^#(s(x)) -> c_3(is_nat^#(x)) , 4: is_natlist^#(nil()) -> c_4() , 5: is_natlist^#(cons(x, xs)) -> c_5(and^#(is_nat(x), is_natlist(xs)), is_nat^#(x), is_natlist^#(xs)) , 6: from^#(x) -> c_6(fromCond^#(is_natlist(x), x), is_natlist^#(x)) , 7: fromCond^#(tt(), cons(x, xs)) -> c_7(from^#(cons(s(x), cons(x, xs)))) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { is_nat^#(s(x)) -> c_3(is_nat^#(x)) , is_natlist^#(cons(x, xs)) -> c_5(and^#(is_nat(x), is_natlist(xs)), is_nat^#(x), is_natlist^#(xs)) , from^#(x) -> c_6(fromCond^#(is_natlist(x), x), is_natlist^#(x)) , fromCond^#(tt(), cons(x, xs)) -> c_7(from^#(cons(s(x), cons(x, xs)))) } Weak DPs: { and^#(tt(), tt()) -> c_1() , is_nat^#(0()) -> c_2() , is_natlist^#(nil()) -> c_4() } Weak Trs: { and(tt(), tt()) -> tt() , is_nat(0()) -> tt() , is_nat(s(x)) -> is_nat(x) , is_natlist(nil()) -> tt() , is_natlist(cons(x, xs)) -> and(is_nat(x), is_natlist(xs)) , from(x) -> fromCond(is_natlist(x), x) , fromCond(tt(), cons(x, xs)) -> from(cons(s(x), cons(x, xs))) } Obligation: innermost runtime complexity Answer: MAYBE The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. { and^#(tt(), tt()) -> c_1() , is_nat^#(0()) -> c_2() , is_natlist^#(nil()) -> c_4() } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { is_nat^#(s(x)) -> c_3(is_nat^#(x)) , is_natlist^#(cons(x, xs)) -> c_5(and^#(is_nat(x), is_natlist(xs)), is_nat^#(x), is_natlist^#(xs)) , from^#(x) -> c_6(fromCond^#(is_natlist(x), x), is_natlist^#(x)) , fromCond^#(tt(), cons(x, xs)) -> c_7(from^#(cons(s(x), cons(x, xs)))) } Weak Trs: { and(tt(), tt()) -> tt() , is_nat(0()) -> tt() , is_nat(s(x)) -> is_nat(x) , is_natlist(nil()) -> tt() , is_natlist(cons(x, xs)) -> and(is_nat(x), is_natlist(xs)) , from(x) -> fromCond(is_natlist(x), x) , fromCond(tt(), cons(x, xs)) -> from(cons(s(x), cons(x, xs))) } Obligation: innermost runtime complexity Answer: MAYBE Due to missing edges in the dependency-graph, the right-hand sides of following rules could be simplified: { is_natlist^#(cons(x, xs)) -> c_5(and^#(is_nat(x), is_natlist(xs)), is_nat^#(x), is_natlist^#(xs)) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { is_nat^#(s(x)) -> c_1(is_nat^#(x)) , is_natlist^#(cons(x, xs)) -> c_2(is_nat^#(x), is_natlist^#(xs)) , from^#(x) -> c_3(fromCond^#(is_natlist(x), x), is_natlist^#(x)) , fromCond^#(tt(), cons(x, xs)) -> c_4(from^#(cons(s(x), cons(x, xs)))) } Weak Trs: { and(tt(), tt()) -> tt() , is_nat(0()) -> tt() , is_nat(s(x)) -> is_nat(x) , is_natlist(nil()) -> tt() , is_natlist(cons(x, xs)) -> and(is_nat(x), is_natlist(xs)) , from(x) -> fromCond(is_natlist(x), x) , fromCond(tt(), cons(x, xs)) -> from(cons(s(x), cons(x, xs))) } Obligation: innermost runtime complexity Answer: MAYBE We replace rewrite rules by usable rules: Weak Usable Rules: { and(tt(), tt()) -> tt() , is_nat(0()) -> tt() , is_nat(s(x)) -> is_nat(x) , is_natlist(nil()) -> tt() , is_natlist(cons(x, xs)) -> and(is_nat(x), is_natlist(xs)) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { is_nat^#(s(x)) -> c_1(is_nat^#(x)) , is_natlist^#(cons(x, xs)) -> c_2(is_nat^#(x), is_natlist^#(xs)) , from^#(x) -> c_3(fromCond^#(is_natlist(x), x), is_natlist^#(x)) , fromCond^#(tt(), cons(x, xs)) -> c_4(from^#(cons(s(x), cons(x, xs)))) } Weak Trs: { and(tt(), tt()) -> tt() , is_nat(0()) -> tt() , is_nat(s(x)) -> is_nat(x) , is_natlist(nil()) -> tt() , is_natlist(cons(x, xs)) -> and(is_nat(x), is_natlist(xs)) } Obligation: innermost runtime complexity Answer: MAYBE The input cannot be shown compatible Arrrr..