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