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