MAYBE * Step 1: DependencyPairs MAYBE + Considered Problem: - Strict TRS: ack(0(),x) -> s(x) ack(s(x),0()) -> ack(x,s(0())) ack(s(x),s(y)) -> ack(x,ack(s(x),y)) d(x) -> if(le(x,nr()),x) if(false(),x) -> nil() if(true(),x) -> cons(x,d(s(x))) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) nr() -> ack(s(s(s(s(s(s(0())))))),0()) numbers() -> d(0()) - Signature: {ack/2,d/1,if/2,le/2,nr/0,numbers/0} / {0/0,cons/2,false/0,nil/0,s/1,true/0} - Obligation: innermost runtime complexity wrt. defined symbols {ack,d,if,le,nr,numbers} and constructors {0,cons,false ,nil,s,true} + Applied Processor: DependencyPairs {dpKind_ = DT} + Details: We add the following dependency tuples: Strict DPs ack#(0(),x) -> c_1() ack#(s(x),0()) -> c_2(ack#(x,s(0()))) ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)) d#(x) -> c_4(if#(le(x,nr()),x),le#(x,nr()),nr#()) if#(false(),x) -> c_5() if#(true(),x) -> c_6(d#(s(x))) le#(0(),y) -> c_7() le#(s(x),0()) -> c_8() le#(s(x),s(y)) -> c_9(le#(x,y)) nr#() -> c_10(ack#(s(s(s(s(s(s(0())))))),0())) numbers#() -> c_11(d#(0())) Weak DPs and mark the set of starting terms. * Step 2: UsableRules MAYBE + Considered Problem: - Strict DPs: ack#(0(),x) -> c_1() ack#(s(x),0()) -> c_2(ack#(x,s(0()))) ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)) d#(x) -> c_4(if#(le(x,nr()),x),le#(x,nr()),nr#()) if#(false(),x) -> c_5() if#(true(),x) -> c_6(d#(s(x))) le#(0(),y) -> c_7() le#(s(x),0()) -> c_8() le#(s(x),s(y)) -> c_9(le#(x,y)) nr#() -> c_10(ack#(s(s(s(s(s(s(0())))))),0())) numbers#() -> c_11(d#(0())) - Weak TRS: ack(0(),x) -> s(x) ack(s(x),0()) -> ack(x,s(0())) ack(s(x),s(y)) -> ack(x,ack(s(x),y)) d(x) -> if(le(x,nr()),x) if(false(),x) -> nil() if(true(),x) -> cons(x,d(s(x))) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) nr() -> ack(s(s(s(s(s(s(0())))))),0()) numbers() -> d(0()) - Signature: {ack/2,d/1,if/2,le/2,nr/0,numbers/0,ack#/2,d#/1,if#/2,le#/2,nr#/0,numbers#/0} / {0/0,cons/2,false/0,nil/0 ,s/1,true/0,c_1/0,c_2/1,c_3/2,c_4/3,c_5/0,c_6/1,c_7/0,c_8/0,c_9/1,c_10/1,c_11/1} - Obligation: innermost runtime complexity wrt. defined symbols {ack#,d#,if#,le#,nr#,numbers#} and constructors {0,cons ,false,nil,s,true} + Applied Processor: UsableRules + Details: We replace rewrite rules by usable rules: ack(0(),x) -> s(x) ack(s(x),0()) -> ack(x,s(0())) ack(s(x),s(y)) -> ack(x,ack(s(x),y)) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) nr() -> ack(s(s(s(s(s(s(0())))))),0()) ack#(0(),x) -> c_1() ack#(s(x),0()) -> c_2(ack#(x,s(0()))) ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)) d#(x) -> c_4(if#(le(x,nr()),x),le#(x,nr()),nr#()) if#(false(),x) -> c_5() if#(true(),x) -> c_6(d#(s(x))) le#(0(),y) -> c_7() le#(s(x),0()) -> c_8() le#(s(x),s(y)) -> c_9(le#(x,y)) nr#() -> c_10(ack#(s(s(s(s(s(s(0())))))),0())) numbers#() -> c_11(d#(0())) * Step 3: PredecessorEstimation MAYBE + Considered Problem: - Strict DPs: ack#(0(),x) -> c_1() ack#(s(x),0()) -> c_2(ack#(x,s(0()))) ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)) d#(x) -> c_4(if#(le(x,nr()),x),le#(x,nr()),nr#()) if#(false(),x) -> c_5() if#(true(),x) -> c_6(d#(s(x))) le#(0(),y) -> c_7() le#(s(x),0()) -> c_8() le#(s(x),s(y)) -> c_9(le#(x,y)) nr#() -> c_10(ack#(s(s(s(s(s(s(0())))))),0())) numbers#() -> c_11(d#(0())) - Weak TRS: ack(0(),x) -> s(x) ack(s(x),0()) -> ack(x,s(0())) ack(s(x),s(y)) -> ack(x,ack(s(x),y)) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) nr() -> ack(s(s(s(s(s(s(0())))))),0()) - Signature: {ack/2,d/1,if/2,le/2,nr/0,numbers/0,ack#/2,d#/1,if#/2,le#/2,nr#/0,numbers#/0} / {0/0,cons/2,false/0,nil/0 ,s/1,true/0,c_1/0,c_2/1,c_3/2,c_4/3,c_5/0,c_6/1,c_7/0,c_8/0,c_9/1,c_10/1,c_11/1} - Obligation: innermost runtime complexity wrt. defined symbols {ack#,d#,if#,le#,nr#,numbers#} and constructors {0,cons ,false,nil,s,true} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {1,5,7,8} by application of Pre({1,5,7,8}) = {2,3,4,9}. Here rules are labelled as follows: 1: ack#(0(),x) -> c_1() 2: ack#(s(x),0()) -> c_2(ack#(x,s(0()))) 3: ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)) 4: d#(x) -> c_4(if#(le(x,nr()),x),le#(x,nr()),nr#()) 5: if#(false(),x) -> c_5() 6: if#(true(),x) -> c_6(d#(s(x))) 7: le#(0(),y) -> c_7() 8: le#(s(x),0()) -> c_8() 9: le#(s(x),s(y)) -> c_9(le#(x,y)) 10: nr#() -> c_10(ack#(s(s(s(s(s(s(0())))))),0())) 11: numbers#() -> c_11(d#(0())) * Step 4: RemoveWeakSuffixes MAYBE + Considered Problem: - Strict DPs: ack#(s(x),0()) -> c_2(ack#(x,s(0()))) ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)) d#(x) -> c_4(if#(le(x,nr()),x),le#(x,nr()),nr#()) if#(true(),x) -> c_6(d#(s(x))) le#(s(x),s(y)) -> c_9(le#(x,y)) nr#() -> c_10(ack#(s(s(s(s(s(s(0())))))),0())) numbers#() -> c_11(d#(0())) - Weak DPs: ack#(0(),x) -> c_1() if#(false(),x) -> c_5() le#(0(),y) -> c_7() le#(s(x),0()) -> c_8() - Weak TRS: ack(0(),x) -> s(x) ack(s(x),0()) -> ack(x,s(0())) ack(s(x),s(y)) -> ack(x,ack(s(x),y)) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) nr() -> ack(s(s(s(s(s(s(0())))))),0()) - Signature: {ack/2,d/1,if/2,le/2,nr/0,numbers/0,ack#/2,d#/1,if#/2,le#/2,nr#/0,numbers#/0} / {0/0,cons/2,false/0,nil/0 ,s/1,true/0,c_1/0,c_2/1,c_3/2,c_4/3,c_5/0,c_6/1,c_7/0,c_8/0,c_9/1,c_10/1,c_11/1} - Obligation: innermost runtime complexity wrt. defined symbols {ack#,d#,if#,le#,nr#,numbers#} and constructors {0,cons ,false,nil,s,true} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:S:ack#(s(x),0()) -> c_2(ack#(x,s(0()))) -->_1 ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)):2 -->_1 ack#(0(),x) -> c_1():8 2:S:ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)) -->_1 ack#(0(),x) -> c_1():8 -->_2 ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)):2 -->_1 ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)):2 -->_2 ack#(s(x),0()) -> c_2(ack#(x,s(0()))):1 -->_1 ack#(s(x),0()) -> c_2(ack#(x,s(0()))):1 3:S:d#(x) -> c_4(if#(le(x,nr()),x),le#(x,nr()),nr#()) -->_3 nr#() -> c_10(ack#(s(s(s(s(s(s(0())))))),0())):6 -->_2 le#(s(x),s(y)) -> c_9(le#(x,y)):5 -->_1 if#(true(),x) -> c_6(d#(s(x))):4 -->_2 le#(s(x),0()) -> c_8():11 -->_2 le#(0(),y) -> c_7():10 -->_1 if#(false(),x) -> c_5():9 4:S:if#(true(),x) -> c_6(d#(s(x))) -->_1 d#(x) -> c_4(if#(le(x,nr()),x),le#(x,nr()),nr#()):3 5:S:le#(s(x),s(y)) -> c_9(le#(x,y)) -->_1 le#(s(x),0()) -> c_8():11 -->_1 le#(0(),y) -> c_7():10 -->_1 le#(s(x),s(y)) -> c_9(le#(x,y)):5 6:S:nr#() -> c_10(ack#(s(s(s(s(s(s(0())))))),0())) -->_1 ack#(s(x),0()) -> c_2(ack#(x,s(0()))):1 7:S:numbers#() -> c_11(d#(0())) -->_1 d#(x) -> c_4(if#(le(x,nr()),x),le#(x,nr()),nr#()):3 8:W:ack#(0(),x) -> c_1() 9:W:if#(false(),x) -> c_5() 10:W:le#(0(),y) -> c_7() 11:W:le#(s(x),0()) -> c_8() The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 9: if#(false(),x) -> c_5() 10: le#(0(),y) -> c_7() 11: le#(s(x),0()) -> c_8() 8: ack#(0(),x) -> c_1() * Step 5: RemoveHeads MAYBE + Considered Problem: - Strict DPs: ack#(s(x),0()) -> c_2(ack#(x,s(0()))) ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)) d#(x) -> c_4(if#(le(x,nr()),x),le#(x,nr()),nr#()) if#(true(),x) -> c_6(d#(s(x))) le#(s(x),s(y)) -> c_9(le#(x,y)) nr#() -> c_10(ack#(s(s(s(s(s(s(0())))))),0())) numbers#() -> c_11(d#(0())) - Weak TRS: ack(0(),x) -> s(x) ack(s(x),0()) -> ack(x,s(0())) ack(s(x),s(y)) -> ack(x,ack(s(x),y)) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) nr() -> ack(s(s(s(s(s(s(0())))))),0()) - Signature: {ack/2,d/1,if/2,le/2,nr/0,numbers/0,ack#/2,d#/1,if#/2,le#/2,nr#/0,numbers#/0} / {0/0,cons/2,false/0,nil/0 ,s/1,true/0,c_1/0,c_2/1,c_3/2,c_4/3,c_5/0,c_6/1,c_7/0,c_8/0,c_9/1,c_10/1,c_11/1} - Obligation: innermost runtime complexity wrt. defined symbols {ack#,d#,if#,le#,nr#,numbers#} and constructors {0,cons ,false,nil,s,true} + Applied Processor: RemoveHeads + Details: Consider the dependency graph 1:S:ack#(s(x),0()) -> c_2(ack#(x,s(0()))) -->_1 ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)):2 2:S:ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)) -->_2 ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)):2 -->_1 ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)):2 -->_2 ack#(s(x),0()) -> c_2(ack#(x,s(0()))):1 -->_1 ack#(s(x),0()) -> c_2(ack#(x,s(0()))):1 3:S:d#(x) -> c_4(if#(le(x,nr()),x),le#(x,nr()),nr#()) -->_3 nr#() -> c_10(ack#(s(s(s(s(s(s(0())))))),0())):6 -->_2 le#(s(x),s(y)) -> c_9(le#(x,y)):5 -->_1 if#(true(),x) -> c_6(d#(s(x))):4 4:S:if#(true(),x) -> c_6(d#(s(x))) -->_1 d#(x) -> c_4(if#(le(x,nr()),x),le#(x,nr()),nr#()):3 5:S:le#(s(x),s(y)) -> c_9(le#(x,y)) -->_1 le#(s(x),s(y)) -> c_9(le#(x,y)):5 6:S:nr#() -> c_10(ack#(s(s(s(s(s(s(0())))))),0())) -->_1 ack#(s(x),0()) -> c_2(ack#(x,s(0()))):1 7:S:numbers#() -> c_11(d#(0())) -->_1 d#(x) -> c_4(if#(le(x,nr()),x),le#(x,nr()),nr#()):3 Following roots of the dependency graph are removed, as the considered set of starting terms is closed under reduction with respect to these rules (modulo compound contexts). [(7,numbers#() -> c_11(d#(0())))] * Step 6: Decompose MAYBE + Considered Problem: - Strict DPs: ack#(s(x),0()) -> c_2(ack#(x,s(0()))) ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)) d#(x) -> c_4(if#(le(x,nr()),x),le#(x,nr()),nr#()) if#(true(),x) -> c_6(d#(s(x))) le#(s(x),s(y)) -> c_9(le#(x,y)) nr#() -> c_10(ack#(s(s(s(s(s(s(0())))))),0())) - Weak TRS: ack(0(),x) -> s(x) ack(s(x),0()) -> ack(x,s(0())) ack(s(x),s(y)) -> ack(x,ack(s(x),y)) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) nr() -> ack(s(s(s(s(s(s(0())))))),0()) - Signature: {ack/2,d/1,if/2,le/2,nr/0,numbers/0,ack#/2,d#/1,if#/2,le#/2,nr#/0,numbers#/0} / {0/0,cons/2,false/0,nil/0 ,s/1,true/0,c_1/0,c_2/1,c_3/2,c_4/3,c_5/0,c_6/1,c_7/0,c_8/0,c_9/1,c_10/1,c_11/1} - Obligation: innermost runtime complexity wrt. defined symbols {ack#,d#,if#,le#,nr#,numbers#} and constructors {0,cons ,false,nil,s,true} + Applied Processor: Decompose {onSelection = all cycle independent sub-graph, withBound = RelativeAdd} + Details: We analyse the complexity of following sub-problems (R) and (S). Problem (S) is obtained from the input problem by shifting strict rules from (R) into the weak component. Problem (R) - Strict DPs: ack#(s(x),0()) -> c_2(ack#(x,s(0()))) ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)) - Weak DPs: d#(x) -> c_4(if#(le(x,nr()),x),le#(x,nr()),nr#()) if#(true(),x) -> c_6(d#(s(x))) le#(s(x),s(y)) -> c_9(le#(x,y)) nr#() -> c_10(ack#(s(s(s(s(s(s(0())))))),0())) - Weak TRS: ack(0(),x) -> s(x) ack(s(x),0()) -> ack(x,s(0())) ack(s(x),s(y)) -> ack(x,ack(s(x),y)) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) nr() -> ack(s(s(s(s(s(s(0())))))),0()) - Signature: {ack/2,d/1,if/2,le/2,nr/0,numbers/0,ack#/2,d#/1,if#/2,le#/2,nr#/0,numbers#/0} / {0/0,cons/2,false/0,nil/0 ,s/1,true/0,c_1/0,c_2/1,c_3/2,c_4/3,c_5/0,c_6/1,c_7/0,c_8/0,c_9/1,c_10/1,c_11/1} - Obligation: innermost runtime complexity wrt. defined symbols {ack#,d#,if#,le#,nr#,numbers#} and constructors {0,cons ,false,nil,s,true} Problem (S) - Strict DPs: d#(x) -> c_4(if#(le(x,nr()),x),le#(x,nr()),nr#()) if#(true(),x) -> c_6(d#(s(x))) le#(s(x),s(y)) -> c_9(le#(x,y)) nr#() -> c_10(ack#(s(s(s(s(s(s(0())))))),0())) - Weak DPs: ack#(s(x),0()) -> c_2(ack#(x,s(0()))) ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)) - Weak TRS: ack(0(),x) -> s(x) ack(s(x),0()) -> ack(x,s(0())) ack(s(x),s(y)) -> ack(x,ack(s(x),y)) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) nr() -> ack(s(s(s(s(s(s(0())))))),0()) - Signature: {ack/2,d/1,if/2,le/2,nr/0,numbers/0,ack#/2,d#/1,if#/2,le#/2,nr#/0,numbers#/0} / {0/0,cons/2,false/0,nil/0 ,s/1,true/0,c_1/0,c_2/1,c_3/2,c_4/3,c_5/0,c_6/1,c_7/0,c_8/0,c_9/1,c_10/1,c_11/1} - Obligation: innermost runtime complexity wrt. defined symbols {ack#,d#,if#,le#,nr#,numbers#} and constructors {0,cons ,false,nil,s,true} ** Step 6.a:1: RemoveWeakSuffixes MAYBE + Considered Problem: - Strict DPs: ack#(s(x),0()) -> c_2(ack#(x,s(0()))) ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)) - Weak DPs: d#(x) -> c_4(if#(le(x,nr()),x),le#(x,nr()),nr#()) if#(true(),x) -> c_6(d#(s(x))) le#(s(x),s(y)) -> c_9(le#(x,y)) nr#() -> c_10(ack#(s(s(s(s(s(s(0())))))),0())) - Weak TRS: ack(0(),x) -> s(x) ack(s(x),0()) -> ack(x,s(0())) ack(s(x),s(y)) -> ack(x,ack(s(x),y)) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) nr() -> ack(s(s(s(s(s(s(0())))))),0()) - Signature: {ack/2,d/1,if/2,le/2,nr/0,numbers/0,ack#/2,d#/1,if#/2,le#/2,nr#/0,numbers#/0} / {0/0,cons/2,false/0,nil/0 ,s/1,true/0,c_1/0,c_2/1,c_3/2,c_4/3,c_5/0,c_6/1,c_7/0,c_8/0,c_9/1,c_10/1,c_11/1} - Obligation: innermost runtime complexity wrt. defined symbols {ack#,d#,if#,le#,nr#,numbers#} and constructors {0,cons ,false,nil,s,true} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:S:ack#(s(x),0()) -> c_2(ack#(x,s(0()))) -->_1 ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)):2 2:S:ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)) -->_2 ack#(s(x),0()) -> c_2(ack#(x,s(0()))):1 -->_1 ack#(s(x),0()) -> c_2(ack#(x,s(0()))):1 -->_2 ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)):2 -->_1 ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)):2 3:W:d#(x) -> c_4(if#(le(x,nr()),x),le#(x,nr()),nr#()) -->_3 nr#() -> c_10(ack#(s(s(s(s(s(s(0())))))),0())):6 -->_2 le#(s(x),s(y)) -> c_9(le#(x,y)):5 -->_1 if#(true(),x) -> c_6(d#(s(x))):4 4:W:if#(true(),x) -> c_6(d#(s(x))) -->_1 d#(x) -> c_4(if#(le(x,nr()),x),le#(x,nr()),nr#()):3 5:W:le#(s(x),s(y)) -> c_9(le#(x,y)) -->_1 le#(s(x),s(y)) -> c_9(le#(x,y)):5 6:W:nr#() -> c_10(ack#(s(s(s(s(s(s(0())))))),0())) -->_1 ack#(s(x),0()) -> c_2(ack#(x,s(0()))):1 The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 5: le#(s(x),s(y)) -> c_9(le#(x,y)) ** Step 6.a:2: SimplifyRHS MAYBE + Considered Problem: - Strict DPs: ack#(s(x),0()) -> c_2(ack#(x,s(0()))) ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)) - Weak DPs: d#(x) -> c_4(if#(le(x,nr()),x),le#(x,nr()),nr#()) if#(true(),x) -> c_6(d#(s(x))) nr#() -> c_10(ack#(s(s(s(s(s(s(0())))))),0())) - Weak TRS: ack(0(),x) -> s(x) ack(s(x),0()) -> ack(x,s(0())) ack(s(x),s(y)) -> ack(x,ack(s(x),y)) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) nr() -> ack(s(s(s(s(s(s(0())))))),0()) - Signature: {ack/2,d/1,if/2,le/2,nr/0,numbers/0,ack#/2,d#/1,if#/2,le#/2,nr#/0,numbers#/0} / {0/0,cons/2,false/0,nil/0 ,s/1,true/0,c_1/0,c_2/1,c_3/2,c_4/3,c_5/0,c_6/1,c_7/0,c_8/0,c_9/1,c_10/1,c_11/1} - Obligation: innermost runtime complexity wrt. defined symbols {ack#,d#,if#,le#,nr#,numbers#} and constructors {0,cons ,false,nil,s,true} + Applied Processor: SimplifyRHS + Details: Consider the dependency graph 1:S:ack#(s(x),0()) -> c_2(ack#(x,s(0()))) -->_1 ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)):2 2:S:ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)) -->_2 ack#(s(x),0()) -> c_2(ack#(x,s(0()))):1 -->_1 ack#(s(x),0()) -> c_2(ack#(x,s(0()))):1 -->_2 ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)):2 -->_1 ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)):2 3:W:d#(x) -> c_4(if#(le(x,nr()),x),le#(x,nr()),nr#()) -->_3 nr#() -> c_10(ack#(s(s(s(s(s(s(0())))))),0())):6 -->_1 if#(true(),x) -> c_6(d#(s(x))):4 4:W:if#(true(),x) -> c_6(d#(s(x))) -->_1 d#(x) -> c_4(if#(le(x,nr()),x),le#(x,nr()),nr#()):3 6:W:nr#() -> c_10(ack#(s(s(s(s(s(s(0())))))),0())) -->_1 ack#(s(x),0()) -> c_2(ack#(x,s(0()))):1 Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified: d#(x) -> c_4(if#(le(x,nr()),x),nr#()) ** Step 6.a:3: Failure MAYBE + Considered Problem: - Strict DPs: ack#(s(x),0()) -> c_2(ack#(x,s(0()))) ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)) - Weak DPs: d#(x) -> c_4(if#(le(x,nr()),x),nr#()) if#(true(),x) -> c_6(d#(s(x))) nr#() -> c_10(ack#(s(s(s(s(s(s(0())))))),0())) - Weak TRS: ack(0(),x) -> s(x) ack(s(x),0()) -> ack(x,s(0())) ack(s(x),s(y)) -> ack(x,ack(s(x),y)) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) nr() -> ack(s(s(s(s(s(s(0())))))),0()) - Signature: {ack/2,d/1,if/2,le/2,nr/0,numbers/0,ack#/2,d#/1,if#/2,le#/2,nr#/0,numbers#/0} / {0/0,cons/2,false/0,nil/0 ,s/1,true/0,c_1/0,c_2/1,c_3/2,c_4/2,c_5/0,c_6/1,c_7/0,c_8/0,c_9/1,c_10/1,c_11/1} - Obligation: innermost runtime complexity wrt. defined symbols {ack#,d#,if#,le#,nr#,numbers#} and constructors {0,cons ,false,nil,s,true} + Applied Processor: EmptyProcessor + Details: The problem is still open. ** Step 6.b:1: PredecessorEstimation MAYBE + Considered Problem: - Strict DPs: d#(x) -> c_4(if#(le(x,nr()),x),le#(x,nr()),nr#()) if#(true(),x) -> c_6(d#(s(x))) le#(s(x),s(y)) -> c_9(le#(x,y)) nr#() -> c_10(ack#(s(s(s(s(s(s(0())))))),0())) - Weak DPs: ack#(s(x),0()) -> c_2(ack#(x,s(0()))) ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)) - Weak TRS: ack(0(),x) -> s(x) ack(s(x),0()) -> ack(x,s(0())) ack(s(x),s(y)) -> ack(x,ack(s(x),y)) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) nr() -> ack(s(s(s(s(s(s(0())))))),0()) - Signature: {ack/2,d/1,if/2,le/2,nr/0,numbers/0,ack#/2,d#/1,if#/2,le#/2,nr#/0,numbers#/0} / {0/0,cons/2,false/0,nil/0 ,s/1,true/0,c_1/0,c_2/1,c_3/2,c_4/3,c_5/0,c_6/1,c_7/0,c_8/0,c_9/1,c_10/1,c_11/1} - Obligation: innermost runtime complexity wrt. defined symbols {ack#,d#,if#,le#,nr#,numbers#} and constructors {0,cons ,false,nil,s,true} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {4} by application of Pre({4}) = {1}. Here rules are labelled as follows: 1: d#(x) -> c_4(if#(le(x,nr()),x),le#(x,nr()),nr#()) 2: if#(true(),x) -> c_6(d#(s(x))) 3: le#(s(x),s(y)) -> c_9(le#(x,y)) 4: nr#() -> c_10(ack#(s(s(s(s(s(s(0())))))),0())) 5: ack#(s(x),0()) -> c_2(ack#(x,s(0()))) 6: ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)) ** Step 6.b:2: RemoveWeakSuffixes MAYBE + Considered Problem: - Strict DPs: d#(x) -> c_4(if#(le(x,nr()),x),le#(x,nr()),nr#()) if#(true(),x) -> c_6(d#(s(x))) le#(s(x),s(y)) -> c_9(le#(x,y)) - Weak DPs: ack#(s(x),0()) -> c_2(ack#(x,s(0()))) ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)) nr#() -> c_10(ack#(s(s(s(s(s(s(0())))))),0())) - Weak TRS: ack(0(),x) -> s(x) ack(s(x),0()) -> ack(x,s(0())) ack(s(x),s(y)) -> ack(x,ack(s(x),y)) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) nr() -> ack(s(s(s(s(s(s(0())))))),0()) - Signature: {ack/2,d/1,if/2,le/2,nr/0,numbers/0,ack#/2,d#/1,if#/2,le#/2,nr#/0,numbers#/0} / {0/0,cons/2,false/0,nil/0 ,s/1,true/0,c_1/0,c_2/1,c_3/2,c_4/3,c_5/0,c_6/1,c_7/0,c_8/0,c_9/1,c_10/1,c_11/1} - Obligation: innermost runtime complexity wrt. defined symbols {ack#,d#,if#,le#,nr#,numbers#} and constructors {0,cons ,false,nil,s,true} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:S:d#(x) -> c_4(if#(le(x,nr()),x),le#(x,nr()),nr#()) -->_3 nr#() -> c_10(ack#(s(s(s(s(s(s(0())))))),0())):6 -->_2 le#(s(x),s(y)) -> c_9(le#(x,y)):3 -->_1 if#(true(),x) -> c_6(d#(s(x))):2 2:S:if#(true(),x) -> c_6(d#(s(x))) -->_1 d#(x) -> c_4(if#(le(x,nr()),x),le#(x,nr()),nr#()):1 3:S:le#(s(x),s(y)) -> c_9(le#(x,y)) -->_1 le#(s(x),s(y)) -> c_9(le#(x,y)):3 4:W:ack#(s(x),0()) -> c_2(ack#(x,s(0()))) -->_1 ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)):5 5:W:ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)) -->_2 ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)):5 -->_1 ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)):5 -->_2 ack#(s(x),0()) -> c_2(ack#(x,s(0()))):4 -->_1 ack#(s(x),0()) -> c_2(ack#(x,s(0()))):4 6:W:nr#() -> c_10(ack#(s(s(s(s(s(s(0())))))),0())) -->_1 ack#(s(x),0()) -> c_2(ack#(x,s(0()))):4 The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 6: nr#() -> c_10(ack#(s(s(s(s(s(s(0())))))),0())) 4: ack#(s(x),0()) -> c_2(ack#(x,s(0()))) 5: ack#(s(x),s(y)) -> c_3(ack#(x,ack(s(x),y)),ack#(s(x),y)) ** Step 6.b:3: SimplifyRHS MAYBE + Considered Problem: - Strict DPs: d#(x) -> c_4(if#(le(x,nr()),x),le#(x,nr()),nr#()) if#(true(),x) -> c_6(d#(s(x))) le#(s(x),s(y)) -> c_9(le#(x,y)) - Weak TRS: ack(0(),x) -> s(x) ack(s(x),0()) -> ack(x,s(0())) ack(s(x),s(y)) -> ack(x,ack(s(x),y)) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) nr() -> ack(s(s(s(s(s(s(0())))))),0()) - Signature: {ack/2,d/1,if/2,le/2,nr/0,numbers/0,ack#/2,d#/1,if#/2,le#/2,nr#/0,numbers#/0} / {0/0,cons/2,false/0,nil/0 ,s/1,true/0,c_1/0,c_2/1,c_3/2,c_4/3,c_5/0,c_6/1,c_7/0,c_8/0,c_9/1,c_10/1,c_11/1} - Obligation: innermost runtime complexity wrt. defined symbols {ack#,d#,if#,le#,nr#,numbers#} and constructors {0,cons ,false,nil,s,true} + Applied Processor: SimplifyRHS + Details: Consider the dependency graph 1:S:d#(x) -> c_4(if#(le(x,nr()),x),le#(x,nr()),nr#()) -->_2 le#(s(x),s(y)) -> c_9(le#(x,y)):3 -->_1 if#(true(),x) -> c_6(d#(s(x))):2 2:S:if#(true(),x) -> c_6(d#(s(x))) -->_1 d#(x) -> c_4(if#(le(x,nr()),x),le#(x,nr()),nr#()):1 3:S:le#(s(x),s(y)) -> c_9(le#(x,y)) -->_1 le#(s(x),s(y)) -> c_9(le#(x,y)):3 Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified: d#(x) -> c_4(if#(le(x,nr()),x),le#(x,nr())) ** Step 6.b:4: Failure MAYBE + Considered Problem: - Strict DPs: d#(x) -> c_4(if#(le(x,nr()),x),le#(x,nr())) if#(true(),x) -> c_6(d#(s(x))) le#(s(x),s(y)) -> c_9(le#(x,y)) - Weak TRS: ack(0(),x) -> s(x) ack(s(x),0()) -> ack(x,s(0())) ack(s(x),s(y)) -> ack(x,ack(s(x),y)) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) nr() -> ack(s(s(s(s(s(s(0())))))),0()) - Signature: {ack/2,d/1,if/2,le/2,nr/0,numbers/0,ack#/2,d#/1,if#/2,le#/2,nr#/0,numbers#/0} / {0/0,cons/2,false/0,nil/0 ,s/1,true/0,c_1/0,c_2/1,c_3/2,c_4/2,c_5/0,c_6/1,c_7/0,c_8/0,c_9/1,c_10/1,c_11/1} - Obligation: innermost runtime complexity wrt. defined symbols {ack#,d#,if#,le#,nr#,numbers#} and constructors {0,cons ,false,nil,s,true} + Applied Processor: EmptyProcessor + Details: The problem is still open. MAYBE