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