MAYBE * Step 1: DependencyPairs MAYBE + Considered Problem: - Strict TRS: ack(0(),y) -> s(y) ack(s(x),0()) -> ack(x,s(0())) ack(s(x),s(y)) -> ack(x,plus(y,ack(s(x),y))) plus(x,s(s(y))) -> s(plus(s(x),y)) plus(0(),y) -> y plus(s(0()),y) -> s(y) plus(s(s(x)),y) -> s(plus(x,s(y))) - Signature: {ack/2,plus/2} / {0/0,s/1} - Obligation: innermost runtime complexity wrt. defined symbols {ack,plus} and constructors {0,s} + Applied Processor: DependencyPairs {dpKind_ = DT} + Details: We add the following dependency tuples: Strict DPs ack#(0(),y) -> c_1() ack#(s(x),0()) -> c_2(ack#(x,s(0()))) ack#(s(x),s(y)) -> c_3(ack#(x,plus(y,ack(s(x),y))),plus#(y,ack(s(x),y)),ack#(s(x),y)) plus#(x,s(s(y))) -> c_4(plus#(s(x),y)) plus#(0(),y) -> c_5() plus#(s(0()),y) -> c_6() plus#(s(s(x)),y) -> c_7(plus#(x,s(y))) Weak DPs and mark the set of starting terms. * Step 2: PredecessorEstimation MAYBE + Considered Problem: - Strict DPs: ack#(0(),y) -> c_1() ack#(s(x),0()) -> c_2(ack#(x,s(0()))) ack#(s(x),s(y)) -> c_3(ack#(x,plus(y,ack(s(x),y))),plus#(y,ack(s(x),y)),ack#(s(x),y)) plus#(x,s(s(y))) -> c_4(plus#(s(x),y)) plus#(0(),y) -> c_5() plus#(s(0()),y) -> c_6() plus#(s(s(x)),y) -> c_7(plus#(x,s(y))) - Weak TRS: ack(0(),y) -> s(y) ack(s(x),0()) -> ack(x,s(0())) ack(s(x),s(y)) -> ack(x,plus(y,ack(s(x),y))) plus(x,s(s(y))) -> s(plus(s(x),y)) plus(0(),y) -> y plus(s(0()),y) -> s(y) plus(s(s(x)),y) -> s(plus(x,s(y))) - Signature: {ack/2,plus/2,ack#/2,plus#/2} / {0/0,s/1,c_1/0,c_2/1,c_3/3,c_4/1,c_5/0,c_6/0,c_7/1} - Obligation: innermost runtime complexity wrt. defined symbols {ack#,plus#} and constructors {0,s} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {1,5,6} by application of Pre({1,5,6}) = {2,3,4,7}. Here rules are labelled as follows: 1: ack#(0(),y) -> c_1() 2: ack#(s(x),0()) -> c_2(ack#(x,s(0()))) 3: ack#(s(x),s(y)) -> c_3(ack#(x,plus(y,ack(s(x),y))),plus#(y,ack(s(x),y)),ack#(s(x),y)) 4: plus#(x,s(s(y))) -> c_4(plus#(s(x),y)) 5: plus#(0(),y) -> c_5() 6: plus#(s(0()),y) -> c_6() 7: plus#(s(s(x)),y) -> c_7(plus#(x,s(y))) * Step 3: 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,plus(y,ack(s(x),y))),plus#(y,ack(s(x),y)),ack#(s(x),y)) plus#(x,s(s(y))) -> c_4(plus#(s(x),y)) plus#(s(s(x)),y) -> c_7(plus#(x,s(y))) - Weak DPs: ack#(0(),y) -> c_1() plus#(0(),y) -> c_5() plus#(s(0()),y) -> c_6() - Weak TRS: ack(0(),y) -> s(y) ack(s(x),0()) -> ack(x,s(0())) ack(s(x),s(y)) -> ack(x,plus(y,ack(s(x),y))) plus(x,s(s(y))) -> s(plus(s(x),y)) plus(0(),y) -> y plus(s(0()),y) -> s(y) plus(s(s(x)),y) -> s(plus(x,s(y))) - Signature: {ack/2,plus/2,ack#/2,plus#/2} / {0/0,s/1,c_1/0,c_2/1,c_3/3,c_4/1,c_5/0,c_6/0,c_7/1} - Obligation: innermost runtime complexity wrt. defined symbols {ack#,plus#} and constructors {0,s} + 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,plus(y,ack(s(x),y))),plus#(y,ack(s(x),y)),ack#(s(x),y)):2 -->_1 ack#(0(),y) -> c_1():5 2:S:ack#(s(x),s(y)) -> c_3(ack#(x,plus(y,ack(s(x),y))),plus#(y,ack(s(x),y)),ack#(s(x),y)) -->_2 plus#(s(s(x)),y) -> c_7(plus#(x,s(y))):4 -->_2 plus#(x,s(s(y))) -> c_4(plus#(s(x),y)):3 -->_2 plus#(s(0()),y) -> c_6():7 -->_2 plus#(0(),y) -> c_5():6 -->_1 ack#(0(),y) -> c_1():5 -->_3 ack#(s(x),s(y)) -> c_3(ack#(x,plus(y,ack(s(x),y))),plus#(y,ack(s(x),y)),ack#(s(x),y)):2 -->_1 ack#(s(x),s(y)) -> c_3(ack#(x,plus(y,ack(s(x),y))),plus#(y,ack(s(x),y)),ack#(s(x),y)):2 -->_3 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:plus#(x,s(s(y))) -> c_4(plus#(s(x),y)) -->_1 plus#(s(s(x)),y) -> c_7(plus#(x,s(y))):4 -->_1 plus#(s(0()),y) -> c_6():7 -->_1 plus#(x,s(s(y))) -> c_4(plus#(s(x),y)):3 4:S:plus#(s(s(x)),y) -> c_7(plus#(x,s(y))) -->_1 plus#(s(0()),y) -> c_6():7 -->_1 plus#(0(),y) -> c_5():6 -->_1 plus#(s(s(x)),y) -> c_7(plus#(x,s(y))):4 -->_1 plus#(x,s(s(y))) -> c_4(plus#(s(x),y)):3 5:W:ack#(0(),y) -> c_1() 6:W:plus#(0(),y) -> c_5() 7:W:plus#(s(0()),y) -> c_6() The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 5: ack#(0(),y) -> c_1() 6: plus#(0(),y) -> c_5() 7: plus#(s(0()),y) -> c_6() * Step 4: 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,plus(y,ack(s(x),y))),plus#(y,ack(s(x),y)),ack#(s(x),y)) plus#(x,s(s(y))) -> c_4(plus#(s(x),y)) plus#(s(s(x)),y) -> c_7(plus#(x,s(y))) - Weak TRS: ack(0(),y) -> s(y) ack(s(x),0()) -> ack(x,s(0())) ack(s(x),s(y)) -> ack(x,plus(y,ack(s(x),y))) plus(x,s(s(y))) -> s(plus(s(x),y)) plus(0(),y) -> y plus(s(0()),y) -> s(y) plus(s(s(x)),y) -> s(plus(x,s(y))) - Signature: {ack/2,plus/2,ack#/2,plus#/2} / {0/0,s/1,c_1/0,c_2/1,c_3/3,c_4/1,c_5/0,c_6/0,c_7/1} - Obligation: innermost runtime complexity wrt. defined symbols {ack#,plus#} and constructors {0,s} + Applied Processor: EmptyProcessor + Details: The problem is still open. MAYBE