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