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: Decompose 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: Decompose {onSelection = all cycle independent sub-graph, withBound = RelativeAdd} + Details: We analyse the complexity of following sub-problems (R) and (S). Problem (S) is obtained from the input problem by shifting strict rules from (R) into the weak component. Problem (R) - Strict DPs: app#(cons(X,XS),YS) -> c_1(app#(XS,YS)) - Weak DPs: 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} Problem (S) - Strict DPs: 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#(cons(X,XS),YS) -> c_1(app#(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} ** Step 5.a:1: RemoveWeakSuffixes MAYBE + Considered Problem: - Strict DPs: app#(cons(X,XS),YS) -> c_1(app#(XS,YS)) - Weak DPs: 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: RemoveWeakSuffixes + Details: Consider the dependency graph 1:S:app#(cons(X,XS),YS) -> c_1(app#(XS,YS)) -->_1 app#(cons(X,XS),YS) -> c_1(app#(XS,YS)):1 2:W:from#(X) -> c_3(from#(s(X))) -->_1 from#(X) -> c_3(from#(s(X))):2 3:W: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 -->_2 prefix#(L) -> c_4(zWadr#(L,prefix(L)),prefix#(L)):3 4:W:zWadr#(cons(X,XS),cons(Y,YS)) -> c_6(app#(Y,cons(X,nil())),zWadr#(XS,YS)) -->_1 app#(cons(X,XS),YS) -> c_1(app#(XS,YS)):1 -->_2 zWadr#(cons(X,XS),cons(Y,YS)) -> c_6(app#(Y,cons(X,nil())),zWadr#(XS,YS)):4 The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 2: from#(X) -> c_3(from#(s(X))) ** Step 5.a:2: Failure MAYBE + Considered Problem: - Strict DPs: app#(cons(X,XS),YS) -> c_1(app#(XS,YS)) - Weak DPs: 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. ** Step 5.b:1: RemoveWeakSuffixes MAYBE + Considered Problem: - Strict DPs: 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#(cons(X,XS),YS) -> c_1(app#(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: RemoveWeakSuffixes + Details: Consider the dependency graph 1:S:from#(X) -> c_3(from#(s(X))) -->_1 from#(X) -> c_3(from#(s(X))):1 2: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)):3 -->_2 prefix#(L) -> c_4(zWadr#(L,prefix(L)),prefix#(L)):2 3:S:zWadr#(cons(X,XS),cons(Y,YS)) -> c_6(app#(Y,cons(X,nil())),zWadr#(XS,YS)) -->_1 app#(cons(X,XS),YS) -> c_1(app#(XS,YS)):4 -->_2 zWadr#(cons(X,XS),cons(Y,YS)) -> c_6(app#(Y,cons(X,nil())),zWadr#(XS,YS)):3 4:W:app#(cons(X,XS),YS) -> c_1(app#(XS,YS)) -->_1 app#(cons(X,XS),YS) -> c_1(app#(XS,YS)):4 The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 4: app#(cons(X,XS),YS) -> c_1(app#(XS,YS)) ** Step 5.b:2: SimplifyRHS MAYBE + Considered Problem: - Strict DPs: 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: SimplifyRHS + Details: Consider the dependency graph 1:S:from#(X) -> c_3(from#(s(X))) -->_1 from#(X) -> c_3(from#(s(X))):1 2: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)):3 -->_2 prefix#(L) -> c_4(zWadr#(L,prefix(L)),prefix#(L)):2 3:S:zWadr#(cons(X,XS),cons(Y,YS)) -> c_6(app#(Y,cons(X,nil())),zWadr#(XS,YS)) -->_2 zWadr#(cons(X,XS),cons(Y,YS)) -> c_6(app#(Y,cons(X,nil())),zWadr#(XS,YS)):3 Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified: zWadr#(cons(X,XS),cons(Y,YS)) -> c_6(zWadr#(XS,YS)) ** Step 5.b:3: Decompose MAYBE + Considered Problem: - Strict DPs: 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(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/1,c_7/0} - Obligation: innermost runtime complexity wrt. defined symbols {app#,from#,prefix#,zWadr#} and constructors {cons,nil,s} + Applied Processor: Decompose {onSelection = all cycle independent sub-graph, withBound = RelativeAdd} + Details: We analyse the complexity of following sub-problems (R) and (S). Problem (S) is obtained from the input problem by shifting strict rules from (R) into the weak component. Problem (R) - Strict DPs: from#(X) -> c_3(from#(s(X))) - Weak DPs: prefix#(L) -> c_4(zWadr#(L,prefix(L)),prefix#(L)) zWadr#(cons(X,XS),cons(Y,YS)) -> c_6(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/1,c_7/0} - Obligation: innermost runtime complexity wrt. defined symbols {app#,from#,prefix#,zWadr#} and constructors {cons,nil ,s} Problem (S) - Strict DPs: prefix#(L) -> c_4(zWadr#(L,prefix(L)),prefix#(L)) zWadr#(cons(X,XS),cons(Y,YS)) -> c_6(zWadr#(XS,YS)) - Weak DPs: from#(X) -> c_3(from#(s(X))) - 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/1,c_7/0} - Obligation: innermost runtime complexity wrt. defined symbols {app#,from#,prefix#,zWadr#} and constructors {cons,nil ,s} *** Step 5.b:3.a:1: RemoveWeakSuffixes MAYBE + Considered Problem: - Strict DPs: from#(X) -> c_3(from#(s(X))) - Weak DPs: prefix#(L) -> c_4(zWadr#(L,prefix(L)),prefix#(L)) zWadr#(cons(X,XS),cons(Y,YS)) -> c_6(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/1,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:from#(X) -> c_3(from#(s(X))) -->_1 from#(X) -> c_3(from#(s(X))):1 2:W:prefix#(L) -> c_4(zWadr#(L,prefix(L)),prefix#(L)) -->_1 zWadr#(cons(X,XS),cons(Y,YS)) -> c_6(zWadr#(XS,YS)):3 -->_2 prefix#(L) -> c_4(zWadr#(L,prefix(L)),prefix#(L)):2 3:W:zWadr#(cons(X,XS),cons(Y,YS)) -> c_6(zWadr#(XS,YS)) -->_1 zWadr#(cons(X,XS),cons(Y,YS)) -> c_6(zWadr#(XS,YS)):3 The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 2: prefix#(L) -> c_4(zWadr#(L,prefix(L)),prefix#(L)) 3: zWadr#(cons(X,XS),cons(Y,YS)) -> c_6(zWadr#(XS,YS)) *** Step 5.b:3.a:2: UsableRules MAYBE + Considered Problem: - Strict DPs: from#(X) -> c_3(from#(s(X))) - 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/1,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: from#(X) -> c_3(from#(s(X))) *** Step 5.b:3.a:3: Failure MAYBE + Considered Problem: - Strict DPs: from#(X) -> c_3(from#(s(X))) - 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/1,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. *** Step 5.b:3.b:1: RemoveWeakSuffixes MAYBE + Considered Problem: - Strict DPs: prefix#(L) -> c_4(zWadr#(L,prefix(L)),prefix#(L)) zWadr#(cons(X,XS),cons(Y,YS)) -> c_6(zWadr#(XS,YS)) - Weak DPs: from#(X) -> c_3(from#(s(X))) - 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/1,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:prefix#(L) -> c_4(zWadr#(L,prefix(L)),prefix#(L)) -->_1 zWadr#(cons(X,XS),cons(Y,YS)) -> c_6(zWadr#(XS,YS)):2 -->_2 prefix#(L) -> c_4(zWadr#(L,prefix(L)),prefix#(L)):1 2:S:zWadr#(cons(X,XS),cons(Y,YS)) -> c_6(zWadr#(XS,YS)) -->_1 zWadr#(cons(X,XS),cons(Y,YS)) -> c_6(zWadr#(XS,YS)):2 3:W:from#(X) -> c_3(from#(s(X))) -->_1 from#(X) -> c_3(from#(s(X))):3 The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 3: from#(X) -> c_3(from#(s(X))) *** Step 5.b:3.b:2: Failure MAYBE + Considered Problem: - Strict DPs: prefix#(L) -> c_4(zWadr#(L,prefix(L)),prefix#(L)) zWadr#(cons(X,XS),cons(Y,YS)) -> c_6(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/1,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