MAYBE * Step 1: DependencyPairs MAYBE + Considered Problem: - Strict TRS: eq(0(),0()) -> true() eq(0(),s(y)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) if1(false(),x,y,xs) -> min(cons(y,xs)) if1(true(),x,y,xs) -> min(cons(x,xs)) if2(false(),x,y,xs) -> cons(y,rm(x,xs)) if2(true(),x,y,xs) -> rm(x,xs) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) min(cons(x,cons(y,xs))) -> if1(le(x,y),x,y,xs) min(cons(x,nil())) -> x min(nil()) -> 0() minsort(cons(x,xs)) -> cons(min(cons(x,xs)),minsort(rm(min(cons(x,xs)),cons(x,xs)))) minsort(nil()) -> nil() rm(x,cons(y,xs)) -> if2(eq(x,y),x,y,xs) rm(x,nil()) -> nil() - Signature: {eq/2,if1/4,if2/4,le/2,min/1,minsort/1,rm/2} / {0/0,cons/2,false/0,nil/0,s/1,true/0} - Obligation: innermost runtime complexity wrt. defined symbols {eq,if1,if2,le,min,minsort,rm} and constructors {0,cons ,false,nil,s,true} + Applied Processor: DependencyPairs {dpKind_ = DT} + Details: We add the following dependency tuples: Strict DPs eq#(0(),0()) -> c_1() eq#(0(),s(y)) -> c_2() eq#(s(x),0()) -> c_3() eq#(s(x),s(y)) -> c_4(eq#(x,y)) if1#(false(),x,y,xs) -> c_5(min#(cons(y,xs))) if1#(true(),x,y,xs) -> c_6(min#(cons(x,xs))) if2#(false(),x,y,xs) -> c_7(rm#(x,xs)) if2#(true(),x,y,xs) -> c_8(rm#(x,xs)) le#(0(),y) -> c_9() le#(s(x),0()) -> c_10() le#(s(x),s(y)) -> c_11(le#(x,y)) min#(cons(x,cons(y,xs))) -> c_12(if1#(le(x,y),x,y,xs),le#(x,y)) min#(cons(x,nil())) -> c_13() min#(nil()) -> c_14() minsort#(cons(x,xs)) -> c_15(min#(cons(x,xs)) ,minsort#(rm(min(cons(x,xs)),cons(x,xs))) ,rm#(min(cons(x,xs)),cons(x,xs)) ,min#(cons(x,xs))) minsort#(nil()) -> c_16() rm#(x,cons(y,xs)) -> c_17(if2#(eq(x,y),x,y,xs),eq#(x,y)) rm#(x,nil()) -> c_18() Weak DPs and mark the set of starting terms. * Step 2: UsableRules MAYBE + Considered Problem: - Strict DPs: eq#(0(),0()) -> c_1() eq#(0(),s(y)) -> c_2() eq#(s(x),0()) -> c_3() eq#(s(x),s(y)) -> c_4(eq#(x,y)) if1#(false(),x,y,xs) -> c_5(min#(cons(y,xs))) if1#(true(),x,y,xs) -> c_6(min#(cons(x,xs))) if2#(false(),x,y,xs) -> c_7(rm#(x,xs)) if2#(true(),x,y,xs) -> c_8(rm#(x,xs)) le#(0(),y) -> c_9() le#(s(x),0()) -> c_10() le#(s(x),s(y)) -> c_11(le#(x,y)) min#(cons(x,cons(y,xs))) -> c_12(if1#(le(x,y),x,y,xs),le#(x,y)) min#(cons(x,nil())) -> c_13() min#(nil()) -> c_14() minsort#(cons(x,xs)) -> c_15(min#(cons(x,xs)) ,minsort#(rm(min(cons(x,xs)),cons(x,xs))) ,rm#(min(cons(x,xs)),cons(x,xs)) ,min#(cons(x,xs))) minsort#(nil()) -> c_16() rm#(x,cons(y,xs)) -> c_17(if2#(eq(x,y),x,y,xs),eq#(x,y)) rm#(x,nil()) -> c_18() - Weak TRS: eq(0(),0()) -> true() eq(0(),s(y)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) if1(false(),x,y,xs) -> min(cons(y,xs)) if1(true(),x,y,xs) -> min(cons(x,xs)) if2(false(),x,y,xs) -> cons(y,rm(x,xs)) if2(true(),x,y,xs) -> rm(x,xs) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) min(cons(x,cons(y,xs))) -> if1(le(x,y),x,y,xs) min(cons(x,nil())) -> x min(nil()) -> 0() minsort(cons(x,xs)) -> cons(min(cons(x,xs)),minsort(rm(min(cons(x,xs)),cons(x,xs)))) minsort(nil()) -> nil() rm(x,cons(y,xs)) -> if2(eq(x,y),x,y,xs) rm(x,nil()) -> nil() - Signature: {eq/2,if1/4,if2/4,le/2,min/1,minsort/1,rm/2,eq#/2,if1#/4,if2#/4,le#/2,min#/1,minsort#/1,rm#/2} / {0/0,cons/2 ,false/0,nil/0,s/1,true/0,c_1/0,c_2/0,c_3/0,c_4/1,c_5/1,c_6/1,c_7/1,c_8/1,c_9/0,c_10/0,c_11/1,c_12/2,c_13/0 ,c_14/0,c_15/4,c_16/0,c_17/2,c_18/0} - Obligation: innermost runtime complexity wrt. defined symbols {eq#,if1#,if2#,le#,min#,minsort#,rm#} and constructors {0 ,cons,false,nil,s,true} + Applied Processor: UsableRules + Details: We replace rewrite rules by usable rules: eq(0(),0()) -> true() eq(0(),s(y)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) if1(false(),x,y,xs) -> min(cons(y,xs)) if1(true(),x,y,xs) -> min(cons(x,xs)) if2(false(),x,y,xs) -> cons(y,rm(x,xs)) if2(true(),x,y,xs) -> rm(x,xs) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) min(cons(x,cons(y,xs))) -> if1(le(x,y),x,y,xs) min(cons(x,nil())) -> x rm(x,cons(y,xs)) -> if2(eq(x,y),x,y,xs) rm(x,nil()) -> nil() eq#(0(),0()) -> c_1() eq#(0(),s(y)) -> c_2() eq#(s(x),0()) -> c_3() eq#(s(x),s(y)) -> c_4(eq#(x,y)) if1#(false(),x,y,xs) -> c_5(min#(cons(y,xs))) if1#(true(),x,y,xs) -> c_6(min#(cons(x,xs))) if2#(false(),x,y,xs) -> c_7(rm#(x,xs)) if2#(true(),x,y,xs) -> c_8(rm#(x,xs)) le#(0(),y) -> c_9() le#(s(x),0()) -> c_10() le#(s(x),s(y)) -> c_11(le#(x,y)) min#(cons(x,cons(y,xs))) -> c_12(if1#(le(x,y),x,y,xs),le#(x,y)) min#(cons(x,nil())) -> c_13() min#(nil()) -> c_14() minsort#(cons(x,xs)) -> c_15(min#(cons(x,xs)) ,minsort#(rm(min(cons(x,xs)),cons(x,xs))) ,rm#(min(cons(x,xs)),cons(x,xs)) ,min#(cons(x,xs))) minsort#(nil()) -> c_16() rm#(x,cons(y,xs)) -> c_17(if2#(eq(x,y),x,y,xs),eq#(x,y)) rm#(x,nil()) -> c_18() * Step 3: PredecessorEstimation MAYBE + Considered Problem: - Strict DPs: eq#(0(),0()) -> c_1() eq#(0(),s(y)) -> c_2() eq#(s(x),0()) -> c_3() eq#(s(x),s(y)) -> c_4(eq#(x,y)) if1#(false(),x,y,xs) -> c_5(min#(cons(y,xs))) if1#(true(),x,y,xs) -> c_6(min#(cons(x,xs))) if2#(false(),x,y,xs) -> c_7(rm#(x,xs)) if2#(true(),x,y,xs) -> c_8(rm#(x,xs)) le#(0(),y) -> c_9() le#(s(x),0()) -> c_10() le#(s(x),s(y)) -> c_11(le#(x,y)) min#(cons(x,cons(y,xs))) -> c_12(if1#(le(x,y),x,y,xs),le#(x,y)) min#(cons(x,nil())) -> c_13() min#(nil()) -> c_14() minsort#(cons(x,xs)) -> c_15(min#(cons(x,xs)) ,minsort#(rm(min(cons(x,xs)),cons(x,xs))) ,rm#(min(cons(x,xs)),cons(x,xs)) ,min#(cons(x,xs))) minsort#(nil()) -> c_16() rm#(x,cons(y,xs)) -> c_17(if2#(eq(x,y),x,y,xs),eq#(x,y)) rm#(x,nil()) -> c_18() - Weak TRS: eq(0(),0()) -> true() eq(0(),s(y)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) if1(false(),x,y,xs) -> min(cons(y,xs)) if1(true(),x,y,xs) -> min(cons(x,xs)) if2(false(),x,y,xs) -> cons(y,rm(x,xs)) if2(true(),x,y,xs) -> rm(x,xs) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) min(cons(x,cons(y,xs))) -> if1(le(x,y),x,y,xs) min(cons(x,nil())) -> x rm(x,cons(y,xs)) -> if2(eq(x,y),x,y,xs) rm(x,nil()) -> nil() - Signature: {eq/2,if1/4,if2/4,le/2,min/1,minsort/1,rm/2,eq#/2,if1#/4,if2#/4,le#/2,min#/1,minsort#/1,rm#/2} / {0/0,cons/2 ,false/0,nil/0,s/1,true/0,c_1/0,c_2/0,c_3/0,c_4/1,c_5/1,c_6/1,c_7/1,c_8/1,c_9/0,c_10/0,c_11/1,c_12/2,c_13/0 ,c_14/0,c_15/4,c_16/0,c_17/2,c_18/0} - Obligation: innermost runtime complexity wrt. defined symbols {eq#,if1#,if2#,le#,min#,minsort#,rm#} and constructors {0 ,cons,false,nil,s,true} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {1,2,3,9,10,13,14,16,18} by application of Pre({1,2,3,9,10,13,14,16,18}) = {4,5,6,7,8,11,12,15,17}. Here rules are labelled as follows: 1: eq#(0(),0()) -> c_1() 2: eq#(0(),s(y)) -> c_2() 3: eq#(s(x),0()) -> c_3() 4: eq#(s(x),s(y)) -> c_4(eq#(x,y)) 5: if1#(false(),x,y,xs) -> c_5(min#(cons(y,xs))) 6: if1#(true(),x,y,xs) -> c_6(min#(cons(x,xs))) 7: if2#(false(),x,y,xs) -> c_7(rm#(x,xs)) 8: if2#(true(),x,y,xs) -> c_8(rm#(x,xs)) 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: min#(cons(x,cons(y,xs))) -> c_12(if1#(le(x,y),x,y,xs),le#(x,y)) 13: min#(cons(x,nil())) -> c_13() 14: min#(nil()) -> c_14() 15: minsort#(cons(x,xs)) -> c_15(min#(cons(x,xs)) ,minsort#(rm(min(cons(x,xs)),cons(x,xs))) ,rm#(min(cons(x,xs)),cons(x,xs)) ,min#(cons(x,xs))) 16: minsort#(nil()) -> c_16() 17: rm#(x,cons(y,xs)) -> c_17(if2#(eq(x,y),x,y,xs),eq#(x,y)) 18: rm#(x,nil()) -> c_18() * Step 4: RemoveWeakSuffixes MAYBE + Considered Problem: - Strict DPs: eq#(s(x),s(y)) -> c_4(eq#(x,y)) if1#(false(),x,y,xs) -> c_5(min#(cons(y,xs))) if1#(true(),x,y,xs) -> c_6(min#(cons(x,xs))) if2#(false(),x,y,xs) -> c_7(rm#(x,xs)) if2#(true(),x,y,xs) -> c_8(rm#(x,xs)) le#(s(x),s(y)) -> c_11(le#(x,y)) min#(cons(x,cons(y,xs))) -> c_12(if1#(le(x,y),x,y,xs),le#(x,y)) minsort#(cons(x,xs)) -> c_15(min#(cons(x,xs)) ,minsort#(rm(min(cons(x,xs)),cons(x,xs))) ,rm#(min(cons(x,xs)),cons(x,xs)) ,min#(cons(x,xs))) rm#(x,cons(y,xs)) -> c_17(if2#(eq(x,y),x,y,xs),eq#(x,y)) - Weak DPs: eq#(0(),0()) -> c_1() eq#(0(),s(y)) -> c_2() eq#(s(x),0()) -> c_3() le#(0(),y) -> c_9() le#(s(x),0()) -> c_10() min#(cons(x,nil())) -> c_13() min#(nil()) -> c_14() minsort#(nil()) -> c_16() rm#(x,nil()) -> c_18() - Weak TRS: eq(0(),0()) -> true() eq(0(),s(y)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) if1(false(),x,y,xs) -> min(cons(y,xs)) if1(true(),x,y,xs) -> min(cons(x,xs)) if2(false(),x,y,xs) -> cons(y,rm(x,xs)) if2(true(),x,y,xs) -> rm(x,xs) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) min(cons(x,cons(y,xs))) -> if1(le(x,y),x,y,xs) min(cons(x,nil())) -> x rm(x,cons(y,xs)) -> if2(eq(x,y),x,y,xs) rm(x,nil()) -> nil() - Signature: {eq/2,if1/4,if2/4,le/2,min/1,minsort/1,rm/2,eq#/2,if1#/4,if2#/4,le#/2,min#/1,minsort#/1,rm#/2} / {0/0,cons/2 ,false/0,nil/0,s/1,true/0,c_1/0,c_2/0,c_3/0,c_4/1,c_5/1,c_6/1,c_7/1,c_8/1,c_9/0,c_10/0,c_11/1,c_12/2,c_13/0 ,c_14/0,c_15/4,c_16/0,c_17/2,c_18/0} - Obligation: innermost runtime complexity wrt. defined symbols {eq#,if1#,if2#,le#,min#,minsort#,rm#} and constructors {0 ,cons,false,nil,s,true} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:S:eq#(s(x),s(y)) -> c_4(eq#(x,y)) -->_1 eq#(s(x),0()) -> c_3():12 -->_1 eq#(0(),s(y)) -> c_2():11 -->_1 eq#(0(),0()) -> c_1():10 -->_1 eq#(s(x),s(y)) -> c_4(eq#(x,y)):1 2:S:if1#(false(),x,y,xs) -> c_5(min#(cons(y,xs))) -->_1 min#(cons(x,cons(y,xs))) -> c_12(if1#(le(x,y),x,y,xs),le#(x,y)):7 -->_1 min#(cons(x,nil())) -> c_13():15 3:S:if1#(true(),x,y,xs) -> c_6(min#(cons(x,xs))) -->_1 min#(cons(x,cons(y,xs))) -> c_12(if1#(le(x,y),x,y,xs),le#(x,y)):7 -->_1 min#(cons(x,nil())) -> c_13():15 4:S:if2#(false(),x,y,xs) -> c_7(rm#(x,xs)) -->_1 rm#(x,cons(y,xs)) -> c_17(if2#(eq(x,y),x,y,xs),eq#(x,y)):9 -->_1 rm#(x,nil()) -> c_18():18 5:S:if2#(true(),x,y,xs) -> c_8(rm#(x,xs)) -->_1 rm#(x,cons(y,xs)) -> c_17(if2#(eq(x,y),x,y,xs),eq#(x,y)):9 -->_1 rm#(x,nil()) -> c_18():18 6:S:le#(s(x),s(y)) -> c_11(le#(x,y)) -->_1 le#(s(x),0()) -> c_10():14 -->_1 le#(0(),y) -> c_9():13 -->_1 le#(s(x),s(y)) -> c_11(le#(x,y)):6 7:S:min#(cons(x,cons(y,xs))) -> c_12(if1#(le(x,y),x,y,xs),le#(x,y)) -->_2 le#(s(x),0()) -> c_10():14 -->_2 le#(0(),y) -> c_9():13 -->_2 le#(s(x),s(y)) -> c_11(le#(x,y)):6 -->_1 if1#(true(),x,y,xs) -> c_6(min#(cons(x,xs))):3 -->_1 if1#(false(),x,y,xs) -> c_5(min#(cons(y,xs))):2 8:S:minsort#(cons(x,xs)) -> c_15(min#(cons(x,xs)) ,minsort#(rm(min(cons(x,xs)),cons(x,xs))) ,rm#(min(cons(x,xs)),cons(x,xs)) ,min#(cons(x,xs))) -->_3 rm#(x,cons(y,xs)) -> c_17(if2#(eq(x,y),x,y,xs),eq#(x,y)):9 -->_2 minsort#(nil()) -> c_16():17 -->_4 min#(cons(x,nil())) -> c_13():15 -->_1 min#(cons(x,nil())) -> c_13():15 -->_2 minsort#(cons(x,xs)) -> c_15(min#(cons(x,xs)) ,minsort#(rm(min(cons(x,xs)),cons(x,xs))) ,rm#(min(cons(x,xs)),cons(x,xs)) ,min#(cons(x,xs))):8 -->_4 min#(cons(x,cons(y,xs))) -> c_12(if1#(le(x,y),x,y,xs),le#(x,y)):7 -->_1 min#(cons(x,cons(y,xs))) -> c_12(if1#(le(x,y),x,y,xs),le#(x,y)):7 9:S:rm#(x,cons(y,xs)) -> c_17(if2#(eq(x,y),x,y,xs),eq#(x,y)) -->_2 eq#(s(x),0()) -> c_3():12 -->_2 eq#(0(),s(y)) -> c_2():11 -->_2 eq#(0(),0()) -> c_1():10 -->_1 if2#(true(),x,y,xs) -> c_8(rm#(x,xs)):5 -->_1 if2#(false(),x,y,xs) -> c_7(rm#(x,xs)):4 -->_2 eq#(s(x),s(y)) -> c_4(eq#(x,y)):1 10:W:eq#(0(),0()) -> c_1() 11:W:eq#(0(),s(y)) -> c_2() 12:W:eq#(s(x),0()) -> c_3() 13:W:le#(0(),y) -> c_9() 14:W:le#(s(x),0()) -> c_10() 15:W:min#(cons(x,nil())) -> c_13() 16:W:min#(nil()) -> c_14() 17:W:minsort#(nil()) -> c_16() 18:W:rm#(x,nil()) -> c_18() The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 16: min#(nil()) -> c_14() 17: minsort#(nil()) -> c_16() 18: rm#(x,nil()) -> c_18() 15: min#(cons(x,nil())) -> c_13() 13: le#(0(),y) -> c_9() 14: le#(s(x),0()) -> c_10() 10: eq#(0(),0()) -> c_1() 11: eq#(0(),s(y)) -> c_2() 12: eq#(s(x),0()) -> c_3() * Step 5: Failure MAYBE + Considered Problem: - Strict DPs: eq#(s(x),s(y)) -> c_4(eq#(x,y)) if1#(false(),x,y,xs) -> c_5(min#(cons(y,xs))) if1#(true(),x,y,xs) -> c_6(min#(cons(x,xs))) if2#(false(),x,y,xs) -> c_7(rm#(x,xs)) if2#(true(),x,y,xs) -> c_8(rm#(x,xs)) le#(s(x),s(y)) -> c_11(le#(x,y)) min#(cons(x,cons(y,xs))) -> c_12(if1#(le(x,y),x,y,xs),le#(x,y)) minsort#(cons(x,xs)) -> c_15(min#(cons(x,xs)) ,minsort#(rm(min(cons(x,xs)),cons(x,xs))) ,rm#(min(cons(x,xs)),cons(x,xs)) ,min#(cons(x,xs))) rm#(x,cons(y,xs)) -> c_17(if2#(eq(x,y),x,y,xs),eq#(x,y)) - Weak TRS: eq(0(),0()) -> true() eq(0(),s(y)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) if1(false(),x,y,xs) -> min(cons(y,xs)) if1(true(),x,y,xs) -> min(cons(x,xs)) if2(false(),x,y,xs) -> cons(y,rm(x,xs)) if2(true(),x,y,xs) -> rm(x,xs) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) min(cons(x,cons(y,xs))) -> if1(le(x,y),x,y,xs) min(cons(x,nil())) -> x rm(x,cons(y,xs)) -> if2(eq(x,y),x,y,xs) rm(x,nil()) -> nil() - Signature: {eq/2,if1/4,if2/4,le/2,min/1,minsort/1,rm/2,eq#/2,if1#/4,if2#/4,le#/2,min#/1,minsort#/1,rm#/2} / {0/0,cons/2 ,false/0,nil/0,s/1,true/0,c_1/0,c_2/0,c_3/0,c_4/1,c_5/1,c_6/1,c_7/1,c_8/1,c_9/0,c_10/0,c_11/1,c_12/2,c_13/0 ,c_14/0,c_15/4,c_16/0,c_17/2,c_18/0} - Obligation: innermost runtime complexity wrt. defined symbols {eq#,if1#,if2#,le#,min#,minsort#,rm#} and constructors {0 ,cons,false,nil,s,true} + Applied Processor: EmptyProcessor + Details: The problem is still open. MAYBE