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