MAYBE * Step 1: DependencyPairs MAYBE + Considered Problem: - Strict TRS: active(cons(X1,X2)) -> cons(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) active(sel(X1,X2)) -> sel(X1,active(X2)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(0(),cons(X,Y))) -> mark(X) active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(0()) -> ok(0()) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) - Signature: {active/1,cons/2,from/1,proper/1,s/1,sel/2,top/1} / {0/0,mark/1,ok/1} - Obligation: innermost runtime complexity wrt. defined symbols {active,cons,from,proper,s,sel,top} and constructors {0 ,mark,ok} + Applied Processor: DependencyPairs {dpKind_ = DT} + Details: We add the following dependency tuples: Strict DPs active#(cons(X1,X2)) -> c_1(cons#(active(X1),X2),active#(X1)) active#(from(X)) -> c_2(from#(active(X)),active#(X)) active#(from(X)) -> c_3(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) -> c_4(s#(active(X)),active#(X)) active#(sel(X1,X2)) -> c_5(sel#(X1,active(X2)),active#(X2)) active#(sel(X1,X2)) -> c_6(sel#(active(X1),X2),active#(X1)) active#(sel(0(),cons(X,Y))) -> c_7() active#(sel(s(X),cons(Y,Z))) -> c_8(sel#(X,Z)) cons#(mark(X1),X2) -> c_9(cons#(X1,X2)) cons#(ok(X1),ok(X2)) -> c_10(cons#(X1,X2)) from#(mark(X)) -> c_11(from#(X)) from#(ok(X)) -> c_12(from#(X)) proper#(0()) -> c_13() proper#(cons(X1,X2)) -> c_14(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) proper#(from(X)) -> c_15(from#(proper(X)),proper#(X)) proper#(s(X)) -> c_16(s#(proper(X)),proper#(X)) proper#(sel(X1,X2)) -> c_17(sel#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) s#(mark(X)) -> c_18(s#(X)) s#(ok(X)) -> c_19(s#(X)) sel#(X1,mark(X2)) -> c_20(sel#(X1,X2)) sel#(mark(X1),X2) -> c_21(sel#(X1,X2)) sel#(ok(X1),ok(X2)) -> c_22(sel#(X1,X2)) top#(mark(X)) -> c_23(top#(proper(X)),proper#(X)) top#(ok(X)) -> c_24(top#(active(X)),active#(X)) Weak DPs and mark the set of starting terms. * Step 2: UsableRules MAYBE + Considered Problem: - Strict DPs: active#(cons(X1,X2)) -> c_1(cons#(active(X1),X2),active#(X1)) active#(from(X)) -> c_2(from#(active(X)),active#(X)) active#(from(X)) -> c_3(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) -> c_4(s#(active(X)),active#(X)) active#(sel(X1,X2)) -> c_5(sel#(X1,active(X2)),active#(X2)) active#(sel(X1,X2)) -> c_6(sel#(active(X1),X2),active#(X1)) active#(sel(0(),cons(X,Y))) -> c_7() active#(sel(s(X),cons(Y,Z))) -> c_8(sel#(X,Z)) cons#(mark(X1),X2) -> c_9(cons#(X1,X2)) cons#(ok(X1),ok(X2)) -> c_10(cons#(X1,X2)) from#(mark(X)) -> c_11(from#(X)) from#(ok(X)) -> c_12(from#(X)) proper#(0()) -> c_13() proper#(cons(X1,X2)) -> c_14(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) proper#(from(X)) -> c_15(from#(proper(X)),proper#(X)) proper#(s(X)) -> c_16(s#(proper(X)),proper#(X)) proper#(sel(X1,X2)) -> c_17(sel#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) s#(mark(X)) -> c_18(s#(X)) s#(ok(X)) -> c_19(s#(X)) sel#(X1,mark(X2)) -> c_20(sel#(X1,X2)) sel#(mark(X1),X2) -> c_21(sel#(X1,X2)) sel#(ok(X1),ok(X2)) -> c_22(sel#(X1,X2)) top#(mark(X)) -> c_23(top#(proper(X)),proper#(X)) top#(ok(X)) -> c_24(top#(active(X)),active#(X)) - Weak TRS: active(cons(X1,X2)) -> cons(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) active(sel(X1,X2)) -> sel(X1,active(X2)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(0(),cons(X,Y))) -> mark(X) active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(0()) -> ok(0()) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) - Signature: {active/1,cons/2,from/1,proper/1,s/1,sel/2,top/1,active#/1,cons#/2,from#/1,proper#/1,s#/1,sel#/2 ,top#/1} / {0/0,mark/1,ok/1,c_1/2,c_2/2,c_3/3,c_4/2,c_5/2,c_6/2,c_7/0,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1 ,c_13/0,c_14/3,c_15/2,c_16/2,c_17/3,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/2,c_24/2} - Obligation: innermost runtime complexity wrt. defined symbols {active#,cons#,from#,proper#,s#,sel# ,top#} and constructors {0,mark,ok} + Applied Processor: UsableRules + Details: We replace rewrite rules by usable rules: active(cons(X1,X2)) -> cons(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) active(sel(X1,X2)) -> sel(X1,active(X2)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(0(),cons(X,Y))) -> mark(X) active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(0()) -> ok(0()) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) active#(cons(X1,X2)) -> c_1(cons#(active(X1),X2),active#(X1)) active#(from(X)) -> c_2(from#(active(X)),active#(X)) active#(from(X)) -> c_3(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) -> c_4(s#(active(X)),active#(X)) active#(sel(X1,X2)) -> c_5(sel#(X1,active(X2)),active#(X2)) active#(sel(X1,X2)) -> c_6(sel#(active(X1),X2),active#(X1)) active#(sel(0(),cons(X,Y))) -> c_7() active#(sel(s(X),cons(Y,Z))) -> c_8(sel#(X,Z)) cons#(mark(X1),X2) -> c_9(cons#(X1,X2)) cons#(ok(X1),ok(X2)) -> c_10(cons#(X1,X2)) from#(mark(X)) -> c_11(from#(X)) from#(ok(X)) -> c_12(from#(X)) proper#(0()) -> c_13() proper#(cons(X1,X2)) -> c_14(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) proper#(from(X)) -> c_15(from#(proper(X)),proper#(X)) proper#(s(X)) -> c_16(s#(proper(X)),proper#(X)) proper#(sel(X1,X2)) -> c_17(sel#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) s#(mark(X)) -> c_18(s#(X)) s#(ok(X)) -> c_19(s#(X)) sel#(X1,mark(X2)) -> c_20(sel#(X1,X2)) sel#(mark(X1),X2) -> c_21(sel#(X1,X2)) sel#(ok(X1),ok(X2)) -> c_22(sel#(X1,X2)) top#(mark(X)) -> c_23(top#(proper(X)),proper#(X)) top#(ok(X)) -> c_24(top#(active(X)),active#(X)) * Step 3: PredecessorEstimation MAYBE + Considered Problem: - Strict DPs: active#(cons(X1,X2)) -> c_1(cons#(active(X1),X2),active#(X1)) active#(from(X)) -> c_2(from#(active(X)),active#(X)) active#(from(X)) -> c_3(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) -> c_4(s#(active(X)),active#(X)) active#(sel(X1,X2)) -> c_5(sel#(X1,active(X2)),active#(X2)) active#(sel(X1,X2)) -> c_6(sel#(active(X1),X2),active#(X1)) active#(sel(0(),cons(X,Y))) -> c_7() active#(sel(s(X),cons(Y,Z))) -> c_8(sel#(X,Z)) cons#(mark(X1),X2) -> c_9(cons#(X1,X2)) cons#(ok(X1),ok(X2)) -> c_10(cons#(X1,X2)) from#(mark(X)) -> c_11(from#(X)) from#(ok(X)) -> c_12(from#(X)) proper#(0()) -> c_13() proper#(cons(X1,X2)) -> c_14(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) proper#(from(X)) -> c_15(from#(proper(X)),proper#(X)) proper#(s(X)) -> c_16(s#(proper(X)),proper#(X)) proper#(sel(X1,X2)) -> c_17(sel#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) s#(mark(X)) -> c_18(s#(X)) s#(ok(X)) -> c_19(s#(X)) sel#(X1,mark(X2)) -> c_20(sel#(X1,X2)) sel#(mark(X1),X2) -> c_21(sel#(X1,X2)) sel#(ok(X1),ok(X2)) -> c_22(sel#(X1,X2)) top#(mark(X)) -> c_23(top#(proper(X)),proper#(X)) top#(ok(X)) -> c_24(top#(active(X)),active#(X)) - Weak TRS: active(cons(X1,X2)) -> cons(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) active(sel(X1,X2)) -> sel(X1,active(X2)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(0(),cons(X,Y))) -> mark(X) active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(0()) -> ok(0()) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) - Signature: {active/1,cons/2,from/1,proper/1,s/1,sel/2,top/1,active#/1,cons#/2,from#/1,proper#/1,s#/1,sel#/2 ,top#/1} / {0/0,mark/1,ok/1,c_1/2,c_2/2,c_3/3,c_4/2,c_5/2,c_6/2,c_7/0,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1 ,c_13/0,c_14/3,c_15/2,c_16/2,c_17/3,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/2,c_24/2} - Obligation: innermost runtime complexity wrt. defined symbols {active#,cons#,from#,proper#,s#,sel# ,top#} and constructors {0,mark,ok} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {7,13} by application of Pre({7,13}) = {1,2,4,5,6,14,15,16,17,23,24}. Here rules are labelled as follows: 1: active#(cons(X1,X2)) -> c_1(cons#(active(X1),X2),active#(X1)) 2: active#(from(X)) -> c_2(from#(active(X)),active#(X)) 3: active#(from(X)) -> c_3(cons#(X,from(s(X))),from#(s(X)),s#(X)) 4: active#(s(X)) -> c_4(s#(active(X)),active#(X)) 5: active#(sel(X1,X2)) -> c_5(sel#(X1,active(X2)),active#(X2)) 6: active#(sel(X1,X2)) -> c_6(sel#(active(X1),X2),active#(X1)) 7: active#(sel(0(),cons(X,Y))) -> c_7() 8: active#(sel(s(X),cons(Y,Z))) -> c_8(sel#(X,Z)) 9: cons#(mark(X1),X2) -> c_9(cons#(X1,X2)) 10: cons#(ok(X1),ok(X2)) -> c_10(cons#(X1,X2)) 11: from#(mark(X)) -> c_11(from#(X)) 12: from#(ok(X)) -> c_12(from#(X)) 13: proper#(0()) -> c_13() 14: proper#(cons(X1,X2)) -> c_14(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) 15: proper#(from(X)) -> c_15(from#(proper(X)),proper#(X)) 16: proper#(s(X)) -> c_16(s#(proper(X)),proper#(X)) 17: proper#(sel(X1,X2)) -> c_17(sel#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) 18: s#(mark(X)) -> c_18(s#(X)) 19: s#(ok(X)) -> c_19(s#(X)) 20: sel#(X1,mark(X2)) -> c_20(sel#(X1,X2)) 21: sel#(mark(X1),X2) -> c_21(sel#(X1,X2)) 22: sel#(ok(X1),ok(X2)) -> c_22(sel#(X1,X2)) 23: top#(mark(X)) -> c_23(top#(proper(X)),proper#(X)) 24: top#(ok(X)) -> c_24(top#(active(X)),active#(X)) * Step 4: RemoveWeakSuffixes MAYBE + Considered Problem: - Strict DPs: active#(cons(X1,X2)) -> c_1(cons#(active(X1),X2),active#(X1)) active#(from(X)) -> c_2(from#(active(X)),active#(X)) active#(from(X)) -> c_3(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) -> c_4(s#(active(X)),active#(X)) active#(sel(X1,X2)) -> c_5(sel#(X1,active(X2)),active#(X2)) active#(sel(X1,X2)) -> c_6(sel#(active(X1),X2),active#(X1)) active#(sel(s(X),cons(Y,Z))) -> c_8(sel#(X,Z)) cons#(mark(X1),X2) -> c_9(cons#(X1,X2)) cons#(ok(X1),ok(X2)) -> c_10(cons#(X1,X2)) from#(mark(X)) -> c_11(from#(X)) from#(ok(X)) -> c_12(from#(X)) proper#(cons(X1,X2)) -> c_14(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) proper#(from(X)) -> c_15(from#(proper(X)),proper#(X)) proper#(s(X)) -> c_16(s#(proper(X)),proper#(X)) proper#(sel(X1,X2)) -> c_17(sel#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) s#(mark(X)) -> c_18(s#(X)) s#(ok(X)) -> c_19(s#(X)) sel#(X1,mark(X2)) -> c_20(sel#(X1,X2)) sel#(mark(X1),X2) -> c_21(sel#(X1,X2)) sel#(ok(X1),ok(X2)) -> c_22(sel#(X1,X2)) top#(mark(X)) -> c_23(top#(proper(X)),proper#(X)) top#(ok(X)) -> c_24(top#(active(X)),active#(X)) - Weak DPs: active#(sel(0(),cons(X,Y))) -> c_7() proper#(0()) -> c_13() - Weak TRS: active(cons(X1,X2)) -> cons(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) active(sel(X1,X2)) -> sel(X1,active(X2)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(0(),cons(X,Y))) -> mark(X) active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(0()) -> ok(0()) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) - Signature: {active/1,cons/2,from/1,proper/1,s/1,sel/2,top/1,active#/1,cons#/2,from#/1,proper#/1,s#/1,sel#/2 ,top#/1} / {0/0,mark/1,ok/1,c_1/2,c_2/2,c_3/3,c_4/2,c_5/2,c_6/2,c_7/0,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1 ,c_13/0,c_14/3,c_15/2,c_16/2,c_17/3,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/2,c_24/2} - Obligation: innermost runtime complexity wrt. defined symbols {active#,cons#,from#,proper#,s#,sel# ,top#} and constructors {0,mark,ok} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:S:active#(cons(X1,X2)) -> c_1(cons#(active(X1),X2),active#(X1)) -->_1 cons#(ok(X1),ok(X2)) -> c_10(cons#(X1,X2)):9 -->_1 cons#(mark(X1),X2) -> c_9(cons#(X1,X2)):8 -->_2 active#(sel(s(X),cons(Y,Z))) -> c_8(sel#(X,Z)):7 -->_2 active#(sel(X1,X2)) -> c_6(sel#(active(X1),X2),active#(X1)):6 -->_2 active#(sel(X1,X2)) -> c_5(sel#(X1,active(X2)),active#(X2)):5 -->_2 active#(s(X)) -> c_4(s#(active(X)),active#(X)):4 -->_2 active#(from(X)) -> c_3(cons#(X,from(s(X))),from#(s(X)),s#(X)):3 -->_2 active#(from(X)) -> c_2(from#(active(X)),active#(X)):2 -->_2 active#(sel(0(),cons(X,Y))) -> c_7():23 -->_2 active#(cons(X1,X2)) -> c_1(cons#(active(X1),X2),active#(X1)):1 2:S:active#(from(X)) -> c_2(from#(active(X)),active#(X)) -->_1 from#(ok(X)) -> c_12(from#(X)):11 -->_1 from#(mark(X)) -> c_11(from#(X)):10 -->_2 active#(sel(s(X),cons(Y,Z))) -> c_8(sel#(X,Z)):7 -->_2 active#(sel(X1,X2)) -> c_6(sel#(active(X1),X2),active#(X1)):6 -->_2 active#(sel(X1,X2)) -> c_5(sel#(X1,active(X2)),active#(X2)):5 -->_2 active#(s(X)) -> c_4(s#(active(X)),active#(X)):4 -->_2 active#(from(X)) -> c_3(cons#(X,from(s(X))),from#(s(X)),s#(X)):3 -->_2 active#(sel(0(),cons(X,Y))) -> c_7():23 -->_2 active#(from(X)) -> c_2(from#(active(X)),active#(X)):2 -->_2 active#(cons(X1,X2)) -> c_1(cons#(active(X1),X2),active#(X1)):1 3:S:active#(from(X)) -> c_3(cons#(X,from(s(X))),from#(s(X)),s#(X)) -->_3 s#(ok(X)) -> c_19(s#(X)):17 -->_3 s#(mark(X)) -> c_18(s#(X)):16 -->_2 from#(ok(X)) -> c_12(from#(X)):11 -->_2 from#(mark(X)) -> c_11(from#(X)):10 -->_1 cons#(ok(X1),ok(X2)) -> c_10(cons#(X1,X2)):9 -->_1 cons#(mark(X1),X2) -> c_9(cons#(X1,X2)):8 4:S:active#(s(X)) -> c_4(s#(active(X)),active#(X)) -->_1 s#(ok(X)) -> c_19(s#(X)):17 -->_1 s#(mark(X)) -> c_18(s#(X)):16 -->_2 active#(sel(s(X),cons(Y,Z))) -> c_8(sel#(X,Z)):7 -->_2 active#(sel(X1,X2)) -> c_6(sel#(active(X1),X2),active#(X1)):6 -->_2 active#(sel(X1,X2)) -> c_5(sel#(X1,active(X2)),active#(X2)):5 -->_2 active#(sel(0(),cons(X,Y))) -> c_7():23 -->_2 active#(s(X)) -> c_4(s#(active(X)),active#(X)):4 -->_2 active#(from(X)) -> c_3(cons#(X,from(s(X))),from#(s(X)),s#(X)):3 -->_2 active#(from(X)) -> c_2(from#(active(X)),active#(X)):2 -->_2 active#(cons(X1,X2)) -> c_1(cons#(active(X1),X2),active#(X1)):1 5:S:active#(sel(X1,X2)) -> c_5(sel#(X1,active(X2)),active#(X2)) -->_1 sel#(ok(X1),ok(X2)) -> c_22(sel#(X1,X2)):20 -->_1 sel#(mark(X1),X2) -> c_21(sel#(X1,X2)):19 -->_1 sel#(X1,mark(X2)) -> c_20(sel#(X1,X2)):18 -->_2 active#(sel(s(X),cons(Y,Z))) -> c_8(sel#(X,Z)):7 -->_2 active#(sel(X1,X2)) -> c_6(sel#(active(X1),X2),active#(X1)):6 -->_2 active#(sel(0(),cons(X,Y))) -> c_7():23 -->_2 active#(sel(X1,X2)) -> c_5(sel#(X1,active(X2)),active#(X2)):5 -->_2 active#(s(X)) -> c_4(s#(active(X)),active#(X)):4 -->_2 active#(from(X)) -> c_3(cons#(X,from(s(X))),from#(s(X)),s#(X)):3 -->_2 active#(from(X)) -> c_2(from#(active(X)),active#(X)):2 -->_2 active#(cons(X1,X2)) -> c_1(cons#(active(X1),X2),active#(X1)):1 6:S:active#(sel(X1,X2)) -> c_6(sel#(active(X1),X2),active#(X1)) -->_1 sel#(ok(X1),ok(X2)) -> c_22(sel#(X1,X2)):20 -->_1 sel#(mark(X1),X2) -> c_21(sel#(X1,X2)):19 -->_1 sel#(X1,mark(X2)) -> c_20(sel#(X1,X2)):18 -->_2 active#(sel(s(X),cons(Y,Z))) -> c_8(sel#(X,Z)):7 -->_2 active#(sel(0(),cons(X,Y))) -> c_7():23 -->_2 active#(sel(X1,X2)) -> c_6(sel#(active(X1),X2),active#(X1)):6 -->_2 active#(sel(X1,X2)) -> c_5(sel#(X1,active(X2)),active#(X2)):5 -->_2 active#(s(X)) -> c_4(s#(active(X)),active#(X)):4 -->_2 active#(from(X)) -> c_3(cons#(X,from(s(X))),from#(s(X)),s#(X)):3 -->_2 active#(from(X)) -> c_2(from#(active(X)),active#(X)):2 -->_2 active#(cons(X1,X2)) -> c_1(cons#(active(X1),X2),active#(X1)):1 7:S:active#(sel(s(X),cons(Y,Z))) -> c_8(sel#(X,Z)) -->_1 sel#(ok(X1),ok(X2)) -> c_22(sel#(X1,X2)):20 -->_1 sel#(mark(X1),X2) -> c_21(sel#(X1,X2)):19 -->_1 sel#(X1,mark(X2)) -> c_20(sel#(X1,X2)):18 8:S:cons#(mark(X1),X2) -> c_9(cons#(X1,X2)) -->_1 cons#(ok(X1),ok(X2)) -> c_10(cons#(X1,X2)):9 -->_1 cons#(mark(X1),X2) -> c_9(cons#(X1,X2)):8 9:S:cons#(ok(X1),ok(X2)) -> c_10(cons#(X1,X2)) -->_1 cons#(ok(X1),ok(X2)) -> c_10(cons#(X1,X2)):9 -->_1 cons#(mark(X1),X2) -> c_9(cons#(X1,X2)):8 10:S:from#(mark(X)) -> c_11(from#(X)) -->_1 from#(ok(X)) -> c_12(from#(X)):11 -->_1 from#(mark(X)) -> c_11(from#(X)):10 11:S:from#(ok(X)) -> c_12(from#(X)) -->_1 from#(ok(X)) -> c_12(from#(X)):11 -->_1 from#(mark(X)) -> c_11(from#(X)):10 12:S:proper#(cons(X1,X2)) -> c_14(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) -->_3 proper#(sel(X1,X2)) -> c_17(sel#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):15 -->_2 proper#(sel(X1,X2)) -> c_17(sel#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):15 -->_3 proper#(s(X)) -> c_16(s#(proper(X)),proper#(X)):14 -->_2 proper#(s(X)) -> c_16(s#(proper(X)),proper#(X)):14 -->_3 proper#(from(X)) -> c_15(from#(proper(X)),proper#(X)):13 -->_2 proper#(from(X)) -> c_15(from#(proper(X)),proper#(X)):13 -->_3 proper#(0()) -> c_13():24 -->_2 proper#(0()) -> c_13():24 -->_3 proper#(cons(X1,X2)) -> c_14(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):12 -->_2 proper#(cons(X1,X2)) -> c_14(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):12 -->_1 cons#(ok(X1),ok(X2)) -> c_10(cons#(X1,X2)):9 -->_1 cons#(mark(X1),X2) -> c_9(cons#(X1,X2)):8 13:S:proper#(from(X)) -> c_15(from#(proper(X)),proper#(X)) -->_2 proper#(sel(X1,X2)) -> c_17(sel#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):15 -->_2 proper#(s(X)) -> c_16(s#(proper(X)),proper#(X)):14 -->_2 proper#(0()) -> c_13():24 -->_2 proper#(from(X)) -> c_15(from#(proper(X)),proper#(X)):13 -->_2 proper#(cons(X1,X2)) -> c_14(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):12 -->_1 from#(ok(X)) -> c_12(from#(X)):11 -->_1 from#(mark(X)) -> c_11(from#(X)):10 14:S:proper#(s(X)) -> c_16(s#(proper(X)),proper#(X)) -->_1 s#(ok(X)) -> c_19(s#(X)):17 -->_1 s#(mark(X)) -> c_18(s#(X)):16 -->_2 proper#(sel(X1,X2)) -> c_17(sel#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):15 -->_2 proper#(0()) -> c_13():24 -->_2 proper#(s(X)) -> c_16(s#(proper(X)),proper#(X)):14 -->_2 proper#(from(X)) -> c_15(from#(proper(X)),proper#(X)):13 -->_2 proper#(cons(X1,X2)) -> c_14(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):12 15:S:proper#(sel(X1,X2)) -> c_17(sel#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) -->_1 sel#(ok(X1),ok(X2)) -> c_22(sel#(X1,X2)):20 -->_1 sel#(mark(X1),X2) -> c_21(sel#(X1,X2)):19 -->_1 sel#(X1,mark(X2)) -> c_20(sel#(X1,X2)):18 -->_3 proper#(0()) -> c_13():24 -->_2 proper#(0()) -> c_13():24 -->_3 proper#(sel(X1,X2)) -> c_17(sel#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):15 -->_2 proper#(sel(X1,X2)) -> c_17(sel#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):15 -->_3 proper#(s(X)) -> c_16(s#(proper(X)),proper#(X)):14 -->_2 proper#(s(X)) -> c_16(s#(proper(X)),proper#(X)):14 -->_3 proper#(from(X)) -> c_15(from#(proper(X)),proper#(X)):13 -->_2 proper#(from(X)) -> c_15(from#(proper(X)),proper#(X)):13 -->_3 proper#(cons(X1,X2)) -> c_14(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):12 -->_2 proper#(cons(X1,X2)) -> c_14(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):12 16:S:s#(mark(X)) -> c_18(s#(X)) -->_1 s#(ok(X)) -> c_19(s#(X)):17 -->_1 s#(mark(X)) -> c_18(s#(X)):16 17:S:s#(ok(X)) -> c_19(s#(X)) -->_1 s#(ok(X)) -> c_19(s#(X)):17 -->_1 s#(mark(X)) -> c_18(s#(X)):16 18:S:sel#(X1,mark(X2)) -> c_20(sel#(X1,X2)) -->_1 sel#(ok(X1),ok(X2)) -> c_22(sel#(X1,X2)):20 -->_1 sel#(mark(X1),X2) -> c_21(sel#(X1,X2)):19 -->_1 sel#(X1,mark(X2)) -> c_20(sel#(X1,X2)):18 19:S:sel#(mark(X1),X2) -> c_21(sel#(X1,X2)) -->_1 sel#(ok(X1),ok(X2)) -> c_22(sel#(X1,X2)):20 -->_1 sel#(mark(X1),X2) -> c_21(sel#(X1,X2)):19 -->_1 sel#(X1,mark(X2)) -> c_20(sel#(X1,X2)):18 20:S:sel#(ok(X1),ok(X2)) -> c_22(sel#(X1,X2)) -->_1 sel#(ok(X1),ok(X2)) -> c_22(sel#(X1,X2)):20 -->_1 sel#(mark(X1),X2) -> c_21(sel#(X1,X2)):19 -->_1 sel#(X1,mark(X2)) -> c_20(sel#(X1,X2)):18 21:S:top#(mark(X)) -> c_23(top#(proper(X)),proper#(X)) -->_1 top#(ok(X)) -> c_24(top#(active(X)),active#(X)):22 -->_2 proper#(0()) -> c_13():24 -->_1 top#(mark(X)) -> c_23(top#(proper(X)),proper#(X)):21 -->_2 proper#(sel(X1,X2)) -> c_17(sel#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):15 -->_2 proper#(s(X)) -> c_16(s#(proper(X)),proper#(X)):14 -->_2 proper#(from(X)) -> c_15(from#(proper(X)),proper#(X)):13 -->_2 proper#(cons(X1,X2)) -> c_14(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):12 22:S:top#(ok(X)) -> c_24(top#(active(X)),active#(X)) -->_2 active#(sel(0(),cons(X,Y))) -> c_7():23 -->_1 top#(ok(X)) -> c_24(top#(active(X)),active#(X)):22 -->_1 top#(mark(X)) -> c_23(top#(proper(X)),proper#(X)):21 -->_2 active#(sel(s(X),cons(Y,Z))) -> c_8(sel#(X,Z)):7 -->_2 active#(sel(X1,X2)) -> c_6(sel#(active(X1),X2),active#(X1)):6 -->_2 active#(sel(X1,X2)) -> c_5(sel#(X1,active(X2)),active#(X2)):5 -->_2 active#(s(X)) -> c_4(s#(active(X)),active#(X)):4 -->_2 active#(from(X)) -> c_3(cons#(X,from(s(X))),from#(s(X)),s#(X)):3 -->_2 active#(from(X)) -> c_2(from#(active(X)),active#(X)):2 -->_2 active#(cons(X1,X2)) -> c_1(cons#(active(X1),X2),active#(X1)):1 23:W:active#(sel(0(),cons(X,Y))) -> c_7() 24:W:proper#(0()) -> c_13() The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 24: proper#(0()) -> c_13() 23: active#(sel(0(),cons(X,Y))) -> c_7() * Step 5: Failure MAYBE + Considered Problem: - Strict DPs: active#(cons(X1,X2)) -> c_1(cons#(active(X1),X2),active#(X1)) active#(from(X)) -> c_2(from#(active(X)),active#(X)) active#(from(X)) -> c_3(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) -> c_4(s#(active(X)),active#(X)) active#(sel(X1,X2)) -> c_5(sel#(X1,active(X2)),active#(X2)) active#(sel(X1,X2)) -> c_6(sel#(active(X1),X2),active#(X1)) active#(sel(s(X),cons(Y,Z))) -> c_8(sel#(X,Z)) cons#(mark(X1),X2) -> c_9(cons#(X1,X2)) cons#(ok(X1),ok(X2)) -> c_10(cons#(X1,X2)) from#(mark(X)) -> c_11(from#(X)) from#(ok(X)) -> c_12(from#(X)) proper#(cons(X1,X2)) -> c_14(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) proper#(from(X)) -> c_15(from#(proper(X)),proper#(X)) proper#(s(X)) -> c_16(s#(proper(X)),proper#(X)) proper#(sel(X1,X2)) -> c_17(sel#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) s#(mark(X)) -> c_18(s#(X)) s#(ok(X)) -> c_19(s#(X)) sel#(X1,mark(X2)) -> c_20(sel#(X1,X2)) sel#(mark(X1),X2) -> c_21(sel#(X1,X2)) sel#(ok(X1),ok(X2)) -> c_22(sel#(X1,X2)) top#(mark(X)) -> c_23(top#(proper(X)),proper#(X)) top#(ok(X)) -> c_24(top#(active(X)),active#(X)) - Weak TRS: active(cons(X1,X2)) -> cons(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) active(sel(X1,X2)) -> sel(X1,active(X2)) active(sel(X1,X2)) -> sel(active(X1),X2) active(sel(0(),cons(X,Y))) -> mark(X) active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(0()) -> ok(0()) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) proper(sel(X1,X2)) -> sel(proper(X1),proper(X2)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) sel(X1,mark(X2)) -> mark(sel(X1,X2)) sel(mark(X1),X2) -> mark(sel(X1,X2)) sel(ok(X1),ok(X2)) -> ok(sel(X1,X2)) - Signature: {active/1,cons/2,from/1,proper/1,s/1,sel/2,top/1,active#/1,cons#/2,from#/1,proper#/1,s#/1,sel#/2 ,top#/1} / {0/0,mark/1,ok/1,c_1/2,c_2/2,c_3/3,c_4/2,c_5/2,c_6/2,c_7/0,c_8/1,c_9/1,c_10/1,c_11/1,c_12/1 ,c_13/0,c_14/3,c_15/2,c_16/2,c_17/3,c_18/1,c_19/1,c_20/1,c_21/1,c_22/1,c_23/2,c_24/2} - Obligation: innermost runtime complexity wrt. defined symbols {active#,cons#,from#,proper#,s#,sel# ,top#} and constructors {0,mark,ok} + Applied Processor: EmptyProcessor + Details: The problem is still open. MAYBE