MAYBE * Step 1: DependencyPairs MAYBE + Considered Problem: - Strict TRS: 2nd(cons(X,XS)) -> head(XS) from(X) -> cons(X,from(s(X))) head(cons(X,XS)) -> X sel(0(),cons(X,XS)) -> X sel(s(N),cons(X,XS)) -> sel(N,XS) take(0(),XS) -> nil() take(s(N),cons(X,XS)) -> cons(X,take(N,XS)) - Signature: {2nd/1,from/1,head/1,sel/2,take/2} / {0/0,cons/2,nil/0,s/1} - Obligation: innermost runtime complexity wrt. defined symbols {2nd,from,head,sel,take} and constructors {0,cons,nil,s} + Applied Processor: DependencyPairs {dpKind_ = DT} + Details: We add the following dependency tuples: Strict DPs 2nd#(cons(X,XS)) -> c_1(head#(XS)) from#(X) -> c_2(from#(s(X))) head#(cons(X,XS)) -> c_3() sel#(0(),cons(X,XS)) -> c_4() sel#(s(N),cons(X,XS)) -> c_5(sel#(N,XS)) take#(0(),XS) -> c_6() take#(s(N),cons(X,XS)) -> c_7(take#(N,XS)) Weak DPs and mark the set of starting terms. * Step 2: UsableRules MAYBE + Considered Problem: - Strict DPs: 2nd#(cons(X,XS)) -> c_1(head#(XS)) from#(X) -> c_2(from#(s(X))) head#(cons(X,XS)) -> c_3() sel#(0(),cons(X,XS)) -> c_4() sel#(s(N),cons(X,XS)) -> c_5(sel#(N,XS)) take#(0(),XS) -> c_6() take#(s(N),cons(X,XS)) -> c_7(take#(N,XS)) - Weak TRS: 2nd(cons(X,XS)) -> head(XS) from(X) -> cons(X,from(s(X))) head(cons(X,XS)) -> X sel(0(),cons(X,XS)) -> X sel(s(N),cons(X,XS)) -> sel(N,XS) take(0(),XS) -> nil() take(s(N),cons(X,XS)) -> cons(X,take(N,XS)) - Signature: {2nd/1,from/1,head/1,sel/2,take/2,2nd#/1,from#/1,head#/1,sel#/2,take#/2} / {0/0,cons/2,nil/0,s/1,c_1/1,c_2/1 ,c_3/0,c_4/0,c_5/1,c_6/0,c_7/1} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,from#,head#,sel#,take#} and constructors {0,cons,nil ,s} + Applied Processor: UsableRules + Details: We replace rewrite rules by usable rules: 2nd#(cons(X,XS)) -> c_1(head#(XS)) from#(X) -> c_2(from#(s(X))) head#(cons(X,XS)) -> c_3() sel#(0(),cons(X,XS)) -> c_4() sel#(s(N),cons(X,XS)) -> c_5(sel#(N,XS)) take#(0(),XS) -> c_6() take#(s(N),cons(X,XS)) -> c_7(take#(N,XS)) * Step 3: PredecessorEstimation MAYBE + Considered Problem: - Strict DPs: 2nd#(cons(X,XS)) -> c_1(head#(XS)) from#(X) -> c_2(from#(s(X))) head#(cons(X,XS)) -> c_3() sel#(0(),cons(X,XS)) -> c_4() sel#(s(N),cons(X,XS)) -> c_5(sel#(N,XS)) take#(0(),XS) -> c_6() take#(s(N),cons(X,XS)) -> c_7(take#(N,XS)) - Signature: {2nd/1,from/1,head/1,sel/2,take/2,2nd#/1,from#/1,head#/1,sel#/2,take#/2} / {0/0,cons/2,nil/0,s/1,c_1/1,c_2/1 ,c_3/0,c_4/0,c_5/1,c_6/0,c_7/1} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,from#,head#,sel#,take#} and constructors {0,cons,nil ,s} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {3,4,6} by application of Pre({3,4,6}) = {1,5,7}. Here rules are labelled as follows: 1: 2nd#(cons(X,XS)) -> c_1(head#(XS)) 2: from#(X) -> c_2(from#(s(X))) 3: head#(cons(X,XS)) -> c_3() 4: sel#(0(),cons(X,XS)) -> c_4() 5: sel#(s(N),cons(X,XS)) -> c_5(sel#(N,XS)) 6: take#(0(),XS) -> c_6() 7: take#(s(N),cons(X,XS)) -> c_7(take#(N,XS)) * Step 4: PredecessorEstimation MAYBE + Considered Problem: - Strict DPs: 2nd#(cons(X,XS)) -> c_1(head#(XS)) from#(X) -> c_2(from#(s(X))) sel#(s(N),cons(X,XS)) -> c_5(sel#(N,XS)) take#(s(N),cons(X,XS)) -> c_7(take#(N,XS)) - Weak DPs: head#(cons(X,XS)) -> c_3() sel#(0(),cons(X,XS)) -> c_4() take#(0(),XS) -> c_6() - Signature: {2nd/1,from/1,head/1,sel/2,take/2,2nd#/1,from#/1,head#/1,sel#/2,take#/2} / {0/0,cons/2,nil/0,s/1,c_1/1,c_2/1 ,c_3/0,c_4/0,c_5/1,c_6/0,c_7/1} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,from#,head#,sel#,take#} and constructors {0,cons,nil ,s} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {1} by application of Pre({1}) = {}. Here rules are labelled as follows: 1: 2nd#(cons(X,XS)) -> c_1(head#(XS)) 2: from#(X) -> c_2(from#(s(X))) 3: sel#(s(N),cons(X,XS)) -> c_5(sel#(N,XS)) 4: take#(s(N),cons(X,XS)) -> c_7(take#(N,XS)) 5: head#(cons(X,XS)) -> c_3() 6: sel#(0(),cons(X,XS)) -> c_4() 7: take#(0(),XS) -> c_6() * Step 5: RemoveWeakSuffixes MAYBE + Considered Problem: - Strict DPs: from#(X) -> c_2(from#(s(X))) sel#(s(N),cons(X,XS)) -> c_5(sel#(N,XS)) take#(s(N),cons(X,XS)) -> c_7(take#(N,XS)) - Weak DPs: 2nd#(cons(X,XS)) -> c_1(head#(XS)) head#(cons(X,XS)) -> c_3() sel#(0(),cons(X,XS)) -> c_4() take#(0(),XS) -> c_6() - Signature: {2nd/1,from/1,head/1,sel/2,take/2,2nd#/1,from#/1,head#/1,sel#/2,take#/2} / {0/0,cons/2,nil/0,s/1,c_1/1,c_2/1 ,c_3/0,c_4/0,c_5/1,c_6/0,c_7/1} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,from#,head#,sel#,take#} and constructors {0,cons,nil ,s} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:S:from#(X) -> c_2(from#(s(X))) -->_1 from#(X) -> c_2(from#(s(X))):1 2:S:sel#(s(N),cons(X,XS)) -> c_5(sel#(N,XS)) -->_1 sel#(0(),cons(X,XS)) -> c_4():6 -->_1 sel#(s(N),cons(X,XS)) -> c_5(sel#(N,XS)):2 3:S:take#(s(N),cons(X,XS)) -> c_7(take#(N,XS)) -->_1 take#(0(),XS) -> c_6():7 -->_1 take#(s(N),cons(X,XS)) -> c_7(take#(N,XS)):3 4:W:2nd#(cons(X,XS)) -> c_1(head#(XS)) -->_1 head#(cons(X,XS)) -> c_3():5 5:W:head#(cons(X,XS)) -> c_3() 6:W:sel#(0(),cons(X,XS)) -> c_4() 7:W:take#(0(),XS) -> c_6() The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 4: 2nd#(cons(X,XS)) -> c_1(head#(XS)) 5: head#(cons(X,XS)) -> c_3() 7: take#(0(),XS) -> c_6() 6: sel#(0(),cons(X,XS)) -> c_4() * Step 6: Failure MAYBE + Considered Problem: - Strict DPs: from#(X) -> c_2(from#(s(X))) sel#(s(N),cons(X,XS)) -> c_5(sel#(N,XS)) take#(s(N),cons(X,XS)) -> c_7(take#(N,XS)) - Signature: {2nd/1,from/1,head/1,sel/2,take/2,2nd#/1,from#/1,head#/1,sel#/2,take#/2} / {0/0,cons/2,nil/0,s/1,c_1/1,c_2/1 ,c_3/0,c_4/0,c_5/1,c_6/0,c_7/1} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,from#,head#,sel#,take#} and constructors {0,cons,nil ,s} + Applied Processor: EmptyProcessor + Details: The problem is still open. MAYBE