WORST_CASE(?,O(n^6)) * Step 1: DependencyPairs WORST_CASE(?,O(n^6)) + Considered Problem: - Strict TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1} / {mark/1,ok/1} - Obligation: innermost runtime complexity wrt. defined symbols {2nd,active,cons,cons1,from,proper,s ,top} and constructors {mark,ok} + Applied Processor: DependencyPairs {dpKind_ = DT} + Details: We add the following dependency tuples: Strict DPs 2nd#(mark(X)) -> c_1(2nd#(X)) 2nd#(ok(X)) -> c_2(2nd#(X)) active#(2nd(X)) -> c_3(2nd#(active(X)),active#(X)) active#(2nd(cons(X,X1))) -> c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) active#(2nd(cons1(X,cons(Y,Z)))) -> c_5() active#(cons(X1,X2)) -> c_6(cons#(active(X1),X2),active#(X1)) active#(cons1(X1,X2)) -> c_7(cons1#(X1,active(X2)),active#(X2)) active#(cons1(X1,X2)) -> c_8(cons1#(active(X1),X2),active#(X1)) active#(from(X)) -> c_9(from#(active(X)),active#(X)) active#(from(X)) -> c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) -> c_11(s#(active(X)),active#(X)) cons#(mark(X1),X2) -> c_12(cons#(X1,X2)) cons#(ok(X1),ok(X2)) -> c_13(cons#(X1,X2)) cons1#(X1,mark(X2)) -> c_14(cons1#(X1,X2)) cons1#(mark(X1),X2) -> c_15(cons1#(X1,X2)) cons1#(ok(X1),ok(X2)) -> c_16(cons1#(X1,X2)) from#(mark(X)) -> c_17(from#(X)) from#(ok(X)) -> c_18(from#(X)) proper#(2nd(X)) -> c_19(2nd#(proper(X)),proper#(X)) proper#(cons(X1,X2)) -> c_20(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) proper#(cons1(X1,X2)) -> c_21(cons1#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) proper#(from(X)) -> c_22(from#(proper(X)),proper#(X)) proper#(s(X)) -> c_23(s#(proper(X)),proper#(X)) s#(mark(X)) -> c_24(s#(X)) s#(ok(X)) -> c_25(s#(X)) top#(mark(X)) -> c_26(top#(proper(X)),proper#(X)) top#(ok(X)) -> c_27(top#(active(X)),active#(X)) Weak DPs and mark the set of starting terms. * Step 2: PredecessorEstimation WORST_CASE(?,O(n^6)) + Considered Problem: - Strict DPs: 2nd#(mark(X)) -> c_1(2nd#(X)) 2nd#(ok(X)) -> c_2(2nd#(X)) active#(2nd(X)) -> c_3(2nd#(active(X)),active#(X)) active#(2nd(cons(X,X1))) -> c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) active#(2nd(cons1(X,cons(Y,Z)))) -> c_5() active#(cons(X1,X2)) -> c_6(cons#(active(X1),X2),active#(X1)) active#(cons1(X1,X2)) -> c_7(cons1#(X1,active(X2)),active#(X2)) active#(cons1(X1,X2)) -> c_8(cons1#(active(X1),X2),active#(X1)) active#(from(X)) -> c_9(from#(active(X)),active#(X)) active#(from(X)) -> c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) -> c_11(s#(active(X)),active#(X)) cons#(mark(X1),X2) -> c_12(cons#(X1,X2)) cons#(ok(X1),ok(X2)) -> c_13(cons#(X1,X2)) cons1#(X1,mark(X2)) -> c_14(cons1#(X1,X2)) cons1#(mark(X1),X2) -> c_15(cons1#(X1,X2)) cons1#(ok(X1),ok(X2)) -> c_16(cons1#(X1,X2)) from#(mark(X)) -> c_17(from#(X)) from#(ok(X)) -> c_18(from#(X)) proper#(2nd(X)) -> c_19(2nd#(proper(X)),proper#(X)) proper#(cons(X1,X2)) -> c_20(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) proper#(cons1(X1,X2)) -> c_21(cons1#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) proper#(from(X)) -> c_22(from#(proper(X)),proper#(X)) proper#(s(X)) -> c_23(s#(proper(X)),proper#(X)) s#(mark(X)) -> c_24(s#(X)) s#(ok(X)) -> c_25(s#(X)) top#(mark(X)) -> c_26(top#(proper(X)),proper#(X)) top#(ok(X)) -> c_27(top#(active(X)),active#(X)) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/2,c_4/2,c_5/0,c_6/2,c_7/2,c_8/2,c_9/2,c_10/3,c_11/2,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/2,c_20/3,c_21/3,c_22/2,c_23/2,c_24/1,c_25/1,c_26/2,c_27/2} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {5} by application of Pre({5}) = {3,6,7,8,9,11,27}. Here rules are labelled as follows: 1: 2nd#(mark(X)) -> c_1(2nd#(X)) 2: 2nd#(ok(X)) -> c_2(2nd#(X)) 3: active#(2nd(X)) -> c_3(2nd#(active(X)),active#(X)) 4: active#(2nd(cons(X,X1))) -> c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) 5: active#(2nd(cons1(X,cons(Y,Z)))) -> c_5() 6: active#(cons(X1,X2)) -> c_6(cons#(active(X1),X2),active#(X1)) 7: active#(cons1(X1,X2)) -> c_7(cons1#(X1,active(X2)),active#(X2)) 8: active#(cons1(X1,X2)) -> c_8(cons1#(active(X1),X2),active#(X1)) 9: active#(from(X)) -> c_9(from#(active(X)),active#(X)) 10: active#(from(X)) -> c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) 11: active#(s(X)) -> c_11(s#(active(X)),active#(X)) 12: cons#(mark(X1),X2) -> c_12(cons#(X1,X2)) 13: cons#(ok(X1),ok(X2)) -> c_13(cons#(X1,X2)) 14: cons1#(X1,mark(X2)) -> c_14(cons1#(X1,X2)) 15: cons1#(mark(X1),X2) -> c_15(cons1#(X1,X2)) 16: cons1#(ok(X1),ok(X2)) -> c_16(cons1#(X1,X2)) 17: from#(mark(X)) -> c_17(from#(X)) 18: from#(ok(X)) -> c_18(from#(X)) 19: proper#(2nd(X)) -> c_19(2nd#(proper(X)),proper#(X)) 20: proper#(cons(X1,X2)) -> c_20(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) 21: proper#(cons1(X1,X2)) -> c_21(cons1#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) 22: proper#(from(X)) -> c_22(from#(proper(X)),proper#(X)) 23: proper#(s(X)) -> c_23(s#(proper(X)),proper#(X)) 24: s#(mark(X)) -> c_24(s#(X)) 25: s#(ok(X)) -> c_25(s#(X)) 26: top#(mark(X)) -> c_26(top#(proper(X)),proper#(X)) 27: top#(ok(X)) -> c_27(top#(active(X)),active#(X)) * Step 3: RemoveWeakSuffixes WORST_CASE(?,O(n^6)) + Considered Problem: - Strict DPs: 2nd#(mark(X)) -> c_1(2nd#(X)) 2nd#(ok(X)) -> c_2(2nd#(X)) active#(2nd(X)) -> c_3(2nd#(active(X)),active#(X)) active#(2nd(cons(X,X1))) -> c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) active#(cons(X1,X2)) -> c_6(cons#(active(X1),X2),active#(X1)) active#(cons1(X1,X2)) -> c_7(cons1#(X1,active(X2)),active#(X2)) active#(cons1(X1,X2)) -> c_8(cons1#(active(X1),X2),active#(X1)) active#(from(X)) -> c_9(from#(active(X)),active#(X)) active#(from(X)) -> c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) -> c_11(s#(active(X)),active#(X)) cons#(mark(X1),X2) -> c_12(cons#(X1,X2)) cons#(ok(X1),ok(X2)) -> c_13(cons#(X1,X2)) cons1#(X1,mark(X2)) -> c_14(cons1#(X1,X2)) cons1#(mark(X1),X2) -> c_15(cons1#(X1,X2)) cons1#(ok(X1),ok(X2)) -> c_16(cons1#(X1,X2)) from#(mark(X)) -> c_17(from#(X)) from#(ok(X)) -> c_18(from#(X)) proper#(2nd(X)) -> c_19(2nd#(proper(X)),proper#(X)) proper#(cons(X1,X2)) -> c_20(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) proper#(cons1(X1,X2)) -> c_21(cons1#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) proper#(from(X)) -> c_22(from#(proper(X)),proper#(X)) proper#(s(X)) -> c_23(s#(proper(X)),proper#(X)) s#(mark(X)) -> c_24(s#(X)) s#(ok(X)) -> c_25(s#(X)) top#(mark(X)) -> c_26(top#(proper(X)),proper#(X)) top#(ok(X)) -> c_27(top#(active(X)),active#(X)) - Weak DPs: active#(2nd(cons1(X,cons(Y,Z)))) -> c_5() - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/2,c_4/2,c_5/0,c_6/2,c_7/2,c_8/2,c_9/2,c_10/3,c_11/2,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/2,c_20/3,c_21/3,c_22/2,c_23/2,c_24/1,c_25/1,c_26/2,c_27/2} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:S:2nd#(mark(X)) -> c_1(2nd#(X)) -->_1 2nd#(ok(X)) -> c_2(2nd#(X)):2 -->_1 2nd#(mark(X)) -> c_1(2nd#(X)):1 2:S:2nd#(ok(X)) -> c_2(2nd#(X)) -->_1 2nd#(ok(X)) -> c_2(2nd#(X)):2 -->_1 2nd#(mark(X)) -> c_1(2nd#(X)):1 3:S:active#(2nd(X)) -> c_3(2nd#(active(X)),active#(X)) -->_2 active#(s(X)) -> c_11(s#(active(X)),active#(X)):10 -->_2 active#(from(X)) -> c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)):9 -->_2 active#(from(X)) -> c_9(from#(active(X)),active#(X)):8 -->_2 active#(cons1(X1,X2)) -> c_8(cons1#(active(X1),X2),active#(X1)):7 -->_2 active#(cons1(X1,X2)) -> c_7(cons1#(X1,active(X2)),active#(X2)):6 -->_2 active#(cons(X1,X2)) -> c_6(cons#(active(X1),X2),active#(X1)):5 -->_2 active#(2nd(cons(X,X1))) -> c_4(2nd#(cons1(X,X1)),cons1#(X,X1)):4 -->_2 active#(2nd(cons1(X,cons(Y,Z)))) -> c_5():27 -->_2 active#(2nd(X)) -> c_3(2nd#(active(X)),active#(X)):3 -->_1 2nd#(ok(X)) -> c_2(2nd#(X)):2 -->_1 2nd#(mark(X)) -> c_1(2nd#(X)):1 4:S:active#(2nd(cons(X,X1))) -> c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) -->_2 cons1#(ok(X1),ok(X2)) -> c_16(cons1#(X1,X2)):15 -->_2 cons1#(mark(X1),X2) -> c_15(cons1#(X1,X2)):14 -->_2 cons1#(X1,mark(X2)) -> c_14(cons1#(X1,X2)):13 -->_1 2nd#(ok(X)) -> c_2(2nd#(X)):2 -->_1 2nd#(mark(X)) -> c_1(2nd#(X)):1 5:S:active#(cons(X1,X2)) -> c_6(cons#(active(X1),X2),active#(X1)) -->_1 cons#(ok(X1),ok(X2)) -> c_13(cons#(X1,X2)):12 -->_1 cons#(mark(X1),X2) -> c_12(cons#(X1,X2)):11 -->_2 active#(s(X)) -> c_11(s#(active(X)),active#(X)):10 -->_2 active#(from(X)) -> c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)):9 -->_2 active#(from(X)) -> c_9(from#(active(X)),active#(X)):8 -->_2 active#(cons1(X1,X2)) -> c_8(cons1#(active(X1),X2),active#(X1)):7 -->_2 active#(cons1(X1,X2)) -> c_7(cons1#(X1,active(X2)),active#(X2)):6 -->_2 active#(2nd(cons1(X,cons(Y,Z)))) -> c_5():27 -->_2 active#(cons(X1,X2)) -> c_6(cons#(active(X1),X2),active#(X1)):5 -->_2 active#(2nd(cons(X,X1))) -> c_4(2nd#(cons1(X,X1)),cons1#(X,X1)):4 -->_2 active#(2nd(X)) -> c_3(2nd#(active(X)),active#(X)):3 6:S:active#(cons1(X1,X2)) -> c_7(cons1#(X1,active(X2)),active#(X2)) -->_1 cons1#(ok(X1),ok(X2)) -> c_16(cons1#(X1,X2)):15 -->_1 cons1#(mark(X1),X2) -> c_15(cons1#(X1,X2)):14 -->_1 cons1#(X1,mark(X2)) -> c_14(cons1#(X1,X2)):13 -->_2 active#(s(X)) -> c_11(s#(active(X)),active#(X)):10 -->_2 active#(from(X)) -> c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)):9 -->_2 active#(from(X)) -> c_9(from#(active(X)),active#(X)):8 -->_2 active#(cons1(X1,X2)) -> c_8(cons1#(active(X1),X2),active#(X1)):7 -->_2 active#(2nd(cons1(X,cons(Y,Z)))) -> c_5():27 -->_2 active#(cons1(X1,X2)) -> c_7(cons1#(X1,active(X2)),active#(X2)):6 -->_2 active#(cons(X1,X2)) -> c_6(cons#(active(X1),X2),active#(X1)):5 -->_2 active#(2nd(cons(X,X1))) -> c_4(2nd#(cons1(X,X1)),cons1#(X,X1)):4 -->_2 active#(2nd(X)) -> c_3(2nd#(active(X)),active#(X)):3 7:S:active#(cons1(X1,X2)) -> c_8(cons1#(active(X1),X2),active#(X1)) -->_1 cons1#(ok(X1),ok(X2)) -> c_16(cons1#(X1,X2)):15 -->_1 cons1#(mark(X1),X2) -> c_15(cons1#(X1,X2)):14 -->_1 cons1#(X1,mark(X2)) -> c_14(cons1#(X1,X2)):13 -->_2 active#(s(X)) -> c_11(s#(active(X)),active#(X)):10 -->_2 active#(from(X)) -> c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)):9 -->_2 active#(from(X)) -> c_9(from#(active(X)),active#(X)):8 -->_2 active#(2nd(cons1(X,cons(Y,Z)))) -> c_5():27 -->_2 active#(cons1(X1,X2)) -> c_8(cons1#(active(X1),X2),active#(X1)):7 -->_2 active#(cons1(X1,X2)) -> c_7(cons1#(X1,active(X2)),active#(X2)):6 -->_2 active#(cons(X1,X2)) -> c_6(cons#(active(X1),X2),active#(X1)):5 -->_2 active#(2nd(cons(X,X1))) -> c_4(2nd#(cons1(X,X1)),cons1#(X,X1)):4 -->_2 active#(2nd(X)) -> c_3(2nd#(active(X)),active#(X)):3 8:S:active#(from(X)) -> c_9(from#(active(X)),active#(X)) -->_1 from#(ok(X)) -> c_18(from#(X)):17 -->_1 from#(mark(X)) -> c_17(from#(X)):16 -->_2 active#(s(X)) -> c_11(s#(active(X)),active#(X)):10 -->_2 active#(from(X)) -> c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)):9 -->_2 active#(2nd(cons1(X,cons(Y,Z)))) -> c_5():27 -->_2 active#(from(X)) -> c_9(from#(active(X)),active#(X)):8 -->_2 active#(cons1(X1,X2)) -> c_8(cons1#(active(X1),X2),active#(X1)):7 -->_2 active#(cons1(X1,X2)) -> c_7(cons1#(X1,active(X2)),active#(X2)):6 -->_2 active#(cons(X1,X2)) -> c_6(cons#(active(X1),X2),active#(X1)):5 -->_2 active#(2nd(cons(X,X1))) -> c_4(2nd#(cons1(X,X1)),cons1#(X,X1)):4 -->_2 active#(2nd(X)) -> c_3(2nd#(active(X)),active#(X)):3 9:S:active#(from(X)) -> c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) -->_3 s#(ok(X)) -> c_25(s#(X)):24 -->_3 s#(mark(X)) -> c_24(s#(X)):23 -->_2 from#(ok(X)) -> c_18(from#(X)):17 -->_2 from#(mark(X)) -> c_17(from#(X)):16 -->_1 cons#(ok(X1),ok(X2)) -> c_13(cons#(X1,X2)):12 -->_1 cons#(mark(X1),X2) -> c_12(cons#(X1,X2)):11 10:S:active#(s(X)) -> c_11(s#(active(X)),active#(X)) -->_1 s#(ok(X)) -> c_25(s#(X)):24 -->_1 s#(mark(X)) -> c_24(s#(X)):23 -->_2 active#(2nd(cons1(X,cons(Y,Z)))) -> c_5():27 -->_2 active#(s(X)) -> c_11(s#(active(X)),active#(X)):10 -->_2 active#(from(X)) -> c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)):9 -->_2 active#(from(X)) -> c_9(from#(active(X)),active#(X)):8 -->_2 active#(cons1(X1,X2)) -> c_8(cons1#(active(X1),X2),active#(X1)):7 -->_2 active#(cons1(X1,X2)) -> c_7(cons1#(X1,active(X2)),active#(X2)):6 -->_2 active#(cons(X1,X2)) -> c_6(cons#(active(X1),X2),active#(X1)):5 -->_2 active#(2nd(cons(X,X1))) -> c_4(2nd#(cons1(X,X1)),cons1#(X,X1)):4 -->_2 active#(2nd(X)) -> c_3(2nd#(active(X)),active#(X)):3 11:S:cons#(mark(X1),X2) -> c_12(cons#(X1,X2)) -->_1 cons#(ok(X1),ok(X2)) -> c_13(cons#(X1,X2)):12 -->_1 cons#(mark(X1),X2) -> c_12(cons#(X1,X2)):11 12:S:cons#(ok(X1),ok(X2)) -> c_13(cons#(X1,X2)) -->_1 cons#(ok(X1),ok(X2)) -> c_13(cons#(X1,X2)):12 -->_1 cons#(mark(X1),X2) -> c_12(cons#(X1,X2)):11 13:S:cons1#(X1,mark(X2)) -> c_14(cons1#(X1,X2)) -->_1 cons1#(ok(X1),ok(X2)) -> c_16(cons1#(X1,X2)):15 -->_1 cons1#(mark(X1),X2) -> c_15(cons1#(X1,X2)):14 -->_1 cons1#(X1,mark(X2)) -> c_14(cons1#(X1,X2)):13 14:S:cons1#(mark(X1),X2) -> c_15(cons1#(X1,X2)) -->_1 cons1#(ok(X1),ok(X2)) -> c_16(cons1#(X1,X2)):15 -->_1 cons1#(mark(X1),X2) -> c_15(cons1#(X1,X2)):14 -->_1 cons1#(X1,mark(X2)) -> c_14(cons1#(X1,X2)):13 15:S:cons1#(ok(X1),ok(X2)) -> c_16(cons1#(X1,X2)) -->_1 cons1#(ok(X1),ok(X2)) -> c_16(cons1#(X1,X2)):15 -->_1 cons1#(mark(X1),X2) -> c_15(cons1#(X1,X2)):14 -->_1 cons1#(X1,mark(X2)) -> c_14(cons1#(X1,X2)):13 16:S:from#(mark(X)) -> c_17(from#(X)) -->_1 from#(ok(X)) -> c_18(from#(X)):17 -->_1 from#(mark(X)) -> c_17(from#(X)):16 17:S:from#(ok(X)) -> c_18(from#(X)) -->_1 from#(ok(X)) -> c_18(from#(X)):17 -->_1 from#(mark(X)) -> c_17(from#(X)):16 18:S:proper#(2nd(X)) -> c_19(2nd#(proper(X)),proper#(X)) -->_2 proper#(s(X)) -> c_23(s#(proper(X)),proper#(X)):22 -->_2 proper#(from(X)) -> c_22(from#(proper(X)),proper#(X)):21 -->_2 proper#(cons1(X1,X2)) -> c_21(cons1#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):20 -->_2 proper#(cons(X1,X2)) -> c_20(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):19 -->_2 proper#(2nd(X)) -> c_19(2nd#(proper(X)),proper#(X)):18 -->_1 2nd#(ok(X)) -> c_2(2nd#(X)):2 -->_1 2nd#(mark(X)) -> c_1(2nd#(X)):1 19:S:proper#(cons(X1,X2)) -> c_20(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) -->_3 proper#(s(X)) -> c_23(s#(proper(X)),proper#(X)):22 -->_2 proper#(s(X)) -> c_23(s#(proper(X)),proper#(X)):22 -->_3 proper#(from(X)) -> c_22(from#(proper(X)),proper#(X)):21 -->_2 proper#(from(X)) -> c_22(from#(proper(X)),proper#(X)):21 -->_3 proper#(cons1(X1,X2)) -> c_21(cons1#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):20 -->_2 proper#(cons1(X1,X2)) -> c_21(cons1#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):20 -->_3 proper#(cons(X1,X2)) -> c_20(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):19 -->_2 proper#(cons(X1,X2)) -> c_20(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):19 -->_3 proper#(2nd(X)) -> c_19(2nd#(proper(X)),proper#(X)):18 -->_2 proper#(2nd(X)) -> c_19(2nd#(proper(X)),proper#(X)):18 -->_1 cons#(ok(X1),ok(X2)) -> c_13(cons#(X1,X2)):12 -->_1 cons#(mark(X1),X2) -> c_12(cons#(X1,X2)):11 20:S:proper#(cons1(X1,X2)) -> c_21(cons1#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) -->_3 proper#(s(X)) -> c_23(s#(proper(X)),proper#(X)):22 -->_2 proper#(s(X)) -> c_23(s#(proper(X)),proper#(X)):22 -->_3 proper#(from(X)) -> c_22(from#(proper(X)),proper#(X)):21 -->_2 proper#(from(X)) -> c_22(from#(proper(X)),proper#(X)):21 -->_3 proper#(cons1(X1,X2)) -> c_21(cons1#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):20 -->_2 proper#(cons1(X1,X2)) -> c_21(cons1#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):20 -->_3 proper#(cons(X1,X2)) -> c_20(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):19 -->_2 proper#(cons(X1,X2)) -> c_20(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):19 -->_3 proper#(2nd(X)) -> c_19(2nd#(proper(X)),proper#(X)):18 -->_2 proper#(2nd(X)) -> c_19(2nd#(proper(X)),proper#(X)):18 -->_1 cons1#(ok(X1),ok(X2)) -> c_16(cons1#(X1,X2)):15 -->_1 cons1#(mark(X1),X2) -> c_15(cons1#(X1,X2)):14 -->_1 cons1#(X1,mark(X2)) -> c_14(cons1#(X1,X2)):13 21:S:proper#(from(X)) -> c_22(from#(proper(X)),proper#(X)) -->_2 proper#(s(X)) -> c_23(s#(proper(X)),proper#(X)):22 -->_2 proper#(from(X)) -> c_22(from#(proper(X)),proper#(X)):21 -->_2 proper#(cons1(X1,X2)) -> c_21(cons1#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):20 -->_2 proper#(cons(X1,X2)) -> c_20(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):19 -->_2 proper#(2nd(X)) -> c_19(2nd#(proper(X)),proper#(X)):18 -->_1 from#(ok(X)) -> c_18(from#(X)):17 -->_1 from#(mark(X)) -> c_17(from#(X)):16 22:S:proper#(s(X)) -> c_23(s#(proper(X)),proper#(X)) -->_1 s#(ok(X)) -> c_25(s#(X)):24 -->_1 s#(mark(X)) -> c_24(s#(X)):23 -->_2 proper#(s(X)) -> c_23(s#(proper(X)),proper#(X)):22 -->_2 proper#(from(X)) -> c_22(from#(proper(X)),proper#(X)):21 -->_2 proper#(cons1(X1,X2)) -> c_21(cons1#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):20 -->_2 proper#(cons(X1,X2)) -> c_20(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):19 -->_2 proper#(2nd(X)) -> c_19(2nd#(proper(X)),proper#(X)):18 23:S:s#(mark(X)) -> c_24(s#(X)) -->_1 s#(ok(X)) -> c_25(s#(X)):24 -->_1 s#(mark(X)) -> c_24(s#(X)):23 24:S:s#(ok(X)) -> c_25(s#(X)) -->_1 s#(ok(X)) -> c_25(s#(X)):24 -->_1 s#(mark(X)) -> c_24(s#(X)):23 25:S:top#(mark(X)) -> c_26(top#(proper(X)),proper#(X)) -->_1 top#(ok(X)) -> c_27(top#(active(X)),active#(X)):26 -->_1 top#(mark(X)) -> c_26(top#(proper(X)),proper#(X)):25 -->_2 proper#(s(X)) -> c_23(s#(proper(X)),proper#(X)):22 -->_2 proper#(from(X)) -> c_22(from#(proper(X)),proper#(X)):21 -->_2 proper#(cons1(X1,X2)) -> c_21(cons1#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):20 -->_2 proper#(cons(X1,X2)) -> c_20(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):19 -->_2 proper#(2nd(X)) -> c_19(2nd#(proper(X)),proper#(X)):18 26:S:top#(ok(X)) -> c_27(top#(active(X)),active#(X)) -->_2 active#(2nd(cons1(X,cons(Y,Z)))) -> c_5():27 -->_1 top#(ok(X)) -> c_27(top#(active(X)),active#(X)):26 -->_1 top#(mark(X)) -> c_26(top#(proper(X)),proper#(X)):25 -->_2 active#(s(X)) -> c_11(s#(active(X)),active#(X)):10 -->_2 active#(from(X)) -> c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)):9 -->_2 active#(from(X)) -> c_9(from#(active(X)),active#(X)):8 -->_2 active#(cons1(X1,X2)) -> c_8(cons1#(active(X1),X2),active#(X1)):7 -->_2 active#(cons1(X1,X2)) -> c_7(cons1#(X1,active(X2)),active#(X2)):6 -->_2 active#(cons(X1,X2)) -> c_6(cons#(active(X1),X2),active#(X1)):5 -->_2 active#(2nd(cons(X,X1))) -> c_4(2nd#(cons1(X,X1)),cons1#(X,X1)):4 -->_2 active#(2nd(X)) -> c_3(2nd#(active(X)),active#(X)):3 27:W:active#(2nd(cons1(X,cons(Y,Z)))) -> c_5() The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 27: active#(2nd(cons1(X,cons(Y,Z)))) -> c_5() * Step 4: UsableRules WORST_CASE(?,O(n^6)) + Considered Problem: - Strict DPs: 2nd#(mark(X)) -> c_1(2nd#(X)) 2nd#(ok(X)) -> c_2(2nd#(X)) active#(2nd(X)) -> c_3(2nd#(active(X)),active#(X)) active#(2nd(cons(X,X1))) -> c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) active#(cons(X1,X2)) -> c_6(cons#(active(X1),X2),active#(X1)) active#(cons1(X1,X2)) -> c_7(cons1#(X1,active(X2)),active#(X2)) active#(cons1(X1,X2)) -> c_8(cons1#(active(X1),X2),active#(X1)) active#(from(X)) -> c_9(from#(active(X)),active#(X)) active#(from(X)) -> c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) -> c_11(s#(active(X)),active#(X)) cons#(mark(X1),X2) -> c_12(cons#(X1,X2)) cons#(ok(X1),ok(X2)) -> c_13(cons#(X1,X2)) cons1#(X1,mark(X2)) -> c_14(cons1#(X1,X2)) cons1#(mark(X1),X2) -> c_15(cons1#(X1,X2)) cons1#(ok(X1),ok(X2)) -> c_16(cons1#(X1,X2)) from#(mark(X)) -> c_17(from#(X)) from#(ok(X)) -> c_18(from#(X)) proper#(2nd(X)) -> c_19(2nd#(proper(X)),proper#(X)) proper#(cons(X1,X2)) -> c_20(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) proper#(cons1(X1,X2)) -> c_21(cons1#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) proper#(from(X)) -> c_22(from#(proper(X)),proper#(X)) proper#(s(X)) -> c_23(s#(proper(X)),proper#(X)) s#(mark(X)) -> c_24(s#(X)) s#(ok(X)) -> c_25(s#(X)) top#(mark(X)) -> c_26(top#(proper(X)),proper#(X)) top#(ok(X)) -> c_27(top#(active(X)),active#(X)) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/2,c_4/2,c_5/0,c_6/2,c_7/2,c_8/2,c_9/2,c_10/3,c_11/2,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/2,c_20/3,c_21/3,c_22/2,c_23/2,c_24/1,c_25/1,c_26/2,c_27/2} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: UsableRules + Details: We replace rewrite rules by usable rules: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) 2nd#(mark(X)) -> c_1(2nd#(X)) 2nd#(ok(X)) -> c_2(2nd#(X)) active#(2nd(X)) -> c_3(2nd#(active(X)),active#(X)) active#(2nd(cons(X,X1))) -> c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) active#(cons(X1,X2)) -> c_6(cons#(active(X1),X2),active#(X1)) active#(cons1(X1,X2)) -> c_7(cons1#(X1,active(X2)),active#(X2)) active#(cons1(X1,X2)) -> c_8(cons1#(active(X1),X2),active#(X1)) active#(from(X)) -> c_9(from#(active(X)),active#(X)) active#(from(X)) -> c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) -> c_11(s#(active(X)),active#(X)) cons#(mark(X1),X2) -> c_12(cons#(X1,X2)) cons#(ok(X1),ok(X2)) -> c_13(cons#(X1,X2)) cons1#(X1,mark(X2)) -> c_14(cons1#(X1,X2)) cons1#(mark(X1),X2) -> c_15(cons1#(X1,X2)) cons1#(ok(X1),ok(X2)) -> c_16(cons1#(X1,X2)) from#(mark(X)) -> c_17(from#(X)) from#(ok(X)) -> c_18(from#(X)) proper#(2nd(X)) -> c_19(2nd#(proper(X)),proper#(X)) proper#(cons(X1,X2)) -> c_20(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) proper#(cons1(X1,X2)) -> c_21(cons1#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) proper#(from(X)) -> c_22(from#(proper(X)),proper#(X)) proper#(s(X)) -> c_23(s#(proper(X)),proper#(X)) s#(mark(X)) -> c_24(s#(X)) s#(ok(X)) -> c_25(s#(X)) top#(mark(X)) -> c_26(top#(proper(X)),proper#(X)) top#(ok(X)) -> c_27(top#(active(X)),active#(X)) * Step 5: DecomposeDG WORST_CASE(?,O(n^6)) + Considered Problem: - Strict DPs: 2nd#(mark(X)) -> c_1(2nd#(X)) 2nd#(ok(X)) -> c_2(2nd#(X)) active#(2nd(X)) -> c_3(2nd#(active(X)),active#(X)) active#(2nd(cons(X,X1))) -> c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) active#(cons(X1,X2)) -> c_6(cons#(active(X1),X2),active#(X1)) active#(cons1(X1,X2)) -> c_7(cons1#(X1,active(X2)),active#(X2)) active#(cons1(X1,X2)) -> c_8(cons1#(active(X1),X2),active#(X1)) active#(from(X)) -> c_9(from#(active(X)),active#(X)) active#(from(X)) -> c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) -> c_11(s#(active(X)),active#(X)) cons#(mark(X1),X2) -> c_12(cons#(X1,X2)) cons#(ok(X1),ok(X2)) -> c_13(cons#(X1,X2)) cons1#(X1,mark(X2)) -> c_14(cons1#(X1,X2)) cons1#(mark(X1),X2) -> c_15(cons1#(X1,X2)) cons1#(ok(X1),ok(X2)) -> c_16(cons1#(X1,X2)) from#(mark(X)) -> c_17(from#(X)) from#(ok(X)) -> c_18(from#(X)) proper#(2nd(X)) -> c_19(2nd#(proper(X)),proper#(X)) proper#(cons(X1,X2)) -> c_20(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) proper#(cons1(X1,X2)) -> c_21(cons1#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) proper#(from(X)) -> c_22(from#(proper(X)),proper#(X)) proper#(s(X)) -> c_23(s#(proper(X)),proper#(X)) s#(mark(X)) -> c_24(s#(X)) s#(ok(X)) -> c_25(s#(X)) top#(mark(X)) -> c_26(top#(proper(X)),proper#(X)) top#(ok(X)) -> c_27(top#(active(X)),active#(X)) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/2,c_4/2,c_5/0,c_6/2,c_7/2,c_8/2,c_9/2,c_10/3,c_11/2,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/2,c_20/3,c_21/3,c_22/2,c_23/2,c_24/1,c_25/1,c_26/2,c_27/2} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: DecomposeDG {onSelection = all below first cut in WDG, onUpper = Nothing, onLower = Nothing} + Details: We decompose the input problem according to the dependency graph into the upper component top#(mark(X)) -> c_26(top#(proper(X)),proper#(X)) top#(ok(X)) -> c_27(top#(active(X)),active#(X)) and a lower component 2nd#(mark(X)) -> c_1(2nd#(X)) 2nd#(ok(X)) -> c_2(2nd#(X)) active#(2nd(X)) -> c_3(2nd#(active(X)),active#(X)) active#(2nd(cons(X,X1))) -> c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) active#(cons(X1,X2)) -> c_6(cons#(active(X1),X2),active#(X1)) active#(cons1(X1,X2)) -> c_7(cons1#(X1,active(X2)),active#(X2)) active#(cons1(X1,X2)) -> c_8(cons1#(active(X1),X2),active#(X1)) active#(from(X)) -> c_9(from#(active(X)),active#(X)) active#(from(X)) -> c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) -> c_11(s#(active(X)),active#(X)) cons#(mark(X1),X2) -> c_12(cons#(X1,X2)) cons#(ok(X1),ok(X2)) -> c_13(cons#(X1,X2)) cons1#(X1,mark(X2)) -> c_14(cons1#(X1,X2)) cons1#(mark(X1),X2) -> c_15(cons1#(X1,X2)) cons1#(ok(X1),ok(X2)) -> c_16(cons1#(X1,X2)) from#(mark(X)) -> c_17(from#(X)) from#(ok(X)) -> c_18(from#(X)) proper#(2nd(X)) -> c_19(2nd#(proper(X)),proper#(X)) proper#(cons(X1,X2)) -> c_20(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) proper#(cons1(X1,X2)) -> c_21(cons1#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) proper#(from(X)) -> c_22(from#(proper(X)),proper#(X)) proper#(s(X)) -> c_23(s#(proper(X)),proper#(X)) s#(mark(X)) -> c_24(s#(X)) s#(ok(X)) -> c_25(s#(X)) Further, following extension rules are added to the lower component. top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) ** Step 5.a:1: SimplifyRHS WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: top#(mark(X)) -> c_26(top#(proper(X)),proper#(X)) top#(ok(X)) -> c_27(top#(active(X)),active#(X)) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/2,c_4/2,c_5/0,c_6/2,c_7/2,c_8/2,c_9/2,c_10/3,c_11/2,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/2,c_20/3,c_21/3,c_22/2,c_23/2,c_24/1,c_25/1,c_26/2,c_27/2} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: SimplifyRHS + Details: Consider the dependency graph 1:S:top#(mark(X)) -> c_26(top#(proper(X)),proper#(X)) -->_1 top#(ok(X)) -> c_27(top#(active(X)),active#(X)):2 -->_1 top#(mark(X)) -> c_26(top#(proper(X)),proper#(X)):1 2:S:top#(ok(X)) -> c_27(top#(active(X)),active#(X)) -->_1 top#(ok(X)) -> c_27(top#(active(X)),active#(X)):2 -->_1 top#(mark(X)) -> c_26(top#(proper(X)),proper#(X)):1 Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified: top#(mark(X)) -> c_26(top#(proper(X))) top#(ok(X)) -> c_27(top#(active(X))) ** Step 5.a:2: NaturalMI WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: top#(mark(X)) -> c_26(top#(proper(X))) top#(ok(X)) -> c_27(top#(active(X))) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/2,c_4/2,c_5/0,c_6/2,c_7/2,c_8/2,c_9/2,c_10/3,c_11/2,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/2,c_20/3,c_21/3,c_22/2,c_23/2,c_24/1,c_25/1,c_26/1,c_27/1} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(c_26) = {1}, uargs(c_27) = {1} Following symbols are considered usable: {2nd,active,cons,cons1,from,proper,s,2nd#,active#,cons#,cons1#,from#,proper#,s#,top#} TcT has computed the following interpretation: p(2nd) = [2] x1 + [0] p(active) = [1] x1 + [0] p(cons) = [1] x2 + [0] p(cons1) = [4] x2 + [0] p(from) = [4] x1 + [0] p(mark) = [0] p(ok) = [1] x1 + [1] p(proper) = [0] p(s) = [2] x1 + [0] p(top) = [0] p(2nd#) = [0] p(active#) = [1] x1 + [0] p(cons#) = [0] p(cons1#) = [1] x2 + [1] p(from#) = [0] p(proper#) = [2] x1 + [0] p(s#) = [0] p(top#) = [1] x1 + [0] p(c_1) = [2] p(c_2) = [1] p(c_3) = [0] p(c_4) = [1] p(c_5) = [0] p(c_6) = [1] p(c_7) = [1] x2 + [2] p(c_8) = [4] x1 + [1] p(c_9) = [1] x2 + [2] p(c_10) = [0] p(c_11) = [4] x2 + [2] p(c_12) = [4] x1 + [0] p(c_13) = [1] p(c_14) = [0] p(c_15) = [4] x1 + [1] p(c_16) = [4] x1 + [2] p(c_17) = [0] p(c_18) = [1] x1 + [4] p(c_19) = [1] x1 + [1] x2 + [0] p(c_20) = [1] x1 + [1] x2 + [4] x3 + [0] p(c_21) = [1] x2 + [2] x3 + [1] p(c_22) = [4] x1 + [2] p(c_23) = [1] x1 + [0] p(c_24) = [2] x1 + [0] p(c_25) = [4] p(c_26) = [2] x1 + [0] p(c_27) = [1] x1 + [0] Following rules are strictly oriented: top#(ok(X)) = [1] X + [1] > [1] X + [0] = c_27(top#(active(X))) Following rules are (at-least) weakly oriented: top#(mark(X)) = [0] >= [0] = c_26(top#(proper(X))) 2nd(mark(X)) = [0] >= [0] = mark(2nd(X)) 2nd(ok(X)) = [2] X + [2] >= [2] X + [1] = ok(2nd(X)) active(2nd(X)) = [2] X + [0] >= [2] X + [0] = 2nd(active(X)) active(2nd(cons(X,X1))) = [2] X1 + [0] >= [0] = mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) = [8] Z + [0] >= [0] = mark(Y) active(cons(X1,X2)) = [1] X2 + [0] >= [1] X2 + [0] = cons(active(X1),X2) active(cons1(X1,X2)) = [4] X2 + [0] >= [4] X2 + [0] = cons1(X1,active(X2)) active(cons1(X1,X2)) = [4] X2 + [0] >= [4] X2 + [0] = cons1(active(X1),X2) active(from(X)) = [4] X + [0] >= [4] X + [0] = from(active(X)) active(from(X)) = [4] X + [0] >= [0] = mark(cons(X,from(s(X)))) active(s(X)) = [2] X + [0] >= [2] X + [0] = s(active(X)) cons(mark(X1),X2) = [1] X2 + [0] >= [0] = mark(cons(X1,X2)) cons(ok(X1),ok(X2)) = [1] X2 + [1] >= [1] X2 + [1] = ok(cons(X1,X2)) cons1(X1,mark(X2)) = [0] >= [0] = mark(cons1(X1,X2)) cons1(mark(X1),X2) = [4] X2 + [0] >= [0] = mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) = [4] X2 + [4] >= [4] X2 + [1] = ok(cons1(X1,X2)) from(mark(X)) = [0] >= [0] = mark(from(X)) from(ok(X)) = [4] X + [4] >= [4] X + [1] = ok(from(X)) proper(2nd(X)) = [0] >= [0] = 2nd(proper(X)) proper(cons(X1,X2)) = [0] >= [0] = cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) = [0] >= [0] = cons1(proper(X1),proper(X2)) proper(from(X)) = [0] >= [0] = from(proper(X)) proper(s(X)) = [0] >= [0] = s(proper(X)) s(mark(X)) = [0] >= [0] = mark(s(X)) s(ok(X)) = [2] X + [2] >= [2] X + [1] = ok(s(X)) ** Step 5.a:3: NaturalMI WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: top#(mark(X)) -> c_26(top#(proper(X))) - Weak DPs: top#(ok(X)) -> c_27(top#(active(X))) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/2,c_4/2,c_5/0,c_6/2,c_7/2,c_8/2,c_9/2,c_10/3,c_11/2,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/2,c_20/3,c_21/3,c_22/2,c_23/2,c_24/1,c_25/1,c_26/1,c_27/1} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(c_26) = {1}, uargs(c_27) = {1} Following symbols are considered usable: {2nd,active,cons,cons1,from,proper,s,2nd#,active#,cons#,cons1#,from#,proper#,s#,top#} TcT has computed the following interpretation: p(2nd) = [1] x1 + [0] p(active) = [1] x1 + [1] p(cons) = [1] x1 + [0] p(cons1) = [1] x1 + [1] x2 + [0] p(from) = [1] x1 + [0] p(mark) = [1] p(ok) = [1] x1 + [2] p(proper) = [0] p(s) = [1] x1 + [0] p(top) = [0] p(2nd#) = [0] p(active#) = [0] p(cons#) = [0] p(cons1#) = [0] p(from#) = [0] p(proper#) = [0] p(s#) = [0] p(top#) = [4] x1 + [2] p(c_1) = [0] p(c_2) = [0] p(c_3) = [0] p(c_4) = [0] p(c_5) = [0] p(c_6) = [0] p(c_7) = [0] p(c_8) = [2] x2 + [0] p(c_9) = [2] p(c_10) = [0] p(c_11) = [1] p(c_12) = [1] x1 + [0] p(c_13) = [2] x1 + [0] p(c_14) = [2] p(c_15) = [1] x1 + [0] p(c_16) = [0] p(c_17) = [0] p(c_18) = [2] p(c_19) = [1] p(c_20) = [0] p(c_21) = [4] x3 + [0] p(c_22) = [1] x1 + [1] x2 + [0] p(c_23) = [4] x1 + [0] p(c_24) = [0] p(c_25) = [1] p(c_26) = [2] x1 + [0] p(c_27) = [1] x1 + [2] Following rules are strictly oriented: top#(mark(X)) = [6] > [4] = c_26(top#(proper(X))) Following rules are (at-least) weakly oriented: top#(ok(X)) = [4] X + [10] >= [4] X + [8] = c_27(top#(active(X))) 2nd(mark(X)) = [1] >= [1] = mark(2nd(X)) 2nd(ok(X)) = [1] X + [2] >= [1] X + [2] = ok(2nd(X)) active(2nd(X)) = [1] X + [1] >= [1] X + [1] = 2nd(active(X)) active(2nd(cons(X,X1))) = [1] X + [1] >= [1] = mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) = [1] X + [1] Y + [1] >= [1] = mark(Y) active(cons(X1,X2)) = [1] X1 + [1] >= [1] X1 + [1] = cons(active(X1),X2) active(cons1(X1,X2)) = [1] X1 + [1] X2 + [1] >= [1] X1 + [1] X2 + [1] = cons1(X1,active(X2)) active(cons1(X1,X2)) = [1] X1 + [1] X2 + [1] >= [1] X1 + [1] X2 + [1] = cons1(active(X1),X2) active(from(X)) = [1] X + [1] >= [1] X + [1] = from(active(X)) active(from(X)) = [1] X + [1] >= [1] = mark(cons(X,from(s(X)))) active(s(X)) = [1] X + [1] >= [1] X + [1] = s(active(X)) cons(mark(X1),X2) = [1] >= [1] = mark(cons(X1,X2)) cons(ok(X1),ok(X2)) = [1] X1 + [2] >= [1] X1 + [2] = ok(cons(X1,X2)) cons1(X1,mark(X2)) = [1] X1 + [1] >= [1] = mark(cons1(X1,X2)) cons1(mark(X1),X2) = [1] X2 + [1] >= [1] = mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) = [1] X1 + [1] X2 + [4] >= [1] X1 + [1] X2 + [2] = ok(cons1(X1,X2)) from(mark(X)) = [1] >= [1] = mark(from(X)) from(ok(X)) = [1] X + [2] >= [1] X + [2] = ok(from(X)) proper(2nd(X)) = [0] >= [0] = 2nd(proper(X)) proper(cons(X1,X2)) = [0] >= [0] = cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) = [0] >= [0] = cons1(proper(X1),proper(X2)) proper(from(X)) = [0] >= [0] = from(proper(X)) proper(s(X)) = [0] >= [0] = s(proper(X)) s(mark(X)) = [1] >= [1] = mark(s(X)) s(ok(X)) = [1] X + [2] >= [1] X + [2] = ok(s(X)) ** Step 5.a:4: EmptyProcessor WORST_CASE(?,O(1)) + Considered Problem: - Weak DPs: top#(mark(X)) -> c_26(top#(proper(X))) top#(ok(X)) -> c_27(top#(active(X))) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/2,c_4/2,c_5/0,c_6/2,c_7/2,c_8/2,c_9/2,c_10/3,c_11/2,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/2,c_20/3,c_21/3,c_22/2,c_23/2,c_24/1,c_25/1,c_26/1,c_27/1} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: EmptyProcessor + Details: The problem is already closed. The intended complexity is O(1). ** Step 5.b:1: DecomposeDG WORST_CASE(?,O(n^5)) + Considered Problem: - Strict DPs: 2nd#(mark(X)) -> c_1(2nd#(X)) 2nd#(ok(X)) -> c_2(2nd#(X)) active#(2nd(X)) -> c_3(2nd#(active(X)),active#(X)) active#(2nd(cons(X,X1))) -> c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) active#(cons(X1,X2)) -> c_6(cons#(active(X1),X2),active#(X1)) active#(cons1(X1,X2)) -> c_7(cons1#(X1,active(X2)),active#(X2)) active#(cons1(X1,X2)) -> c_8(cons1#(active(X1),X2),active#(X1)) active#(from(X)) -> c_9(from#(active(X)),active#(X)) active#(from(X)) -> c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) -> c_11(s#(active(X)),active#(X)) cons#(mark(X1),X2) -> c_12(cons#(X1,X2)) cons#(ok(X1),ok(X2)) -> c_13(cons#(X1,X2)) cons1#(X1,mark(X2)) -> c_14(cons1#(X1,X2)) cons1#(mark(X1),X2) -> c_15(cons1#(X1,X2)) cons1#(ok(X1),ok(X2)) -> c_16(cons1#(X1,X2)) from#(mark(X)) -> c_17(from#(X)) from#(ok(X)) -> c_18(from#(X)) proper#(2nd(X)) -> c_19(2nd#(proper(X)),proper#(X)) proper#(cons(X1,X2)) -> c_20(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) proper#(cons1(X1,X2)) -> c_21(cons1#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) proper#(from(X)) -> c_22(from#(proper(X)),proper#(X)) proper#(s(X)) -> c_23(s#(proper(X)),proper#(X)) s#(mark(X)) -> c_24(s#(X)) s#(ok(X)) -> c_25(s#(X)) - Weak DPs: top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/2,c_4/2,c_5/0,c_6/2,c_7/2,c_8/2,c_9/2,c_10/3,c_11/2,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/2,c_20/3,c_21/3,c_22/2,c_23/2,c_24/1,c_25/1,c_26/2,c_27/2} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: DecomposeDG {onSelection = all below first cut in WDG, onUpper = Nothing, onLower = Nothing} + Details: We decompose the input problem according to the dependency graph into the upper component active#(2nd(X)) -> c_3(2nd#(active(X)),active#(X)) active#(cons(X1,X2)) -> c_6(cons#(active(X1),X2),active#(X1)) active#(cons1(X1,X2)) -> c_7(cons1#(X1,active(X2)),active#(X2)) active#(cons1(X1,X2)) -> c_8(cons1#(active(X1),X2),active#(X1)) active#(from(X)) -> c_9(from#(active(X)),active#(X)) active#(s(X)) -> c_11(s#(active(X)),active#(X)) proper#(2nd(X)) -> c_19(2nd#(proper(X)),proper#(X)) proper#(cons(X1,X2)) -> c_20(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) proper#(cons1(X1,X2)) -> c_21(cons1#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) proper#(from(X)) -> c_22(from#(proper(X)),proper#(X)) proper#(s(X)) -> c_23(s#(proper(X)),proper#(X)) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) and a lower component 2nd#(mark(X)) -> c_1(2nd#(X)) 2nd#(ok(X)) -> c_2(2nd#(X)) active#(2nd(cons(X,X1))) -> c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) active#(from(X)) -> c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) cons#(mark(X1),X2) -> c_12(cons#(X1,X2)) cons#(ok(X1),ok(X2)) -> c_13(cons#(X1,X2)) cons1#(X1,mark(X2)) -> c_14(cons1#(X1,X2)) cons1#(mark(X1),X2) -> c_15(cons1#(X1,X2)) cons1#(ok(X1),ok(X2)) -> c_16(cons1#(X1,X2)) from#(mark(X)) -> c_17(from#(X)) from#(ok(X)) -> c_18(from#(X)) s#(mark(X)) -> c_24(s#(X)) s#(ok(X)) -> c_25(s#(X)) Further, following extension rules are added to the lower component. active#(2nd(X)) -> 2nd#(active(X)) active#(2nd(X)) -> active#(X) active#(cons(X1,X2)) -> active#(X1) active#(cons(X1,X2)) -> cons#(active(X1),X2) active#(cons1(X1,X2)) -> active#(X1) active#(cons1(X1,X2)) -> active#(X2) active#(cons1(X1,X2)) -> cons1#(X1,active(X2)) active#(cons1(X1,X2)) -> cons1#(active(X1),X2) active#(from(X)) -> active#(X) active#(from(X)) -> from#(active(X)) active#(s(X)) -> active#(X) active#(s(X)) -> s#(active(X)) proper#(2nd(X)) -> 2nd#(proper(X)) proper#(2nd(X)) -> proper#(X) proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) proper#(cons(X1,X2)) -> proper#(X1) proper#(cons(X1,X2)) -> proper#(X2) proper#(cons1(X1,X2)) -> cons1#(proper(X1),proper(X2)) proper#(cons1(X1,X2)) -> proper#(X1) proper#(cons1(X1,X2)) -> proper#(X2) proper#(from(X)) -> from#(proper(X)) proper#(from(X)) -> proper#(X) proper#(s(X)) -> proper#(X) proper#(s(X)) -> s#(proper(X)) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) *** Step 5.b:1.a:1: SimplifyRHS WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: active#(2nd(X)) -> c_3(2nd#(active(X)),active#(X)) active#(cons(X1,X2)) -> c_6(cons#(active(X1),X2),active#(X1)) active#(cons1(X1,X2)) -> c_7(cons1#(X1,active(X2)),active#(X2)) active#(cons1(X1,X2)) -> c_8(cons1#(active(X1),X2),active#(X1)) active#(from(X)) -> c_9(from#(active(X)),active#(X)) active#(s(X)) -> c_11(s#(active(X)),active#(X)) proper#(2nd(X)) -> c_19(2nd#(proper(X)),proper#(X)) proper#(cons(X1,X2)) -> c_20(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) proper#(cons1(X1,X2)) -> c_21(cons1#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) proper#(from(X)) -> c_22(from#(proper(X)),proper#(X)) proper#(s(X)) -> c_23(s#(proper(X)),proper#(X)) top#(ok(X)) -> active#(X) - Weak DPs: top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> top#(active(X)) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/2,c_4/2,c_5/0,c_6/2,c_7/2,c_8/2,c_9/2,c_10/3,c_11/2,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/2,c_20/3,c_21/3,c_22/2,c_23/2,c_24/1,c_25/1,c_26/2,c_27/2} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: SimplifyRHS + Details: Consider the dependency graph 1:S:active#(2nd(X)) -> c_3(2nd#(active(X)),active#(X)) -->_2 active#(s(X)) -> c_11(s#(active(X)),active#(X)):6 -->_2 active#(from(X)) -> c_9(from#(active(X)),active#(X)):5 -->_2 active#(cons1(X1,X2)) -> c_8(cons1#(active(X1),X2),active#(X1)):4 -->_2 active#(cons1(X1,X2)) -> c_7(cons1#(X1,active(X2)),active#(X2)):3 -->_2 active#(cons(X1,X2)) -> c_6(cons#(active(X1),X2),active#(X1)):2 -->_2 active#(2nd(X)) -> c_3(2nd#(active(X)),active#(X)):1 2:S:active#(cons(X1,X2)) -> c_6(cons#(active(X1),X2),active#(X1)) -->_2 active#(s(X)) -> c_11(s#(active(X)),active#(X)):6 -->_2 active#(from(X)) -> c_9(from#(active(X)),active#(X)):5 -->_2 active#(cons1(X1,X2)) -> c_8(cons1#(active(X1),X2),active#(X1)):4 -->_2 active#(cons1(X1,X2)) -> c_7(cons1#(X1,active(X2)),active#(X2)):3 -->_2 active#(cons(X1,X2)) -> c_6(cons#(active(X1),X2),active#(X1)):2 -->_2 active#(2nd(X)) -> c_3(2nd#(active(X)),active#(X)):1 3:S:active#(cons1(X1,X2)) -> c_7(cons1#(X1,active(X2)),active#(X2)) -->_2 active#(s(X)) -> c_11(s#(active(X)),active#(X)):6 -->_2 active#(from(X)) -> c_9(from#(active(X)),active#(X)):5 -->_2 active#(cons1(X1,X2)) -> c_8(cons1#(active(X1),X2),active#(X1)):4 -->_2 active#(cons1(X1,X2)) -> c_7(cons1#(X1,active(X2)),active#(X2)):3 -->_2 active#(cons(X1,X2)) -> c_6(cons#(active(X1),X2),active#(X1)):2 -->_2 active#(2nd(X)) -> c_3(2nd#(active(X)),active#(X)):1 4:S:active#(cons1(X1,X2)) -> c_8(cons1#(active(X1),X2),active#(X1)) -->_2 active#(s(X)) -> c_11(s#(active(X)),active#(X)):6 -->_2 active#(from(X)) -> c_9(from#(active(X)),active#(X)):5 -->_2 active#(cons1(X1,X2)) -> c_8(cons1#(active(X1),X2),active#(X1)):4 -->_2 active#(cons1(X1,X2)) -> c_7(cons1#(X1,active(X2)),active#(X2)):3 -->_2 active#(cons(X1,X2)) -> c_6(cons#(active(X1),X2),active#(X1)):2 -->_2 active#(2nd(X)) -> c_3(2nd#(active(X)),active#(X)):1 5:S:active#(from(X)) -> c_9(from#(active(X)),active#(X)) -->_2 active#(s(X)) -> c_11(s#(active(X)),active#(X)):6 -->_2 active#(from(X)) -> c_9(from#(active(X)),active#(X)):5 -->_2 active#(cons1(X1,X2)) -> c_8(cons1#(active(X1),X2),active#(X1)):4 -->_2 active#(cons1(X1,X2)) -> c_7(cons1#(X1,active(X2)),active#(X2)):3 -->_2 active#(cons(X1,X2)) -> c_6(cons#(active(X1),X2),active#(X1)):2 -->_2 active#(2nd(X)) -> c_3(2nd#(active(X)),active#(X)):1 6:S:active#(s(X)) -> c_11(s#(active(X)),active#(X)) -->_2 active#(s(X)) -> c_11(s#(active(X)),active#(X)):6 -->_2 active#(from(X)) -> c_9(from#(active(X)),active#(X)):5 -->_2 active#(cons1(X1,X2)) -> c_8(cons1#(active(X1),X2),active#(X1)):4 -->_2 active#(cons1(X1,X2)) -> c_7(cons1#(X1,active(X2)),active#(X2)):3 -->_2 active#(cons(X1,X2)) -> c_6(cons#(active(X1),X2),active#(X1)):2 -->_2 active#(2nd(X)) -> c_3(2nd#(active(X)),active#(X)):1 7:S:proper#(2nd(X)) -> c_19(2nd#(proper(X)),proper#(X)) -->_2 proper#(s(X)) -> c_23(s#(proper(X)),proper#(X)):11 -->_2 proper#(from(X)) -> c_22(from#(proper(X)),proper#(X)):10 -->_2 proper#(cons1(X1,X2)) -> c_21(cons1#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):9 -->_2 proper#(cons(X1,X2)) -> c_20(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):8 -->_2 proper#(2nd(X)) -> c_19(2nd#(proper(X)),proper#(X)):7 8:S:proper#(cons(X1,X2)) -> c_20(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) -->_3 proper#(s(X)) -> c_23(s#(proper(X)),proper#(X)):11 -->_2 proper#(s(X)) -> c_23(s#(proper(X)),proper#(X)):11 -->_3 proper#(from(X)) -> c_22(from#(proper(X)),proper#(X)):10 -->_2 proper#(from(X)) -> c_22(from#(proper(X)),proper#(X)):10 -->_3 proper#(cons1(X1,X2)) -> c_21(cons1#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):9 -->_2 proper#(cons1(X1,X2)) -> c_21(cons1#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):9 -->_3 proper#(cons(X1,X2)) -> c_20(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):8 -->_2 proper#(cons(X1,X2)) -> c_20(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):8 -->_3 proper#(2nd(X)) -> c_19(2nd#(proper(X)),proper#(X)):7 -->_2 proper#(2nd(X)) -> c_19(2nd#(proper(X)),proper#(X)):7 9:S:proper#(cons1(X1,X2)) -> c_21(cons1#(proper(X1),proper(X2)),proper#(X1),proper#(X2)) -->_3 proper#(s(X)) -> c_23(s#(proper(X)),proper#(X)):11 -->_2 proper#(s(X)) -> c_23(s#(proper(X)),proper#(X)):11 -->_3 proper#(from(X)) -> c_22(from#(proper(X)),proper#(X)):10 -->_2 proper#(from(X)) -> c_22(from#(proper(X)),proper#(X)):10 -->_3 proper#(cons1(X1,X2)) -> c_21(cons1#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):9 -->_2 proper#(cons1(X1,X2)) -> c_21(cons1#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):9 -->_3 proper#(cons(X1,X2)) -> c_20(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):8 -->_2 proper#(cons(X1,X2)) -> c_20(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):8 -->_3 proper#(2nd(X)) -> c_19(2nd#(proper(X)),proper#(X)):7 -->_2 proper#(2nd(X)) -> c_19(2nd#(proper(X)),proper#(X)):7 10:S:proper#(from(X)) -> c_22(from#(proper(X)),proper#(X)) -->_2 proper#(s(X)) -> c_23(s#(proper(X)),proper#(X)):11 -->_2 proper#(from(X)) -> c_22(from#(proper(X)),proper#(X)):10 -->_2 proper#(cons1(X1,X2)) -> c_21(cons1#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):9 -->_2 proper#(cons(X1,X2)) -> c_20(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):8 -->_2 proper#(2nd(X)) -> c_19(2nd#(proper(X)),proper#(X)):7 11:S:proper#(s(X)) -> c_23(s#(proper(X)),proper#(X)) -->_2 proper#(s(X)) -> c_23(s#(proper(X)),proper#(X)):11 -->_2 proper#(from(X)) -> c_22(from#(proper(X)),proper#(X)):10 -->_2 proper#(cons1(X1,X2)) -> c_21(cons1#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):9 -->_2 proper#(cons(X1,X2)) -> c_20(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):8 -->_2 proper#(2nd(X)) -> c_19(2nd#(proper(X)),proper#(X)):7 12:S:top#(ok(X)) -> active#(X) -->_1 active#(s(X)) -> c_11(s#(active(X)),active#(X)):6 -->_1 active#(from(X)) -> c_9(from#(active(X)),active#(X)):5 -->_1 active#(cons1(X1,X2)) -> c_8(cons1#(active(X1),X2),active#(X1)):4 -->_1 active#(cons1(X1,X2)) -> c_7(cons1#(X1,active(X2)),active#(X2)):3 -->_1 active#(cons(X1,X2)) -> c_6(cons#(active(X1),X2),active#(X1)):2 -->_1 active#(2nd(X)) -> c_3(2nd#(active(X)),active#(X)):1 13:W:top#(mark(X)) -> proper#(X) -->_1 proper#(s(X)) -> c_23(s#(proper(X)),proper#(X)):11 -->_1 proper#(from(X)) -> c_22(from#(proper(X)),proper#(X)):10 -->_1 proper#(cons1(X1,X2)) -> c_21(cons1#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):9 -->_1 proper#(cons(X1,X2)) -> c_20(cons#(proper(X1),proper(X2)),proper#(X1),proper#(X2)):8 -->_1 proper#(2nd(X)) -> c_19(2nd#(proper(X)),proper#(X)):7 14:W:top#(mark(X)) -> top#(proper(X)) -->_1 top#(ok(X)) -> top#(active(X)):15 -->_1 top#(mark(X)) -> top#(proper(X)):14 -->_1 top#(mark(X)) -> proper#(X):13 -->_1 top#(ok(X)) -> active#(X):12 15:W:top#(ok(X)) -> top#(active(X)) -->_1 top#(ok(X)) -> top#(active(X)):15 -->_1 top#(mark(X)) -> top#(proper(X)):14 -->_1 top#(mark(X)) -> proper#(X):13 -->_1 top#(ok(X)) -> active#(X):12 Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified: active#(2nd(X)) -> c_3(active#(X)) active#(cons(X1,X2)) -> c_6(active#(X1)) active#(cons1(X1,X2)) -> c_7(active#(X2)) active#(cons1(X1,X2)) -> c_8(active#(X1)) active#(from(X)) -> c_9(active#(X)) active#(s(X)) -> c_11(active#(X)) proper#(2nd(X)) -> c_19(proper#(X)) proper#(cons(X1,X2)) -> c_20(proper#(X1),proper#(X2)) proper#(cons1(X1,X2)) -> c_21(proper#(X1),proper#(X2)) proper#(from(X)) -> c_22(proper#(X)) proper#(s(X)) -> c_23(proper#(X)) *** Step 5.b:1.a:2: NaturalMI WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: active#(2nd(X)) -> c_3(active#(X)) active#(cons(X1,X2)) -> c_6(active#(X1)) active#(cons1(X1,X2)) -> c_7(active#(X2)) active#(cons1(X1,X2)) -> c_8(active#(X1)) active#(from(X)) -> c_9(active#(X)) active#(s(X)) -> c_11(active#(X)) proper#(2nd(X)) -> c_19(proper#(X)) proper#(cons(X1,X2)) -> c_20(proper#(X1),proper#(X2)) proper#(cons1(X1,X2)) -> c_21(proper#(X1),proper#(X2)) proper#(from(X)) -> c_22(proper#(X)) proper#(s(X)) -> c_23(proper#(X)) top#(ok(X)) -> active#(X) - Weak DPs: top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> top#(active(X)) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/1,c_4/2,c_5/0,c_6/1,c_7/1,c_8/1,c_9/1,c_10/3,c_11/1,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/1,c_20/2,c_21/2,c_22/1,c_23/1,c_24/1,c_25/1,c_26/2,c_27/2} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(c_3) = {1}, uargs(c_6) = {1}, uargs(c_7) = {1}, uargs(c_8) = {1}, uargs(c_9) = {1}, uargs(c_11) = {1}, uargs(c_19) = {1}, uargs(c_20) = {1,2}, uargs(c_21) = {1,2}, uargs(c_22) = {1}, uargs(c_23) = {1} Following symbols are considered usable: {2nd#,active#,cons#,cons1#,from#,proper#,s#,top#} TcT has computed the following interpretation: p(2nd) = [0] p(active) = [4] x1 + [0] p(cons) = [3] p(cons1) = [1] x1 + [0] p(from) = [0] p(mark) = [0] p(ok) = [0] p(proper) = [4] x1 + [0] p(s) = [1] x1 + [2] p(top) = [1] p(2nd#) = [4] x1 + [0] p(active#) = [0] p(cons#) = [4] x1 + [0] p(cons1#) = [2] x1 + [4] x2 + [1] p(from#) = [2] p(proper#) = [0] p(s#) = [2] p(top#) = [5] p(c_1) = [4] x1 + [4] p(c_2) = [1] x1 + [0] p(c_3) = [1] x1 + [0] p(c_4) = [4] x1 + [1] p(c_5) = [1] p(c_6) = [2] x1 + [0] p(c_7) = [1] x1 + [0] p(c_8) = [2] x1 + [0] p(c_9) = [1] x1 + [0] p(c_10) = [2] x3 + [0] p(c_11) = [1] x1 + [0] p(c_12) = [4] x1 + [0] p(c_13) = [0] p(c_14) = [0] p(c_15) = [4] p(c_16) = [2] p(c_17) = [1] p(c_18) = [4] x1 + [1] p(c_19) = [2] x1 + [0] p(c_20) = [1] x1 + [2] x2 + [0] p(c_21) = [1] x1 + [2] x2 + [0] p(c_22) = [2] x1 + [0] p(c_23) = [1] x1 + [0] p(c_24) = [1] x1 + [0] p(c_25) = [1] x1 + [0] p(c_26) = [2] x2 + [1] p(c_27) = [1] x1 + [0] Following rules are strictly oriented: top#(ok(X)) = [5] > [0] = active#(X) Following rules are (at-least) weakly oriented: active#(2nd(X)) = [0] >= [0] = c_3(active#(X)) active#(cons(X1,X2)) = [0] >= [0] = c_6(active#(X1)) active#(cons1(X1,X2)) = [0] >= [0] = c_7(active#(X2)) active#(cons1(X1,X2)) = [0] >= [0] = c_8(active#(X1)) active#(from(X)) = [0] >= [0] = c_9(active#(X)) active#(s(X)) = [0] >= [0] = c_11(active#(X)) proper#(2nd(X)) = [0] >= [0] = c_19(proper#(X)) proper#(cons(X1,X2)) = [0] >= [0] = c_20(proper#(X1),proper#(X2)) proper#(cons1(X1,X2)) = [0] >= [0] = c_21(proper#(X1),proper#(X2)) proper#(from(X)) = [0] >= [0] = c_22(proper#(X)) proper#(s(X)) = [0] >= [0] = c_23(proper#(X)) top#(mark(X)) = [5] >= [0] = proper#(X) top#(mark(X)) = [5] >= [5] = top#(proper(X)) top#(ok(X)) = [5] >= [5] = top#(active(X)) *** Step 5.b:1.a:3: Ara WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: active#(2nd(X)) -> c_3(active#(X)) active#(cons(X1,X2)) -> c_6(active#(X1)) active#(cons1(X1,X2)) -> c_7(active#(X2)) active#(cons1(X1,X2)) -> c_8(active#(X1)) active#(from(X)) -> c_9(active#(X)) active#(s(X)) -> c_11(active#(X)) proper#(2nd(X)) -> c_19(proper#(X)) proper#(cons(X1,X2)) -> c_20(proper#(X1),proper#(X2)) proper#(cons1(X1,X2)) -> c_21(proper#(X1),proper#(X2)) proper#(from(X)) -> c_22(proper#(X)) proper#(s(X)) -> c_23(proper#(X)) - Weak DPs: top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/1,c_4/2,c_5/0,c_6/1,c_7/1,c_8/1,c_9/1,c_10/3,c_11/1,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/1,c_20/2,c_21/2,c_22/1,c_23/1,c_24/1,c_25/1,c_26/2,c_27/2} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: Ara {araHeuristics = NoHeuristics, minDegree = 2, maxDegree = 2, araTimeout = 8, araRuleShifting = Just 1} + Details: Signatures used: ---------------- 2nd :: ["A"(0, 0)] -(16)-> "A"(0, 0) active :: ["A"(0, 0)] -(0)-> "A"(0, 0) cons :: ["A"(0, 0) x "A"(0, 0)] -(0)-> "A"(0, 0) cons1 :: ["A"(0, 0) x "A"(0, 0)] -(0)-> "A"(0, 0) from :: ["A"(0, 0)] -(17)-> "A"(0, 0) mark :: ["A"(0, 0)] -(0)-> "A"(0, 0) mark :: ["A"(0, 0)] -(0)-> "A"(1, 7) mark :: ["A"(0, 0)] -(0)-> "A"(1, 17) mark :: ["A"(0, 0)] -(0)-> "A"(9, 0) mark :: ["A"(0, 0)] -(0)-> "A"(8, 8) mark :: ["A"(0, 0)] -(0)-> "A"(4, 6) mark :: ["A"(0, 0)] -(0)-> "A"(9, 9) mark :: ["A"(0, 0)] -(0)-> "A"(19, 22) mark :: ["A"(0, 0)] -(0)-> "A"(27, 11) ok :: ["A"(0, 0)] -(0)-> "A"(0, 0) ok :: ["A"(0, 0)] -(0)-> "A"(18, 18) ok :: ["A"(0, 0)] -(0)-> "A"(15, 6) ok :: ["A"(0, 0)] -(0)-> "A"(5, 3) ok :: ["A"(0, 0)] -(0)-> "A"(6, 3) ok :: ["A"(0, 0)] -(0)-> "A"(1, 16) proper :: ["A"(0, 0)] -(0)-> "A"(0, 0) s :: ["A"(0, 0)] -(0)-> "A"(0, 0) active# :: ["A"(0, 0)] -(15)-> "A"(5, 6) proper# :: ["A"(0, 0)] -(0)-> "A"(5, 5) top# :: ["A"(0, 0)] -(28)-> "A"(3, 2) c_3 :: ["A"(0, 6)] -(0)-> "A"(7, 6) c_6 :: ["A"(0, 0)] -(0)-> "A"(7, 7) c_7 :: ["A"(0, 6)] -(0)-> "A"(8, 6) c_8 :: ["A"(0, 0)] -(0)-> "A"(12, 10) c_9 :: ["A"(5, 0)] -(5)-> "A"(5, 19) c_11 :: ["A"(0, 0)] -(0)-> "A"(25, 7) c_19 :: ["A"(5, 5)] -(0)-> "A"(5, 5) c_20 :: ["A"(0, 0) x "A"(0, 0)] -(0)-> "A"(9, 13) c_21 :: ["A"(5, 5) x "A"(5, 5)] -(0)-> "A"(7, 5) c_22 :: ["A"(5, 0)] -(0)-> "A"(5, 5) c_23 :: ["A"(0, 0)] -(0)-> "A"(5, 17) Cost-free Signatures used: -------------------------- Base Constructor Signatures used: --------------------------------- "c_11_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_11_A" :: ["A"(0)] -(0)-> "A"(0, 1) "c_19_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_19_A" :: ["A"(0)] -(0)-> "A"(0, 1) "c_20_A" :: ["A"(0) x "A"(0)] -(0)-> "A"(1, 0) "c_20_A" :: ["A"(0) x "A"(0)] -(0)-> "A"(0, 1) "c_21_A" :: ["A"(0) x "A"(0)] -(0)-> "A"(1, 0) "c_21_A" :: ["A"(0) x "A"(0)] -(0)-> "A"(0, 1) "c_22_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_22_A" :: ["A"(0)] -(0)-> "A"(0, 1) "c_23_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_23_A" :: ["A"(0)] -(0)-> "A"(0, 1) "c_3_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_3_A" :: ["A"(0)] -(0)-> "A"(0, 1) "c_6_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_6_A" :: ["A"(0)] -(0)-> "A"(0, 1) "c_7_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_7_A" :: ["A"(0)] -(0)-> "A"(0, 1) "c_8_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_8_A" :: ["A"(0)] -(0)-> "A"(0, 1) "c_9_A" :: ["A"(0)] -(1)-> "A"(1, 0) "c_9_A" :: ["A"(0)] -(0)-> "A"(0, 1) "mark_A" :: ["A"(0, 0)] -(0)-> "A"(1, 0) "mark_A" :: ["A"(0, 0)] -(0)-> "A"(0, 1) "ok_A" :: ["A"(0, 0)] -(0)-> "A"(1, 0) "ok_A" :: ["A"(0, 0)] -(0)-> "A"(0, 1) Following Still Strict Rules were Typed as: ------------------------------------------- 1. Strict: active#(2nd(X)) -> c_3(active#(X)) 2. Weak: active#(cons(X1,X2)) -> c_6(active#(X1)) active#(cons1(X1,X2)) -> c_7(active#(X2)) active#(cons1(X1,X2)) -> c_8(active#(X1)) active#(from(X)) -> c_9(active#(X)) active#(s(X)) -> c_11(active#(X)) proper#(2nd(X)) -> c_19(proper#(X)) proper#(cons(X1,X2)) -> c_20(proper#(X1),proper#(X2)) proper#(cons1(X1,X2)) -> c_21(proper#(X1),proper#(X2)) proper#(from(X)) -> c_22(proper#(X)) proper#(s(X)) -> c_23(proper#(X)) *** Step 5.b:1.a:4: Ara WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: active#(cons(X1,X2)) -> c_6(active#(X1)) active#(cons1(X1,X2)) -> c_7(active#(X2)) active#(cons1(X1,X2)) -> c_8(active#(X1)) active#(from(X)) -> c_9(active#(X)) active#(s(X)) -> c_11(active#(X)) proper#(2nd(X)) -> c_19(proper#(X)) proper#(cons(X1,X2)) -> c_20(proper#(X1),proper#(X2)) proper#(cons1(X1,X2)) -> c_21(proper#(X1),proper#(X2)) proper#(from(X)) -> c_22(proper#(X)) proper#(s(X)) -> c_23(proper#(X)) - Weak DPs: active#(2nd(X)) -> c_3(active#(X)) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/1,c_4/2,c_5/0,c_6/1,c_7/1,c_8/1,c_9/1,c_10/3,c_11/1,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/1,c_20/2,c_21/2,c_22/1,c_23/1,c_24/1,c_25/1,c_26/2,c_27/2} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: Ara {araHeuristics = NoHeuristics, minDegree = 2, maxDegree = 2, araTimeout = 8, araRuleShifting = Just 1} + Details: Signatures used: ---------------- 2nd :: ["A"(0, 0)] -(16)-> "A"(0, 0) active :: ["A"(0, 0)] -(0)-> "A"(0, 0) cons :: ["A"(0, 0) x "A"(0, 0)] -(0)-> "A"(0, 0) cons1 :: ["A"(0, 0) x "A"(0, 0)] -(0)-> "A"(0, 0) from :: ["A"(0, 0)] -(14)-> "A"(0, 0) mark :: ["A"(0, 0)] -(0)-> "A"(0, 0) mark :: ["A"(0, 0)] -(0)-> "A"(0, 9) mark :: ["A"(0, 0)] -(0)-> "A"(6, 12) mark :: ["A"(0, 0)] -(0)-> "A"(19, 8) mark :: ["A"(0, 0)] -(0)-> "A"(4, 21) mark :: ["A"(0, 0)] -(0)-> "A"(16, 5) mark :: ["A"(0, 0)] -(0)-> "A"(16, 16) mark :: ["A"(0, 0)] -(0)-> "A"(3, 4) ok :: ["A"(0, 0)] -(0)-> "A"(0, 0) ok :: ["A"(0, 0)] -(0)-> "A"(0, 10) ok :: ["A"(0, 0)] -(0)-> "A"(0, 2) ok :: ["A"(0, 0)] -(0)-> "A"(0, 18) ok :: ["A"(0, 0)] -(0)-> "A"(0, 4) ok :: ["A"(0, 0)] -(0)-> "A"(0, 6) proper :: ["A"(0, 0)] -(0)-> "A"(0, 0) s :: ["A"(0, 0)] -(0)-> "A"(0, 0) active# :: ["A"(0, 0)] -(0)-> "A"(8, 0) proper# :: ["A"(0, 0)] -(0)-> "A"(8, 1) top# :: ["A"(0, 0)] -(26)-> "A"(8, 0) c_3 :: ["A"(0, 0)] -(0)-> "A"(23, 22) c_6 :: ["A"(0, 0)] -(0)-> "A"(28, 24) c_7 :: ["A"(0, 0)] -(0)-> "A"(28, 24) c_8 :: ["A"(0, 0)] -(0)-> "A"(28, 24) c_9 :: ["A"(0, 0)] -(0)-> "A"(28, 28) c_11 :: ["A"(0, 0)] -(0)-> "A"(28, 24) c_19 :: ["A"(3, 0)] -(0)-> "A"(28, 3) c_20 :: ["A"(0, 0) x "A"(0, 0)] -(0)-> "A"(28, 24) c_21 :: ["A"(0, 0) x "A"(0, 0)] -(0)-> "A"(28, 24) c_22 :: ["A"(0, 0)] -(0)-> "A"(17, 18) c_23 :: ["A"(0, 0)] -(0)-> "A"(28, 24) Cost-free Signatures used: -------------------------- Base Constructor Signatures used: --------------------------------- "c_11_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_11_A" :: ["A"(0)] -(0)-> "A"(0, 1) "c_19_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_19_A" :: ["A"(0)] -(0)-> "A"(0, 1) "c_20_A" :: ["A"(0) x "A"(0)] -(0)-> "A"(1, 0) "c_20_A" :: ["A"(0) x "A"(0)] -(0)-> "A"(0, 1) "c_21_A" :: ["A"(0) x "A"(0)] -(0)-> "A"(1, 0) "c_21_A" :: ["A"(0) x "A"(0)] -(0)-> "A"(0, 1) "c_22_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_22_A" :: ["A"(0)] -(0)-> "A"(0, 1) "c_23_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_23_A" :: ["A"(0)] -(0)-> "A"(0, 1) "c_3_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_3_A" :: ["A"(0)] -(0)-> "A"(0, 1) "c_6_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_6_A" :: ["A"(0)] -(0)-> "A"(0, 1) "c_7_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_7_A" :: ["A"(0)] -(0)-> "A"(0, 1) "c_8_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_8_A" :: ["A"(0)] -(0)-> "A"(0, 1) "c_9_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_9_A" :: ["A"(0)] -(0)-> "A"(0, 1) "mark_A" :: ["A"(0, 0)] -(0)-> "A"(1, 0) "mark_A" :: ["A"(0, 0)] -(0)-> "A"(0, 1) "ok_A" :: ["A"(0, 0)] -(1)-> "A"(1, 0) "ok_A" :: ["A"(0, 0)] -(0)-> "A"(0, 1) Following Still Strict Rules were Typed as: ------------------------------------------- 1. Strict: proper#(from(X)) -> c_22(proper#(X)) 2. Weak: active#(cons(X1,X2)) -> c_6(active#(X1)) active#(cons1(X1,X2)) -> c_7(active#(X2)) active#(cons1(X1,X2)) -> c_8(active#(X1)) active#(from(X)) -> c_9(active#(X)) active#(s(X)) -> c_11(active#(X)) proper#(2nd(X)) -> c_19(proper#(X)) proper#(cons(X1,X2)) -> c_20(proper#(X1),proper#(X2)) proper#(cons1(X1,X2)) -> c_21(proper#(X1),proper#(X2)) proper#(s(X)) -> c_23(proper#(X)) *** Step 5.b:1.a:5: Ara WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: active#(cons(X1,X2)) -> c_6(active#(X1)) active#(cons1(X1,X2)) -> c_7(active#(X2)) active#(cons1(X1,X2)) -> c_8(active#(X1)) active#(from(X)) -> c_9(active#(X)) active#(s(X)) -> c_11(active#(X)) proper#(2nd(X)) -> c_19(proper#(X)) proper#(cons(X1,X2)) -> c_20(proper#(X1),proper#(X2)) proper#(cons1(X1,X2)) -> c_21(proper#(X1),proper#(X2)) proper#(s(X)) -> c_23(proper#(X)) - Weak DPs: active#(2nd(X)) -> c_3(active#(X)) proper#(from(X)) -> c_22(proper#(X)) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/1,c_4/2,c_5/0,c_6/1,c_7/1,c_8/1,c_9/1,c_10/3,c_11/1,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/1,c_20/2,c_21/2,c_22/1,c_23/1,c_24/1,c_25/1,c_26/2,c_27/2} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: Ara {araHeuristics = NoHeuristics, minDegree = 2, maxDegree = 2, araTimeout = 8, araRuleShifting = Just 1} + Details: Signatures used: ---------------- 2nd :: ["A"(0, 0)] -(13)-> "A"(0, 0) active :: ["A"(0, 0)] -(0)-> "A"(0, 0) cons :: ["A"(0, 0) x "A"(0, 0)] -(0)-> "A"(0, 0) cons1 :: ["A"(0, 0) x "A"(0, 0)] -(0)-> "A"(0, 0) from :: ["A"(0, 0)] -(2)-> "A"(0, 0) mark :: ["A"(0, 0)] -(0)-> "A"(0, 0) mark :: ["A"(0, 0)] -(0)-> "A"(9, 2) mark :: ["A"(0, 0)] -(0)-> "A"(6, 1) mark :: ["A"(0, 0)] -(0)-> "A"(3, 3) mark :: ["A"(0, 0)] -(0)-> "A"(6, 6) mark :: ["A"(0, 0)] -(0)-> "A"(13, 4) mark :: ["A"(0, 0)] -(0)-> "A"(1, 8) mark :: ["A"(0, 0)] -(0)-> "A"(5, 6) mark :: ["A"(0, 0)] -(0)-> "A"(1, 0) ok :: ["A"(0, 0)] -(0)-> "A"(0, 0) ok :: ["A"(0, 0)] -(0)-> "A"(6, 3) ok :: ["A"(0, 0)] -(0)-> "A"(5, 6) ok :: ["A"(0, 0)] -(0)-> "A"(4, 6) ok :: ["A"(0, 0)] -(0)-> "A"(5, 7) proper :: ["A"(0, 0)] -(0)-> "A"(0, 0) s :: ["A"(0, 0)] -(0)-> "A"(0, 0) active# :: ["A"(0, 0)] -(0)-> "A"(7, 5) proper# :: ["A"(0, 0)] -(0)-> "A"(10, 0) top# :: ["A"(0, 0)] -(14)-> "A"(4, 0) c_3 :: ["A"(0, 5)] -(0)-> "A"(11, 5) c_6 :: ["A"(7, 5)] -(0)-> "A"(7, 5) c_7 :: ["A"(0, 5)] -(0)-> "A"(10, 5) c_8 :: ["A"(0, 0)] -(0)-> "A"(9, 6) c_9 :: ["A"(0, 5)] -(0)-> "A"(9, 5) c_11 :: ["A"(7, 0)] -(0)-> "A"(9, 7) c_19 :: ["A"(0, 0)] -(0)-> "A"(15, 15) c_20 :: ["A"(0, 0) x "A"(0, 0)] -(0)-> "A"(14, 14) c_21 :: ["A"(0, 0) x "A"(0, 0)] -(0)-> "A"(11, 9) c_22 :: ["A"(0, 0)] -(0)-> "A"(11, 11) c_23 :: ["A"(0, 0)] -(0)-> "A"(11, 15) Cost-free Signatures used: -------------------------- Base Constructor Signatures used: --------------------------------- "c_11_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_11_A" :: ["A"(0)] -(0)-> "A"(0, 1) "c_19_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_19_A" :: ["A"(0)] -(0)-> "A"(0, 1) "c_20_A" :: ["A"(0) x "A"(0)] -(0)-> "A"(1, 0) "c_20_A" :: ["A"(0) x "A"(0)] -(0)-> "A"(0, 1) "c_21_A" :: ["A"(0) x "A"(0)] -(0)-> "A"(1, 0) "c_21_A" :: ["A"(0) x "A"(0)] -(0)-> "A"(0, 1) "c_22_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_22_A" :: ["A"(0)] -(0)-> "A"(0, 1) "c_23_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_23_A" :: ["A"(0)] -(0)-> "A"(0, 1) "c_3_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_3_A" :: ["A"(0)] -(0)-> "A"(0, 1) "c_6_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_6_A" :: ["A"(0)] -(0)-> "A"(0, 1) "c_7_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_7_A" :: ["A"(0)] -(0)-> "A"(0, 1) "c_8_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_8_A" :: ["A"(0)] -(0)-> "A"(0, 1) "c_9_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_9_A" :: ["A"(0)] -(0)-> "A"(0, 1) "mark_A" :: ["A"(0, 0)] -(0)-> "A"(1, 0) "mark_A" :: ["A"(0, 0)] -(0)-> "A"(0, 1) "ok_A" :: ["A"(0, 0)] -(0)-> "A"(1, 0) "ok_A" :: ["A"(0, 0)] -(0)-> "A"(0, 1) Following Still Strict Rules were Typed as: ------------------------------------------- 1. Strict: active#(from(X)) -> c_9(active#(X)) 2. Weak: active#(cons(X1,X2)) -> c_6(active#(X1)) active#(cons1(X1,X2)) -> c_7(active#(X2)) active#(cons1(X1,X2)) -> c_8(active#(X1)) active#(s(X)) -> c_11(active#(X)) proper#(2nd(X)) -> c_19(proper#(X)) proper#(cons(X1,X2)) -> c_20(proper#(X1),proper#(X2)) proper#(cons1(X1,X2)) -> c_21(proper#(X1),proper#(X2)) proper#(s(X)) -> c_23(proper#(X)) *** Step 5.b:1.a:6: Ara WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: active#(cons(X1,X2)) -> c_6(active#(X1)) active#(cons1(X1,X2)) -> c_7(active#(X2)) active#(cons1(X1,X2)) -> c_8(active#(X1)) active#(s(X)) -> c_11(active#(X)) proper#(2nd(X)) -> c_19(proper#(X)) proper#(cons(X1,X2)) -> c_20(proper#(X1),proper#(X2)) proper#(cons1(X1,X2)) -> c_21(proper#(X1),proper#(X2)) proper#(s(X)) -> c_23(proper#(X)) - Weak DPs: active#(2nd(X)) -> c_3(active#(X)) active#(from(X)) -> c_9(active#(X)) proper#(from(X)) -> c_22(proper#(X)) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/1,c_4/2,c_5/0,c_6/1,c_7/1,c_8/1,c_9/1,c_10/3,c_11/1,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/1,c_20/2,c_21/2,c_22/1,c_23/1,c_24/1,c_25/1,c_26/2,c_27/2} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: Ara {araHeuristics = NoHeuristics, minDegree = 2, maxDegree = 2, araTimeout = 8, araRuleShifting = Just 1} + Details: Signatures used: ---------------- 2nd :: ["A"(0, 0)] -(12)-> "A"(0, 0) active :: ["A"(0, 0)] -(0)-> "A"(0, 0) cons :: ["A"(0, 0) x "A"(0, 0)] -(0)-> "A"(0, 0) cons1 :: ["A"(0, 0) x "A"(0, 0)] -(0)-> "A"(0, 0) from :: ["A"(0, 0)] -(0)-> "A"(0, 0) mark :: ["A"(0, 0)] -(0)-> "A"(0, 0) mark :: ["A"(0, 0)] -(0)-> "A"(7, 14) mark :: ["A"(0, 0)] -(0)-> "A"(7, 9) mark :: ["A"(0, 0)] -(0)-> "A"(10, 3) mark :: ["A"(0, 0)] -(0)-> "A"(6, 12) mark :: ["A"(0, 0)] -(0)-> "A"(2, 9) mark :: ["A"(0, 0)] -(0)-> "A"(12, 7) mark :: ["A"(0, 0)] -(0)-> "A"(3, 11) mark :: ["A"(0, 0)] -(0)-> "A"(5, 12) mark :: ["A"(0, 0)] -(0)-> "A"(13, 3) ok :: ["A"(0, 0)] -(0)-> "A"(0, 0) ok :: ["A"(0, 0)] -(0)-> "A"(1, 8) ok :: ["A"(0, 0)] -(0)-> "A"(5, 11) ok :: ["A"(0, 0)] -(0)-> "A"(7, 7) ok :: ["A"(0, 0)] -(0)-> "A"(5, 7) ok :: ["A"(0, 0)] -(0)-> "A"(6, 14) proper :: ["A"(0, 0)] -(0)-> "A"(0, 0) s :: ["A"(0, 0)] -(0)-> "A"(0, 0) active# :: ["A"(0, 0)] -(1)-> "A"(1, 1) proper# :: ["A"(0, 0)] -(0)-> "A"(5, 0) top# :: ["A"(0, 0)] -(15)-> "A"(0, 0) c_3 :: ["A"(0, 0)] -(11)-> "A"(11, 2) c_6 :: ["A"(0, 0)] -(0)-> "A"(4, 10) c_7 :: ["A"(0, 0)] -(0)-> "A"(13, 2) c_8 :: ["A"(0, 0)] -(0)-> "A"(11, 14) c_9 :: ["A"(1, 0)] -(0)-> "A"(1, 3) c_11 :: ["A"(0, 1)] -(0)-> "A"(7, 1) c_19 :: ["A"(2, 0)] -(0)-> "A"(5, 2) c_20 :: ["A"(5, 0) x "A"(5, 0)] -(0)-> "A"(5, 2) c_21 :: ["A"(5, 0) x "A"(5, 0)] -(0)-> "A"(5, 3) c_22 :: ["A"(0, 0)] -(0)-> "A"(9, 2) c_23 :: ["A"(0, 0)] -(0)-> "A"(15, 6) Cost-free Signatures used: -------------------------- Base Constructor Signatures used: --------------------------------- "c_11_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_11_A" :: ["A"(0)] -(0)-> "A"(0, 1) "c_19_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_19_A" :: ["A"(0)] -(0)-> "A"(0, 1) "c_20_A" :: ["A"(0) x "A"(0)] -(0)-> "A"(1, 0) "c_20_A" :: ["A"(0) x "A"(0)] -(0)-> "A"(0, 1) "c_21_A" :: ["A"(0) x "A"(0)] -(0)-> "A"(1, 0) "c_21_A" :: ["A"(0) x "A"(0)] -(0)-> "A"(0, 1) "c_22_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_22_A" :: ["A"(0)] -(0)-> "A"(0, 1) "c_23_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_23_A" :: ["A"(0)] -(0)-> "A"(0, 1) "c_3_A" :: ["A"(0)] -(1)-> "A"(1, 0) "c_3_A" :: ["A"(0)] -(0)-> "A"(0, 1) "c_6_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_6_A" :: ["A"(0)] -(0)-> "A"(0, 1) "c_7_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_7_A" :: ["A"(0)] -(0)-> "A"(0, 1) "c_8_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_8_A" :: ["A"(0)] -(0)-> "A"(0, 1) "c_9_A" :: ["A"(0)] -(0)-> "A"(1, 0) "c_9_A" :: ["A"(0)] -(0)-> "A"(0, 1) "mark_A" :: ["A"(0, 0)] -(0)-> "A"(1, 0) "mark_A" :: ["A"(0, 0)] -(0)-> "A"(0, 1) "ok_A" :: ["A"(0, 0)] -(0)-> "A"(1, 0) "ok_A" :: ["A"(0, 0)] -(0)-> "A"(0, 1) Following Still Strict Rules were Typed as: ------------------------------------------- 1. Strict: proper#(2nd(X)) -> c_19(proper#(X)) 2. Weak: active#(cons(X1,X2)) -> c_6(active#(X1)) active#(cons1(X1,X2)) -> c_7(active#(X2)) active#(cons1(X1,X2)) -> c_8(active#(X1)) active#(s(X)) -> c_11(active#(X)) proper#(cons(X1,X2)) -> c_20(proper#(X1),proper#(X2)) proper#(cons1(X1,X2)) -> c_21(proper#(X1),proper#(X2)) proper#(s(X)) -> c_23(proper#(X)) *** Step 5.b:1.a:7: MI WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: active#(cons(X1,X2)) -> c_6(active#(X1)) active#(cons1(X1,X2)) -> c_7(active#(X2)) active#(cons1(X1,X2)) -> c_8(active#(X1)) active#(s(X)) -> c_11(active#(X)) proper#(cons(X1,X2)) -> c_20(proper#(X1),proper#(X2)) proper#(cons1(X1,X2)) -> c_21(proper#(X1),proper#(X2)) proper#(s(X)) -> c_23(proper#(X)) - Weak DPs: active#(2nd(X)) -> c_3(active#(X)) active#(from(X)) -> c_9(active#(X)) proper#(2nd(X)) -> c_19(proper#(X)) proper#(from(X)) -> c_22(proper#(X)) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/1,c_4/2,c_5/0,c_6/1,c_7/1,c_8/1,c_9/1,c_10/3,c_11/1,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/1,c_20/2,c_21/2,c_22/1,c_23/1,c_24/1,c_25/1,c_26/2,c_27/2} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: MI {miKind = Automaton Nothing, miDimension = 2, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules} + Details: We apply a matrix interpretation of kind Automaton Nothing: The following argument positions are considered usable: uargs(c_3) = {1}, uargs(c_6) = {1}, uargs(c_7) = {1}, uargs(c_8) = {1}, uargs(c_9) = {1}, uargs(c_11) = {1}, uargs(c_19) = {1}, uargs(c_20) = {1,2}, uargs(c_21) = {1,2}, uargs(c_22) = {1}, uargs(c_23) = {1} Following symbols are considered usable: {2nd,active,cons,cons1,from,proper,s,2nd#,active#,cons#,cons1#,from#,proper#,s#,top#} TcT has computed the following interpretation: p(2nd) = [1 0] x_1 + [0] [0 1] [0] p(active) = [1 0] x_1 + [0] [0 1] [0] p(cons) = [2 0] x_1 + [2 0] x_2 + [0] [0 1] [0 0] [1] p(cons1) = [2 0] x_1 + [2 0] x_2 + [0] [0 2] [0 2] [0] p(from) = [1 0] x_1 + [0] [0 1] [0] p(mark) = [0] [0] p(ok) = [1 2] x_1 + [1] [0 0] [0] p(proper) = [0 0] x_1 + [0] [0 2] [0] p(s) = [2 0] x_1 + [0] [0 1] [0] p(top) = [1 0] x_1 + [0] [0 0] [1] p(2nd#) = [0 0] x_1 + [1] [2 0] [0] p(active#) = [0 2] x_1 + [0] [0 0] [1] p(cons#) = [0 0] x_1 + [2 0] x_2 + [0] [0 1] [0 1] [1] p(cons1#) = [0 1] x_1 + [0] [0 2] [0] p(from#) = [0 0] x_1 + [1] [0 2] [0] p(proper#) = [0] [0] p(s#) = [0] [0] p(top#) = [1 0] x_1 + [1] [0 0] [1] p(c_1) = [0 2] x_1 + [0] [2 0] [0] p(c_2) = [0 0] x_1 + [0] [0 1] [0] p(c_3) = [1 0] x_1 + [0] [0 0] [0] p(c_4) = [2 2] x_1 + [2 2] x_2 + [0] [0 1] [2 0] [1] p(c_5) = [1] [0] p(c_6) = [1 0] x_1 + [1] [0 0] [1] p(c_7) = [2 0] x_1 + [0] [0 0] [0] p(c_8) = [1 0] x_1 + [0] [0 0] [0] p(c_9) = [1 0] x_1 + [0] [0 0] [1] p(c_10) = [0 2] x_2 + [0 1] x_3 + [0] [0 0] [0 1] [0] p(c_11) = [1 0] x_1 + [0] [0 1] [0] p(c_12) = [1 0] x_1 + [0] [1 0] [0] p(c_13) = [0 1] x_1 + [0] [0 2] [1] p(c_14) = [0 0] x_1 + [0] [0 2] [1] p(c_15) = [2] [0] p(c_16) = [2] [0] p(c_17) = [2] [2] p(c_18) = [0 2] x_1 + [2] [2 0] [0] p(c_19) = [1 0] x_1 + [0] [0 2] [0] p(c_20) = [1 1] x_1 + [1 0] x_2 + [0] [2 0] [1 1] [0] p(c_21) = [1 1] x_1 + [1 2] x_2 + [0] [2 0] [1 0] [0] p(c_22) = [1 0] x_1 + [0] [0 1] [0] p(c_23) = [2 0] x_1 + [0] [0 0] [0] p(c_24) = [2] [2] p(c_25) = [0] [0] p(c_26) = [0 0] x_1 + [2 0] x_2 + [0] [1 2] [0 0] [1] p(c_27) = [0] [0] Following rules are strictly oriented: active#(cons(X1,X2)) = [0 2] X1 + [2] [0 0] [1] > [0 2] X1 + [1] [0 0] [1] = c_6(active#(X1)) Following rules are (at-least) weakly oriented: active#(2nd(X)) = [0 2] X + [0] [0 0] [1] >= [0 2] X + [0] [0 0] [0] = c_3(active#(X)) active#(cons1(X1,X2)) = [0 4] X1 + [0 4] X2 + [0] [0 0] [0 0] [1] >= [0 4] X2 + [0] [0 0] [0] = c_7(active#(X2)) active#(cons1(X1,X2)) = [0 4] X1 + [0 4] X2 + [0] [0 0] [0 0] [1] >= [0 2] X1 + [0] [0 0] [0] = c_8(active#(X1)) active#(from(X)) = [0 2] X + [0] [0 0] [1] >= [0 2] X + [0] [0 0] [1] = c_9(active#(X)) active#(s(X)) = [0 2] X + [0] [0 0] [1] >= [0 2] X + [0] [0 0] [1] = c_11(active#(X)) proper#(2nd(X)) = [0] [0] >= [0] [0] = c_19(proper#(X)) proper#(cons(X1,X2)) = [0] [0] >= [0] [0] = c_20(proper#(X1),proper#(X2)) proper#(cons1(X1,X2)) = [0] [0] >= [0] [0] = c_21(proper#(X1),proper#(X2)) proper#(from(X)) = [0] [0] >= [0] [0] = c_22(proper#(X)) proper#(s(X)) = [0] [0] >= [0] [0] = c_23(proper#(X)) top#(mark(X)) = [1] [1] >= [0] [0] = proper#(X) top#(mark(X)) = [1] [1] >= [1] [1] = top#(proper(X)) top#(ok(X)) = [1 2] X + [2] [0 0] [1] >= [0 2] X + [0] [0 0] [1] = active#(X) top#(ok(X)) = [1 2] X + [2] [0 0] [1] >= [1 0] X + [1] [0 0] [1] = top#(active(X)) 2nd(mark(X)) = [0] [0] >= [0] [0] = mark(2nd(X)) 2nd(ok(X)) = [1 2] X + [1] [0 0] [0] >= [1 2] X + [1] [0 0] [0] = ok(2nd(X)) active(2nd(X)) = [1 0] X + [0] [0 1] [0] >= [1 0] X + [0] [0 1] [0] = 2nd(active(X)) active(2nd(cons(X,X1))) = [2 0] X + [2 0] X1 + [0] [0 1] [0 0] [1] >= [0] [0] = mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) = [2 0] X + [4 0] Y + [4 0] Z + [0] [0 2] [0 2] [0 0] [2] >= [0] [0] = mark(Y) active(cons(X1,X2)) = [2 0] X1 + [2 0] X2 + [0] [0 1] [0 0] [1] >= [2 0] X1 + [2 0] X2 + [0] [0 1] [0 0] [1] = cons(active(X1),X2) active(cons1(X1,X2)) = [2 0] X1 + [2 0] X2 + [0] [0 2] [0 2] [0] >= [2 0] X1 + [2 0] X2 + [0] [0 2] [0 2] [0] = cons1(X1,active(X2)) active(cons1(X1,X2)) = [2 0] X1 + [2 0] X2 + [0] [0 2] [0 2] [0] >= [2 0] X1 + [2 0] X2 + [0] [0 2] [0 2] [0] = cons1(active(X1),X2) active(from(X)) = [1 0] X + [0] [0 1] [0] >= [1 0] X + [0] [0 1] [0] = from(active(X)) active(from(X)) = [1 0] X + [0] [0 1] [0] >= [0] [0] = mark(cons(X,from(s(X)))) active(s(X)) = [2 0] X + [0] [0 1] [0] >= [2 0] X + [0] [0 1] [0] = s(active(X)) cons(mark(X1),X2) = [2 0] X2 + [0] [0 0] [1] >= [0] [0] = mark(cons(X1,X2)) cons(ok(X1),ok(X2)) = [2 4] X1 + [2 4] X2 + [4] [0 0] [0 0] [1] >= [2 2] X1 + [2 0] X2 + [3] [0 0] [0 0] [0] = ok(cons(X1,X2)) cons1(X1,mark(X2)) = [2 0] X1 + [0] [0 2] [0] >= [0] [0] = mark(cons1(X1,X2)) cons1(mark(X1),X2) = [2 0] X2 + [0] [0 2] [0] >= [0] [0] = mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) = [2 4] X1 + [2 4] X2 + [4] [0 0] [0 0] [0] >= [2 4] X1 + [2 4] X2 + [1] [0 0] [0 0] [0] = ok(cons1(X1,X2)) from(mark(X)) = [0] [0] >= [0] [0] = mark(from(X)) from(ok(X)) = [1 2] X + [1] [0 0] [0] >= [1 2] X + [1] [0 0] [0] = ok(from(X)) proper(2nd(X)) = [0 0] X + [0] [0 2] [0] >= [0 0] X + [0] [0 2] [0] = 2nd(proper(X)) proper(cons(X1,X2)) = [0 0] X1 + [0] [0 2] [2] >= [0 0] X1 + [0] [0 2] [1] = cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) = [0 0] X1 + [0 0] X2 + [0] [0 4] [0 4] [0] >= [0 0] X1 + [0 0] X2 + [0] [0 4] [0 4] [0] = cons1(proper(X1),proper(X2)) proper(from(X)) = [0 0] X + [0] [0 2] [0] >= [0 0] X + [0] [0 2] [0] = from(proper(X)) proper(s(X)) = [0 0] X + [0] [0 2] [0] >= [0 0] X + [0] [0 2] [0] = s(proper(X)) s(mark(X)) = [0] [0] >= [0] [0] = mark(s(X)) s(ok(X)) = [2 4] X + [2] [0 0] [0] >= [2 2] X + [1] [0 0] [0] = ok(s(X)) *** Step 5.b:1.a:8: MI WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: active#(cons1(X1,X2)) -> c_7(active#(X2)) active#(cons1(X1,X2)) -> c_8(active#(X1)) active#(s(X)) -> c_11(active#(X)) proper#(cons(X1,X2)) -> c_20(proper#(X1),proper#(X2)) proper#(cons1(X1,X2)) -> c_21(proper#(X1),proper#(X2)) proper#(s(X)) -> c_23(proper#(X)) - Weak DPs: active#(2nd(X)) -> c_3(active#(X)) active#(cons(X1,X2)) -> c_6(active#(X1)) active#(from(X)) -> c_9(active#(X)) proper#(2nd(X)) -> c_19(proper#(X)) proper#(from(X)) -> c_22(proper#(X)) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/1,c_4/2,c_5/0,c_6/1,c_7/1,c_8/1,c_9/1,c_10/3,c_11/1,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/1,c_20/2,c_21/2,c_22/1,c_23/1,c_24/1,c_25/1,c_26/2,c_27/2} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: MI {miKind = Automaton Nothing, miDimension = 2, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules} + Details: We apply a matrix interpretation of kind Automaton Nothing: The following argument positions are considered usable: uargs(c_3) = {1}, uargs(c_6) = {1}, uargs(c_7) = {1}, uargs(c_8) = {1}, uargs(c_9) = {1}, uargs(c_11) = {1}, uargs(c_19) = {1}, uargs(c_20) = {1,2}, uargs(c_21) = {1,2}, uargs(c_22) = {1}, uargs(c_23) = {1} Following symbols are considered usable: {2nd,active,cons,cons1,from,proper,s,2nd#,active#,cons#,cons1#,from#,proper#,s#,top#} TcT has computed the following interpretation: p(2nd) = [1 0] x_1 + [0] [0 2] [0] p(active) = [2 0] x_1 + [0] [0 1] [0] p(cons) = [1 0] x_1 + [2 0] x_2 + [0] [0 1] [0 2] [0] p(cons1) = [1 0] x_1 + [2 0] x_2 + [1] [0 1] [0 2] [0] p(from) = [1 0] x_1 + [0] [0 1] [0] p(mark) = [0] [0] p(ok) = [0 0] x_1 + [0] [1 1] [2] p(proper) = [1 0] x_1 + [0] [0 0] [0] p(s) = [2 0] x_1 + [0] [0 2] [0] p(top) = [0 0] x_1 + [0] [1 2] [0] p(2nd#) = [0 0] x_1 + [0] [2 0] [0] p(active#) = [2 0] x_1 + [2] [0 0] [2] p(cons#) = [0 0] x_2 + [0] [2 0] [2] p(cons1#) = [1 0] x_2 + [1] [2 0] [2] p(from#) = [2] [2] p(proper#) = [0] [2] p(s#) = [0 0] x_1 + [2] [1 1] [2] p(top#) = [0 2] x_1 + [0] [0 0] [2] p(c_1) = [0] [2] p(c_2) = [0 0] x_1 + [0] [1 0] [1] p(c_3) = [1 0] x_1 + [0] [0 0] [0] p(c_4) = [2 0] x_1 + [0 2] x_2 + [1] [1 0] [0 2] [1] p(c_5) = [0] [0] p(c_6) = [1 0] x_1 + [0] [0 0] [0] p(c_7) = [1 0] x_1 + [0] [0 0] [0] p(c_8) = [1 0] x_1 + [2] [0 1] [0] p(c_9) = [1 0] x_1 + [0] [0 1] [0] p(c_10) = [1 1] x_1 + [0 0] x_3 + [2] [0 0] [0 1] [0] p(c_11) = [1 0] x_1 + [0] [0 0] [1] p(c_12) = [0 1] x_1 + [2] [2 0] [0] p(c_13) = [0 0] x_1 + [0] [0 1] [2] p(c_14) = [0] [0] p(c_15) = [0 0] x_1 + [0] [2 0] [2] p(c_16) = [0 0] x_1 + [0] [0 1] [1] p(c_17) = [0 0] x_1 + [0] [0 2] [0] p(c_18) = [2 0] x_1 + [0] [1 0] [0] p(c_19) = [1 0] x_1 + [0] [2 0] [2] p(c_20) = [1 0] x_1 + [2 0] x_2 + [0] [0 0] [0 1] [0] p(c_21) = [2 0] x_1 + [2 0] x_2 + [0] [0 0] [0 1] [0] p(c_22) = [2 0] x_1 + [0] [0 0] [2] p(c_23) = [1 0] x_1 + [0] [1 0] [2] p(c_24) = [1] [0] p(c_25) = [0] [1] p(c_26) = [0 0] x_1 + [1 1] x_2 + [0] [2 2] [0 0] [1] p(c_27) = [1 2] x_2 + [0] [2 1] [0] Following rules are strictly oriented: active#(cons1(X1,X2)) = [2 0] X1 + [4 0] X2 + [4] [0 0] [0 0] [2] > [2 0] X2 + [2] [0 0] [0] = c_7(active#(X2)) Following rules are (at-least) weakly oriented: active#(2nd(X)) = [2 0] X + [2] [0 0] [2] >= [2 0] X + [2] [0 0] [0] = c_3(active#(X)) active#(cons(X1,X2)) = [2 0] X1 + [4 0] X2 + [2] [0 0] [0 0] [2] >= [2 0] X1 + [2] [0 0] [0] = c_6(active#(X1)) active#(cons1(X1,X2)) = [2 0] X1 + [4 0] X2 + [4] [0 0] [0 0] [2] >= [2 0] X1 + [4] [0 0] [2] = c_8(active#(X1)) active#(from(X)) = [2 0] X + [2] [0 0] [2] >= [2 0] X + [2] [0 0] [2] = c_9(active#(X)) active#(s(X)) = [4 0] X + [2] [0 0] [2] >= [2 0] X + [2] [0 0] [1] = c_11(active#(X)) proper#(2nd(X)) = [0] [2] >= [0] [2] = c_19(proper#(X)) proper#(cons(X1,X2)) = [0] [2] >= [0] [2] = c_20(proper#(X1),proper#(X2)) proper#(cons1(X1,X2)) = [0] [2] >= [0] [2] = c_21(proper#(X1),proper#(X2)) proper#(from(X)) = [0] [2] >= [0] [2] = c_22(proper#(X)) proper#(s(X)) = [0] [2] >= [0] [2] = c_23(proper#(X)) top#(mark(X)) = [0] [2] >= [0] [2] = proper#(X) top#(mark(X)) = [0] [2] >= [0] [2] = top#(proper(X)) top#(ok(X)) = [2 2] X + [4] [0 0] [2] >= [2 0] X + [2] [0 0] [2] = active#(X) top#(ok(X)) = [2 2] X + [4] [0 0] [2] >= [0 2] X + [0] [0 0] [2] = top#(active(X)) 2nd(mark(X)) = [0] [0] >= [0] [0] = mark(2nd(X)) 2nd(ok(X)) = [0 0] X + [0] [2 2] [4] >= [0 0] X + [0] [1 2] [2] = ok(2nd(X)) active(2nd(X)) = [2 0] X + [0] [0 2] [0] >= [2 0] X + [0] [0 2] [0] = 2nd(active(X)) active(2nd(cons(X,X1))) = [2 0] X + [4 0] X1 + [0] [0 2] [0 4] [0] >= [0] [0] = mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) = [2 0] X + [4 0] Y + [8 0] Z + [2] [0 2] [0 4] [0 8] [0] >= [0] [0] = mark(Y) active(cons(X1,X2)) = [2 0] X1 + [4 0] X2 + [0] [0 1] [0 2] [0] >= [2 0] X1 + [2 0] X2 + [0] [0 1] [0 2] [0] = cons(active(X1),X2) active(cons1(X1,X2)) = [2 0] X1 + [4 0] X2 + [2] [0 1] [0 2] [0] >= [1 0] X1 + [4 0] X2 + [1] [0 1] [0 2] [0] = cons1(X1,active(X2)) active(cons1(X1,X2)) = [2 0] X1 + [4 0] X2 + [2] [0 1] [0 2] [0] >= [2 0] X1 + [2 0] X2 + [1] [0 1] [0 2] [0] = cons1(active(X1),X2) active(from(X)) = [2 0] X + [0] [0 1] [0] >= [2 0] X + [0] [0 1] [0] = from(active(X)) active(from(X)) = [2 0] X + [0] [0 1] [0] >= [0] [0] = mark(cons(X,from(s(X)))) active(s(X)) = [4 0] X + [0] [0 2] [0] >= [4 0] X + [0] [0 2] [0] = s(active(X)) cons(mark(X1),X2) = [2 0] X2 + [0] [0 2] [0] >= [0] [0] = mark(cons(X1,X2)) cons(ok(X1),ok(X2)) = [0 0] X1 + [0 0] X2 + [0] [1 1] [2 2] [6] >= [0 0] X1 + [0 0] X2 + [0] [1 1] [2 2] [2] = ok(cons(X1,X2)) cons1(X1,mark(X2)) = [1 0] X1 + [1] [0 1] [0] >= [0] [0] = mark(cons1(X1,X2)) cons1(mark(X1),X2) = [2 0] X2 + [1] [0 2] [0] >= [0] [0] = mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) = [0 0] X1 + [0 0] X2 + [1] [1 1] [2 2] [6] >= [0 0] X1 + [0 0] X2 + [0] [1 1] [2 2] [3] = ok(cons1(X1,X2)) from(mark(X)) = [0] [0] >= [0] [0] = mark(from(X)) from(ok(X)) = [0 0] X + [0] [1 1] [2] >= [0 0] X + [0] [1 1] [2] = ok(from(X)) proper(2nd(X)) = [1 0] X + [0] [0 0] [0] >= [1 0] X + [0] [0 0] [0] = 2nd(proper(X)) proper(cons(X1,X2)) = [1 0] X1 + [2 0] X2 + [0] [0 0] [0 0] [0] >= [1 0] X1 + [2 0] X2 + [0] [0 0] [0 0] [0] = cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) = [1 0] X1 + [2 0] X2 + [1] [0 0] [0 0] [0] >= [1 0] X1 + [2 0] X2 + [1] [0 0] [0 0] [0] = cons1(proper(X1),proper(X2)) proper(from(X)) = [1 0] X + [0] [0 0] [0] >= [1 0] X + [0] [0 0] [0] = from(proper(X)) proper(s(X)) = [2 0] X + [0] [0 0] [0] >= [2 0] X + [0] [0 0] [0] = s(proper(X)) s(mark(X)) = [0] [0] >= [0] [0] = mark(s(X)) s(ok(X)) = [0 0] X + [0] [2 2] [4] >= [0 0] X + [0] [2 2] [2] = ok(s(X)) *** Step 5.b:1.a:9: MI WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: active#(cons1(X1,X2)) -> c_8(active#(X1)) active#(s(X)) -> c_11(active#(X)) proper#(cons(X1,X2)) -> c_20(proper#(X1),proper#(X2)) proper#(cons1(X1,X2)) -> c_21(proper#(X1),proper#(X2)) proper#(s(X)) -> c_23(proper#(X)) - Weak DPs: active#(2nd(X)) -> c_3(active#(X)) active#(cons(X1,X2)) -> c_6(active#(X1)) active#(cons1(X1,X2)) -> c_7(active#(X2)) active#(from(X)) -> c_9(active#(X)) proper#(2nd(X)) -> c_19(proper#(X)) proper#(from(X)) -> c_22(proper#(X)) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/1,c_4/2,c_5/0,c_6/1,c_7/1,c_8/1,c_9/1,c_10/3,c_11/1,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/1,c_20/2,c_21/2,c_22/1,c_23/1,c_24/1,c_25/1,c_26/2,c_27/2} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: MI {miKind = Automaton Nothing, miDimension = 2, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules} + Details: We apply a matrix interpretation of kind Automaton Nothing: The following argument positions are considered usable: uargs(c_3) = {1}, uargs(c_6) = {1}, uargs(c_7) = {1}, uargs(c_8) = {1}, uargs(c_9) = {1}, uargs(c_11) = {1}, uargs(c_19) = {1}, uargs(c_20) = {1,2}, uargs(c_21) = {1,2}, uargs(c_22) = {1}, uargs(c_23) = {1} Following symbols are considered usable: {2nd,active,cons,cons1,from,proper,s,2nd#,active#,cons#,cons1#,from#,proper#,s#,top#} TcT has computed the following interpretation: p(2nd) = [1 0] x_1 + [1] [0 2] [0] p(active) = [2 0] x_1 + [0] [0 1] [0] p(cons) = [2 0] x_1 + [1 0] x_2 + [1] [0 2] [0 1] [0] p(cons1) = [1 0] x_1 + [1 0] x_2 + [0] [0 2] [0 1] [0] p(from) = [2 0] x_1 + [1] [0 2] [0] p(mark) = [1 0] x_1 + [0] [0 0] [0] p(ok) = [1 0] x_1 + [0] [1 1] [2] p(proper) = [1 0] x_1 + [0] [0 0] [0] p(s) = [1 0] x_1 + [0] [0 1] [0] p(top) = [0 0] x_1 + [1] [0 1] [0] p(2nd#) = [0] [0] p(active#) = [0] [1] p(cons#) = [0 0] x_1 + [0 0] x_2 + [2] [0 2] [0 1] [0] p(cons1#) = [1] [1] p(from#) = [0] [0] p(proper#) = [2 0] x_1 + [0] [0 0] [0] p(s#) = [0 0] x_1 + [0] [2 0] [1] p(top#) = [2 2] x_1 + [0] [1 3] [0] p(c_1) = [0] [1] p(c_2) = [2] [0] p(c_3) = [1 0] x_1 + [0] [0 1] [0] p(c_4) = [0 0] x_1 + [2 0] x_2 + [1] [1 1] [0 0] [0] p(c_5) = [0] [1] p(c_6) = [2 0] x_1 + [0] [2 0] [1] p(c_7) = [1 0] x_1 + [0] [0 0] [0] p(c_8) = [1 0] x_1 + [0] [2 0] [1] p(c_9) = [2 0] x_1 + [0] [0 1] [0] p(c_10) = [0 1] x_1 + [0 1] x_2 + [0 0] x_3 + [0] [0 1] [0 0] [1 0] [0] p(c_11) = [2 0] x_1 + [0] [1 1] [0] p(c_12) = [1 0] x_1 + [0] [1 0] [1] p(c_13) = [0] [0] p(c_14) = [2 2] x_1 + [2] [0 2] [1] p(c_15) = [0] [1] p(c_16) = [1 0] x_1 + [0] [0 2] [1] p(c_17) = [1] [0] p(c_18) = [2 0] x_1 + [0] [1 0] [1] p(c_19) = [1 0] x_1 + [2] [0 1] [0] p(c_20) = [1 0] x_1 + [1 1] x_2 + [0] [0 1] [0 0] [0] p(c_21) = [1 0] x_1 + [1 0] x_2 + [0] [0 0] [0 2] [0] p(c_22) = [1 1] x_1 + [0] [0 0] [0] p(c_23) = [1 0] x_1 + [0] [0 0] [0] p(c_24) = [2 0] x_1 + [0] [0 0] [0] p(c_25) = [0 0] x_1 + [0] [0 2] [0] p(c_26) = [1 0] x_1 + [2] [0 0] [0] p(c_27) = [1 1] x_1 + [1 0] x_2 + [2] [0 0] [0 1] [1] Following rules are strictly oriented: proper#(cons(X1,X2)) = [4 0] X1 + [2 0] X2 + [2] [0 0] [0 0] [0] > [2 0] X1 + [2 0] X2 + [0] [0 0] [0 0] [0] = c_20(proper#(X1),proper#(X2)) Following rules are (at-least) weakly oriented: active#(2nd(X)) = [0] [1] >= [0] [1] = c_3(active#(X)) active#(cons(X1,X2)) = [0] [1] >= [0] [1] = c_6(active#(X1)) active#(cons1(X1,X2)) = [0] [1] >= [0] [0] = c_7(active#(X2)) active#(cons1(X1,X2)) = [0] [1] >= [0] [1] = c_8(active#(X1)) active#(from(X)) = [0] [1] >= [0] [1] = c_9(active#(X)) active#(s(X)) = [0] [1] >= [0] [1] = c_11(active#(X)) proper#(2nd(X)) = [2 0] X + [2] [0 0] [0] >= [2 0] X + [2] [0 0] [0] = c_19(proper#(X)) proper#(cons1(X1,X2)) = [2 0] X1 + [2 0] X2 + [0] [0 0] [0 0] [0] >= [2 0] X1 + [2 0] X2 + [0] [0 0] [0 0] [0] = c_21(proper#(X1),proper#(X2)) proper#(from(X)) = [4 0] X + [2] [0 0] [0] >= [2 0] X + [0] [0 0] [0] = c_22(proper#(X)) proper#(s(X)) = [2 0] X + [0] [0 0] [0] >= [2 0] X + [0] [0 0] [0] = c_23(proper#(X)) top#(mark(X)) = [2 0] X + [0] [1 0] [0] >= [2 0] X + [0] [0 0] [0] = proper#(X) top#(mark(X)) = [2 0] X + [0] [1 0] [0] >= [2 0] X + [0] [1 0] [0] = top#(proper(X)) top#(ok(X)) = [4 2] X + [4] [4 3] [6] >= [0] [1] = active#(X) top#(ok(X)) = [4 2] X + [4] [4 3] [6] >= [4 2] X + [0] [2 3] [0] = top#(active(X)) 2nd(mark(X)) = [1 0] X + [1] [0 0] [0] >= [1 0] X + [1] [0 0] [0] = mark(2nd(X)) 2nd(ok(X)) = [1 0] X + [1] [2 2] [4] >= [1 0] X + [1] [1 2] [3] = ok(2nd(X)) active(2nd(X)) = [2 0] X + [2] [0 2] [0] >= [2 0] X + [1] [0 2] [0] = 2nd(active(X)) active(2nd(cons(X,X1))) = [4 0] X + [2 0] X1 + [4] [0 4] [0 2] [0] >= [1 0] X + [1 0] X1 + [1] [0 0] [0 0] [0] = mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) = [2 0] X + [4 0] Y + [2 0] Z + [4] [0 4] [0 4] [0 2] [0] >= [1 0] Y + [0] [0 0] [0] = mark(Y) active(cons(X1,X2)) = [4 0] X1 + [2 0] X2 + [2] [0 2] [0 1] [0] >= [4 0] X1 + [1 0] X2 + [1] [0 2] [0 1] [0] = cons(active(X1),X2) active(cons1(X1,X2)) = [2 0] X1 + [2 0] X2 + [0] [0 2] [0 1] [0] >= [1 0] X1 + [2 0] X2 + [0] [0 2] [0 1] [0] = cons1(X1,active(X2)) active(cons1(X1,X2)) = [2 0] X1 + [2 0] X2 + [0] [0 2] [0 1] [0] >= [2 0] X1 + [1 0] X2 + [0] [0 2] [0 1] [0] = cons1(active(X1),X2) active(from(X)) = [4 0] X + [2] [0 2] [0] >= [4 0] X + [1] [0 2] [0] = from(active(X)) active(from(X)) = [4 0] X + [2] [0 2] [0] >= [4 0] X + [2] [0 0] [0] = mark(cons(X,from(s(X)))) active(s(X)) = [2 0] X + [0] [0 1] [0] >= [2 0] X + [0] [0 1] [0] = s(active(X)) cons(mark(X1),X2) = [2 0] X1 + [1 0] X2 + [1] [0 0] [0 1] [0] >= [2 0] X1 + [1 0] X2 + [1] [0 0] [0 0] [0] = mark(cons(X1,X2)) cons(ok(X1),ok(X2)) = [2 0] X1 + [1 0] X2 + [1] [2 2] [1 1] [6] >= [2 0] X1 + [1 0] X2 + [1] [2 2] [1 1] [3] = ok(cons(X1,X2)) cons1(X1,mark(X2)) = [1 0] X1 + [1 0] X2 + [0] [0 2] [0 0] [0] >= [1 0] X1 + [1 0] X2 + [0] [0 0] [0 0] [0] = mark(cons1(X1,X2)) cons1(mark(X1),X2) = [1 0] X1 + [1 0] X2 + [0] [0 0] [0 1] [0] >= [1 0] X1 + [1 0] X2 + [0] [0 0] [0 0] [0] = mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) = [1 0] X1 + [1 0] X2 + [0] [2 2] [1 1] [6] >= [1 0] X1 + [1 0] X2 + [0] [1 2] [1 1] [2] = ok(cons1(X1,X2)) from(mark(X)) = [2 0] X + [1] [0 0] [0] >= [2 0] X + [1] [0 0] [0] = mark(from(X)) from(ok(X)) = [2 0] X + [1] [2 2] [4] >= [2 0] X + [1] [2 2] [3] = ok(from(X)) proper(2nd(X)) = [1 0] X + [1] [0 0] [0] >= [1 0] X + [1] [0 0] [0] = 2nd(proper(X)) proper(cons(X1,X2)) = [2 0] X1 + [1 0] X2 + [1] [0 0] [0 0] [0] >= [2 0] X1 + [1 0] X2 + [1] [0 0] [0 0] [0] = cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) = [1 0] X1 + [1 0] X2 + [0] [0 0] [0 0] [0] >= [1 0] X1 + [1 0] X2 + [0] [0 0] [0 0] [0] = cons1(proper(X1),proper(X2)) proper(from(X)) = [2 0] X + [1] [0 0] [0] >= [2 0] X + [1] [0 0] [0] = from(proper(X)) proper(s(X)) = [1 0] X + [0] [0 0] [0] >= [1 0] X + [0] [0 0] [0] = s(proper(X)) s(mark(X)) = [1 0] X + [0] [0 0] [0] >= [1 0] X + [0] [0 0] [0] = mark(s(X)) s(ok(X)) = [1 0] X + [0] [1 1] [2] >= [1 0] X + [0] [1 1] [2] = ok(s(X)) *** Step 5.b:1.a:10: MI WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: active#(cons1(X1,X2)) -> c_8(active#(X1)) active#(s(X)) -> c_11(active#(X)) proper#(cons1(X1,X2)) -> c_21(proper#(X1),proper#(X2)) proper#(s(X)) -> c_23(proper#(X)) - Weak DPs: active#(2nd(X)) -> c_3(active#(X)) active#(cons(X1,X2)) -> c_6(active#(X1)) active#(cons1(X1,X2)) -> c_7(active#(X2)) active#(from(X)) -> c_9(active#(X)) proper#(2nd(X)) -> c_19(proper#(X)) proper#(cons(X1,X2)) -> c_20(proper#(X1),proper#(X2)) proper#(from(X)) -> c_22(proper#(X)) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/1,c_4/2,c_5/0,c_6/1,c_7/1,c_8/1,c_9/1,c_10/3,c_11/1,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/1,c_20/2,c_21/2,c_22/1,c_23/1,c_24/1,c_25/1,c_26/2,c_27/2} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: MI {miKind = Automaton Nothing, miDimension = 2, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules} + Details: We apply a matrix interpretation of kind Automaton Nothing: The following argument positions are considered usable: uargs(c_3) = {1}, uargs(c_6) = {1}, uargs(c_7) = {1}, uargs(c_8) = {1}, uargs(c_9) = {1}, uargs(c_11) = {1}, uargs(c_19) = {1}, uargs(c_20) = {1,2}, uargs(c_21) = {1,2}, uargs(c_22) = {1}, uargs(c_23) = {1} Following symbols are considered usable: {2nd,active,cons,cons1,from,proper,s,2nd#,active#,cons#,cons1#,from#,proper#,s#,top#} TcT has computed the following interpretation: p(2nd) = [1 0] x_1 + [0] [0 1] [0] p(active) = [1 0] x_1 + [0] [0 1] [0] p(cons) = [2 0] x_1 + [0] [0 2] [0] p(cons1) = [1 0] x_1 + [2 0] x_2 + [0] [0 1] [0 2] [0] p(from) = [3 0] x_1 + [1] [0 3] [0] p(mark) = [0] [0] p(ok) = [0 0] x_1 + [0] [1 1] [2] p(proper) = [2 0] x_1 + [0] [0 0] [0] p(s) = [2 0] x_1 + [1] [0 2] [0] p(top) = [0] [0] p(2nd#) = [0] [2] p(active#) = [1 0] x_1 + [1] [1 0] [2] p(cons#) = [0 0] x_1 + [0] [2 0] [2] p(cons1#) = [0 0] x_2 + [0] [0 1] [0] p(from#) = [0] [0] p(proper#) = [0] [0] p(s#) = [2] [2] p(top#) = [0 1] x_1 + [0] [0 2] [0] p(c_1) = [0] [0] p(c_2) = [0] [1] p(c_3) = [1 0] x_1 + [0] [0 1] [0] p(c_4) = [2 1] x_1 + [0 2] x_2 + [1] [0 0] [2 1] [0] p(c_5) = [0] [1] p(c_6) = [1 0] x_1 + [0] [0 1] [0] p(c_7) = [1 0] x_1 + [0] [2 0] [0] p(c_8) = [1 0] x_1 + [0] [1 0] [0] p(c_9) = [2 0] x_1 + [0] [3 0] [0] p(c_10) = [0 1] x_1 + [0 0] x_3 + [1] [0 1] [0 1] [1] p(c_11) = [1 0] x_1 + [0] [0 0] [2] p(c_12) = [0] [2] p(c_13) = [1] [1] p(c_14) = [2 0] x_1 + [0] [0 0] [1] p(c_15) = [1] [1] p(c_16) = [0 1] x_1 + [0] [0 0] [0] p(c_17) = [0 1] x_1 + [2] [0 0] [0] p(c_18) = [0 2] x_1 + [1] [2 1] [0] p(c_19) = [1 1] x_1 + [0] [0 1] [0] p(c_20) = [1 0] x_1 + [2 0] x_2 + [0] [0 2] [0 0] [0] p(c_21) = [2 2] x_1 + [1 0] x_2 + [0] [0 0] [1 2] [0] p(c_22) = [2 0] x_1 + [0] [0 1] [0] p(c_23) = [2 0] x_1 + [0] [0 0] [0] p(c_24) = [2 0] x_1 + [0] [1 1] [0] p(c_25) = [0] [2] p(c_26) = [0] [1] p(c_27) = [1] [2] Following rules are strictly oriented: active#(s(X)) = [2 0] X + [2] [2 0] [3] > [1 0] X + [1] [0 0] [2] = c_11(active#(X)) Following rules are (at-least) weakly oriented: active#(2nd(X)) = [1 0] X + [1] [1 0] [2] >= [1 0] X + [1] [1 0] [2] = c_3(active#(X)) active#(cons(X1,X2)) = [2 0] X1 + [1] [2 0] [2] >= [1 0] X1 + [1] [1 0] [2] = c_6(active#(X1)) active#(cons1(X1,X2)) = [1 0] X1 + [2 0] X2 + [1] [1 0] [2 0] [2] >= [1 0] X2 + [1] [2 0] [2] = c_7(active#(X2)) active#(cons1(X1,X2)) = [1 0] X1 + [2 0] X2 + [1] [1 0] [2 0] [2] >= [1 0] X1 + [1] [1 0] [1] = c_8(active#(X1)) active#(from(X)) = [3 0] X + [2] [3 0] [3] >= [2 0] X + [2] [3 0] [3] = c_9(active#(X)) proper#(2nd(X)) = [0] [0] >= [0] [0] = c_19(proper#(X)) proper#(cons(X1,X2)) = [0] [0] >= [0] [0] = c_20(proper#(X1),proper#(X2)) proper#(cons1(X1,X2)) = [0] [0] >= [0] [0] = c_21(proper#(X1),proper#(X2)) proper#(from(X)) = [0] [0] >= [0] [0] = c_22(proper#(X)) proper#(s(X)) = [0] [0] >= [0] [0] = c_23(proper#(X)) top#(mark(X)) = [0] [0] >= [0] [0] = proper#(X) top#(mark(X)) = [0] [0] >= [0] [0] = top#(proper(X)) top#(ok(X)) = [1 1] X + [2] [2 2] [4] >= [1 0] X + [1] [1 0] [2] = active#(X) top#(ok(X)) = [1 1] X + [2] [2 2] [4] >= [0 1] X + [0] [0 2] [0] = top#(active(X)) 2nd(mark(X)) = [0] [0] >= [0] [0] = mark(2nd(X)) 2nd(ok(X)) = [0 0] X + [0] [1 1] [2] >= [0 0] X + [0] [1 1] [2] = ok(2nd(X)) active(2nd(X)) = [1 0] X + [0] [0 1] [0] >= [1 0] X + [0] [0 1] [0] = 2nd(active(X)) active(2nd(cons(X,X1))) = [2 0] X + [0] [0 2] [0] >= [0] [0] = mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) = [1 0] X + [4 0] Y + [0] [0 1] [0 4] [0] >= [0] [0] = mark(Y) active(cons(X1,X2)) = [2 0] X1 + [0] [0 2] [0] >= [2 0] X1 + [0] [0 2] [0] = cons(active(X1),X2) active(cons1(X1,X2)) = [1 0] X1 + [2 0] X2 + [0] [0 1] [0 2] [0] >= [1 0] X1 + [2 0] X2 + [0] [0 1] [0 2] [0] = cons1(X1,active(X2)) active(cons1(X1,X2)) = [1 0] X1 + [2 0] X2 + [0] [0 1] [0 2] [0] >= [1 0] X1 + [2 0] X2 + [0] [0 1] [0 2] [0] = cons1(active(X1),X2) active(from(X)) = [3 0] X + [1] [0 3] [0] >= [3 0] X + [1] [0 3] [0] = from(active(X)) active(from(X)) = [3 0] X + [1] [0 3] [0] >= [0] [0] = mark(cons(X,from(s(X)))) active(s(X)) = [2 0] X + [1] [0 2] [0] >= [2 0] X + [1] [0 2] [0] = s(active(X)) cons(mark(X1),X2) = [0] [0] >= [0] [0] = mark(cons(X1,X2)) cons(ok(X1),ok(X2)) = [0 0] X1 + [0] [2 2] [4] >= [0 0] X1 + [0] [2 2] [2] = ok(cons(X1,X2)) cons1(X1,mark(X2)) = [1 0] X1 + [0] [0 1] [0] >= [0] [0] = mark(cons1(X1,X2)) cons1(mark(X1),X2) = [2 0] X2 + [0] [0 2] [0] >= [0] [0] = mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) = [0 0] X1 + [0 0] X2 + [0] [1 1] [2 2] [6] >= [0 0] X1 + [0 0] X2 + [0] [1 1] [2 2] [2] = ok(cons1(X1,X2)) from(mark(X)) = [1] [0] >= [0] [0] = mark(from(X)) from(ok(X)) = [0 0] X + [1] [3 3] [6] >= [0 0] X + [0] [3 3] [3] = ok(from(X)) proper(2nd(X)) = [2 0] X + [0] [0 0] [0] >= [2 0] X + [0] [0 0] [0] = 2nd(proper(X)) proper(cons(X1,X2)) = [4 0] X1 + [0] [0 0] [0] >= [4 0] X1 + [0] [0 0] [0] = cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) = [2 0] X1 + [4 0] X2 + [0] [0 0] [0 0] [0] >= [2 0] X1 + [4 0] X2 + [0] [0 0] [0 0] [0] = cons1(proper(X1),proper(X2)) proper(from(X)) = [6 0] X + [2] [0 0] [0] >= [6 0] X + [1] [0 0] [0] = from(proper(X)) proper(s(X)) = [4 0] X + [2] [0 0] [0] >= [4 0] X + [1] [0 0] [0] = s(proper(X)) s(mark(X)) = [1] [0] >= [0] [0] = mark(s(X)) s(ok(X)) = [0 0] X + [1] [2 2] [4] >= [0 0] X + [0] [2 2] [3] = ok(s(X)) *** Step 5.b:1.a:11: MI WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: active#(cons1(X1,X2)) -> c_8(active#(X1)) proper#(cons1(X1,X2)) -> c_21(proper#(X1),proper#(X2)) proper#(s(X)) -> c_23(proper#(X)) - Weak DPs: active#(2nd(X)) -> c_3(active#(X)) active#(cons(X1,X2)) -> c_6(active#(X1)) active#(cons1(X1,X2)) -> c_7(active#(X2)) active#(from(X)) -> c_9(active#(X)) active#(s(X)) -> c_11(active#(X)) proper#(2nd(X)) -> c_19(proper#(X)) proper#(cons(X1,X2)) -> c_20(proper#(X1),proper#(X2)) proper#(from(X)) -> c_22(proper#(X)) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/1,c_4/2,c_5/0,c_6/1,c_7/1,c_8/1,c_9/1,c_10/3,c_11/1,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/1,c_20/2,c_21/2,c_22/1,c_23/1,c_24/1,c_25/1,c_26/2,c_27/2} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: MI {miKind = Automaton Nothing, miDimension = 2, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules} + Details: We apply a matrix interpretation of kind Automaton Nothing: The following argument positions are considered usable: uargs(c_3) = {1}, uargs(c_6) = {1}, uargs(c_7) = {1}, uargs(c_8) = {1}, uargs(c_9) = {1}, uargs(c_11) = {1}, uargs(c_19) = {1}, uargs(c_20) = {1,2}, uargs(c_21) = {1,2}, uargs(c_22) = {1}, uargs(c_23) = {1} Following symbols are considered usable: {2nd,active,cons,cons1,from,proper,s,2nd#,active#,cons#,cons1#,from#,proper#,s#,top#} TcT has computed the following interpretation: p(2nd) = [1 0] x_1 + [0] [0 2] [0] p(active) = [2 0] x_1 + [1] [0 1] [0] p(cons) = [1 0] x_1 + [0 0] x_2 + [1] [0 1] [0 2] [0] p(cons1) = [1 0] x_1 + [2 0] x_2 + [1] [0 1] [0 2] [0] p(from) = [2 0] x_1 + [2] [0 2] [0] p(mark) = [0] [0] p(ok) = [0 0] x_1 + [0] [1 1] [2] p(proper) = [1 0] x_1 + [0] [0 0] [0] p(s) = [1 0] x_1 + [0] [0 1] [0] p(top) = [1] [0] p(2nd#) = [1 0] x_1 + [0] [2 0] [1] p(active#) = [1 0] x_1 + [0] [0 1] [0] p(cons#) = [0 0] x_1 + [0] [1 0] [0] p(cons1#) = [2 0] x_1 + [2 0] x_2 + [2] [0 0] [1 0] [0] p(from#) = [1 0] x_1 + [0] [2 1] [0] p(proper#) = [0] [0] p(s#) = [0] [2] p(top#) = [0 1] x_1 + [1] [0 1] [0] p(c_1) = [0 0] x_1 + [0] [0 1] [1] p(c_2) = [1] [0] p(c_3) = [1 0] x_1 + [0] [0 2] [0] p(c_4) = [1 0] x_1 + [0 2] x_2 + [0] [0 1] [0 0] [0] p(c_5) = [1] [2] p(c_6) = [1 0] x_1 + [1] [0 0] [0] p(c_7) = [2 0] x_1 + [1] [0 2] [0] p(c_8) = [1 0] x_1 + [0] [0 0] [0] p(c_9) = [2 0] x_1 + [2] [0 1] [0] p(c_10) = [0 0] x_1 + [2 1] x_2 + [2] [0 2] [0 0] [0] p(c_11) = [1 0] x_1 + [0] [0 1] [0] p(c_12) = [2] [1] p(c_13) = [0] [2] p(c_14) = [2 1] x_1 + [0] [0 0] [1] p(c_15) = [0 0] x_1 + [0] [0 1] [1] p(c_16) = [2 1] x_1 + [1] [1 1] [2] p(c_17) = [2 1] x_1 + [0] [0 1] [1] p(c_18) = [1 0] x_1 + [0] [2 2] [1] p(c_19) = [1 0] x_1 + [0] [2 0] [0] p(c_20) = [1 0] x_1 + [1 0] x_2 + [0] [1 0] [2 2] [0] p(c_21) = [1 2] x_1 + [1 0] x_2 + [0] [0 0] [2 0] [0] p(c_22) = [1 0] x_1 + [0] [0 0] [0] p(c_23) = [1 0] x_1 + [0] [0 0] [0] p(c_24) = [1] [0] p(c_25) = [1] [0] p(c_26) = [0 2] x_1 + [1 2] x_2 + [2] [0 0] [0 0] [1] p(c_27) = [0] [0] Following rules are strictly oriented: active#(cons1(X1,X2)) = [1 0] X1 + [2 0] X2 + [1] [0 1] [0 2] [0] > [1 0] X1 + [0] [0 0] [0] = c_8(active#(X1)) Following rules are (at-least) weakly oriented: active#(2nd(X)) = [1 0] X + [0] [0 2] [0] >= [1 0] X + [0] [0 2] [0] = c_3(active#(X)) active#(cons(X1,X2)) = [1 0] X1 + [0 0] X2 + [1] [0 1] [0 2] [0] >= [1 0] X1 + [1] [0 0] [0] = c_6(active#(X1)) active#(cons1(X1,X2)) = [1 0] X1 + [2 0] X2 + [1] [0 1] [0 2] [0] >= [2 0] X2 + [1] [0 2] [0] = c_7(active#(X2)) active#(from(X)) = [2 0] X + [2] [0 2] [0] >= [2 0] X + [2] [0 1] [0] = c_9(active#(X)) active#(s(X)) = [1 0] X + [0] [0 1] [0] >= [1 0] X + [0] [0 1] [0] = c_11(active#(X)) proper#(2nd(X)) = [0] [0] >= [0] [0] = c_19(proper#(X)) proper#(cons(X1,X2)) = [0] [0] >= [0] [0] = c_20(proper#(X1),proper#(X2)) proper#(cons1(X1,X2)) = [0] [0] >= [0] [0] = c_21(proper#(X1),proper#(X2)) proper#(from(X)) = [0] [0] >= [0] [0] = c_22(proper#(X)) proper#(s(X)) = [0] [0] >= [0] [0] = c_23(proper#(X)) top#(mark(X)) = [1] [0] >= [0] [0] = proper#(X) top#(mark(X)) = [1] [0] >= [1] [0] = top#(proper(X)) top#(ok(X)) = [1 1] X + [3] [1 1] [2] >= [1 0] X + [0] [0 1] [0] = active#(X) top#(ok(X)) = [1 1] X + [3] [1 1] [2] >= [0 1] X + [1] [0 1] [0] = top#(active(X)) 2nd(mark(X)) = [0] [0] >= [0] [0] = mark(2nd(X)) 2nd(ok(X)) = [0 0] X + [0] [2 2] [4] >= [0 0] X + [0] [1 2] [2] = ok(2nd(X)) active(2nd(X)) = [2 0] X + [1] [0 2] [0] >= [2 0] X + [1] [0 2] [0] = 2nd(active(X)) active(2nd(cons(X,X1))) = [2 0] X + [0 0] X1 + [3] [0 2] [0 4] [0] >= [0] [0] = mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) = [2 0] X + [4 0] Y + [0 0] Z + [7] [0 2] [0 4] [0 8] [0] >= [0] [0] = mark(Y) active(cons(X1,X2)) = [2 0] X1 + [0 0] X2 + [3] [0 1] [0 2] [0] >= [2 0] X1 + [0 0] X2 + [2] [0 1] [0 2] [0] = cons(active(X1),X2) active(cons1(X1,X2)) = [2 0] X1 + [4 0] X2 + [3] [0 1] [0 2] [0] >= [1 0] X1 + [4 0] X2 + [3] [0 1] [0 2] [0] = cons1(X1,active(X2)) active(cons1(X1,X2)) = [2 0] X1 + [4 0] X2 + [3] [0 1] [0 2] [0] >= [2 0] X1 + [2 0] X2 + [2] [0 1] [0 2] [0] = cons1(active(X1),X2) active(from(X)) = [4 0] X + [5] [0 2] [0] >= [4 0] X + [4] [0 2] [0] = from(active(X)) active(from(X)) = [4 0] X + [5] [0 2] [0] >= [0] [0] = mark(cons(X,from(s(X)))) active(s(X)) = [2 0] X + [1] [0 1] [0] >= [2 0] X + [1] [0 1] [0] = s(active(X)) cons(mark(X1),X2) = [0 0] X2 + [1] [0 2] [0] >= [0] [0] = mark(cons(X1,X2)) cons(ok(X1),ok(X2)) = [0 0] X1 + [0 0] X2 + [1] [1 1] [2 2] [6] >= [0 0] X1 + [0 0] X2 + [0] [1 1] [0 2] [3] = ok(cons(X1,X2)) cons1(X1,mark(X2)) = [1 0] X1 + [1] [0 1] [0] >= [0] [0] = mark(cons1(X1,X2)) cons1(mark(X1),X2) = [2 0] X2 + [1] [0 2] [0] >= [0] [0] = mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) = [0 0] X1 + [0 0] X2 + [1] [1 1] [2 2] [6] >= [0 0] X1 + [0 0] X2 + [0] [1 1] [2 2] [3] = ok(cons1(X1,X2)) from(mark(X)) = [2] [0] >= [0] [0] = mark(from(X)) from(ok(X)) = [0 0] X + [2] [2 2] [4] >= [0 0] X + [0] [2 2] [4] = ok(from(X)) proper(2nd(X)) = [1 0] X + [0] [0 0] [0] >= [1 0] X + [0] [0 0] [0] = 2nd(proper(X)) proper(cons(X1,X2)) = [1 0] X1 + [1] [0 0] [0] >= [1 0] X1 + [1] [0 0] [0] = cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) = [1 0] X1 + [2 0] X2 + [1] [0 0] [0 0] [0] >= [1 0] X1 + [2 0] X2 + [1] [0 0] [0 0] [0] = cons1(proper(X1),proper(X2)) proper(from(X)) = [2 0] X + [2] [0 0] [0] >= [2 0] X + [2] [0 0] [0] = from(proper(X)) proper(s(X)) = [1 0] X + [0] [0 0] [0] >= [1 0] X + [0] [0 0] [0] = s(proper(X)) s(mark(X)) = [0] [0] >= [0] [0] = mark(s(X)) s(ok(X)) = [0 0] X + [0] [1 1] [2] >= [0 0] X + [0] [1 1] [2] = ok(s(X)) *** Step 5.b:1.a:12: MI WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: proper#(cons1(X1,X2)) -> c_21(proper#(X1),proper#(X2)) proper#(s(X)) -> c_23(proper#(X)) - Weak DPs: active#(2nd(X)) -> c_3(active#(X)) active#(cons(X1,X2)) -> c_6(active#(X1)) active#(cons1(X1,X2)) -> c_7(active#(X2)) active#(cons1(X1,X2)) -> c_8(active#(X1)) active#(from(X)) -> c_9(active#(X)) active#(s(X)) -> c_11(active#(X)) proper#(2nd(X)) -> c_19(proper#(X)) proper#(cons(X1,X2)) -> c_20(proper#(X1),proper#(X2)) proper#(from(X)) -> c_22(proper#(X)) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/1,c_4/2,c_5/0,c_6/1,c_7/1,c_8/1,c_9/1,c_10/3,c_11/1,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/1,c_20/2,c_21/2,c_22/1,c_23/1,c_24/1,c_25/1,c_26/2,c_27/2} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: MI {miKind = Automaton Nothing, miDimension = 2, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules} + Details: We apply a matrix interpretation of kind Automaton Nothing: The following argument positions are considered usable: uargs(c_3) = {1}, uargs(c_6) = {1}, uargs(c_7) = {1}, uargs(c_8) = {1}, uargs(c_9) = {1}, uargs(c_11) = {1}, uargs(c_19) = {1}, uargs(c_20) = {1,2}, uargs(c_21) = {1,2}, uargs(c_22) = {1}, uargs(c_23) = {1} Following symbols are considered usable: {2nd,active,cons,cons1,from,proper,s,2nd#,active#,cons#,cons1#,from#,proper#,s#,top#} TcT has computed the following interpretation: p(2nd) = [1 0] x_1 + [0] [0 2] [0] p(active) = [2 0] x_1 + [1] [0 1] [0] p(cons) = [1 0] x_1 + [1 0] x_2 + [2] [0 1] [0 1] [0] p(cons1) = [2 0] x_1 + [1 0] x_2 + [1] [0 2] [0 1] [0] p(from) = [1 0] x_1 + [2] [0 2] [0] p(mark) = [1 0] x_1 + [0] [0 0] [0] p(ok) = [1 0] x_1 + [0] [1 1] [2] p(proper) = [1 0] x_1 + [0] [0 0] [0] p(s) = [1 0] x_1 + [1] [0 2] [0] p(top) = [1] [0] p(2nd#) = [0 0] x_1 + [2] [0 1] [2] p(active#) = [0 0] x_1 + [0] [2 0] [2] p(cons#) = [2] [0] p(cons1#) = [0 0] x_1 + [0 0] x_2 + [0] [2 2] [0 2] [0] p(from#) = [0] [2] p(proper#) = [1 0] x_1 + [1] [0 0] [0] p(s#) = [2] [0] p(top#) = [1 1] x_1 + [2] [0 2] [0] p(c_1) = [0 2] x_1 + [2] [0 0] [0] p(c_2) = [0] [0] p(c_3) = [1 0] x_1 + [0] [2 1] [0] p(c_4) = [0 0] x_2 + [1] [0 1] [0] p(c_5) = [0] [0] p(c_6) = [1 0] x_1 + [0] [0 1] [1] p(c_7) = [1 0] x_1 + [0] [2 0] [2] p(c_8) = [1 0] x_1 + [0] [1 1] [2] p(c_9) = [2 0] x_1 + [0] [0 0] [2] p(c_10) = [0] [0] p(c_11) = [1 0] x_1 + [0] [0 0] [1] p(c_12) = [1] [1] p(c_13) = [2] [1] p(c_14) = [0 0] x_1 + [0] [0 2] [2] p(c_15) = [1] [2] p(c_16) = [0] [1] p(c_17) = [2 0] x_1 + [0] [2 0] [0] p(c_18) = [1 0] x_1 + [0] [0 0] [2] p(c_19) = [1 0] x_1 + [0] [0 0] [0] p(c_20) = [1 0] x_1 + [1 2] x_2 + [0] [0 2] [0 1] [0] p(c_21) = [1 0] x_1 + [1 0] x_2 + [0] [0 1] [0 0] [0] p(c_22) = [1 0] x_1 + [2] [0 0] [0] p(c_23) = [1 2] x_1 + [0] [0 0] [0] p(c_24) = [2] [0] p(c_25) = [1 2] x_1 + [2] [0 0] [0] p(c_26) = [0] [2] p(c_27) = [0 0] x_1 + [2] [2 0] [1] Following rules are strictly oriented: proper#(s(X)) = [1 0] X + [2] [0 0] [0] > [1 0] X + [1] [0 0] [0] = c_23(proper#(X)) Following rules are (at-least) weakly oriented: active#(2nd(X)) = [0 0] X + [0] [2 0] [2] >= [0 0] X + [0] [2 0] [2] = c_3(active#(X)) active#(cons(X1,X2)) = [0 0] X1 + [0 0] X2 + [0] [2 0] [2 0] [6] >= [0 0] X1 + [0] [2 0] [3] = c_6(active#(X1)) active#(cons1(X1,X2)) = [0 0] X1 + [0 0] X2 + [0] [4 0] [2 0] [4] >= [0] [2] = c_7(active#(X2)) active#(cons1(X1,X2)) = [0 0] X1 + [0 0] X2 + [0] [4 0] [2 0] [4] >= [0 0] X1 + [0] [2 0] [4] = c_8(active#(X1)) active#(from(X)) = [0 0] X + [0] [2 0] [6] >= [0] [2] = c_9(active#(X)) active#(s(X)) = [0 0] X + [0] [2 0] [4] >= [0] [1] = c_11(active#(X)) proper#(2nd(X)) = [1 0] X + [1] [0 0] [0] >= [1 0] X + [1] [0 0] [0] = c_19(proper#(X)) proper#(cons(X1,X2)) = [1 0] X1 + [1 0] X2 + [3] [0 0] [0 0] [0] >= [1 0] X1 + [1 0] X2 + [2] [0 0] [0 0] [0] = c_20(proper#(X1),proper#(X2)) proper#(cons1(X1,X2)) = [2 0] X1 + [1 0] X2 + [2] [0 0] [0 0] [0] >= [1 0] X1 + [1 0] X2 + [2] [0 0] [0 0] [0] = c_21(proper#(X1),proper#(X2)) proper#(from(X)) = [1 0] X + [3] [0 0] [0] >= [1 0] X + [3] [0 0] [0] = c_22(proper#(X)) top#(mark(X)) = [1 0] X + [2] [0 0] [0] >= [1 0] X + [1] [0 0] [0] = proper#(X) top#(mark(X)) = [1 0] X + [2] [0 0] [0] >= [1 0] X + [2] [0 0] [0] = top#(proper(X)) top#(ok(X)) = [2 1] X + [4] [2 2] [4] >= [0 0] X + [0] [2 0] [2] = active#(X) top#(ok(X)) = [2 1] X + [4] [2 2] [4] >= [2 1] X + [3] [0 2] [0] = top#(active(X)) 2nd(mark(X)) = [1 0] X + [0] [0 0] [0] >= [1 0] X + [0] [0 0] [0] = mark(2nd(X)) 2nd(ok(X)) = [1 0] X + [0] [2 2] [4] >= [1 0] X + [0] [1 2] [2] = ok(2nd(X)) active(2nd(X)) = [2 0] X + [1] [0 2] [0] >= [2 0] X + [1] [0 2] [0] = 2nd(active(X)) active(2nd(cons(X,X1))) = [2 0] X + [2 0] X1 + [5] [0 2] [0 2] [0] >= [2 0] X + [1 0] X1 + [1] [0 0] [0 0] [0] = mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) = [4 0] X + [2 0] Y + [2 0] Z + [7] [0 4] [0 2] [0 2] [0] >= [1 0] Y + [0] [0 0] [0] = mark(Y) active(cons(X1,X2)) = [2 0] X1 + [2 0] X2 + [5] [0 1] [0 1] [0] >= [2 0] X1 + [1 0] X2 + [3] [0 1] [0 1] [0] = cons(active(X1),X2) active(cons1(X1,X2)) = [4 0] X1 + [2 0] X2 + [3] [0 2] [0 1] [0] >= [2 0] X1 + [2 0] X2 + [2] [0 2] [0 1] [0] = cons1(X1,active(X2)) active(cons1(X1,X2)) = [4 0] X1 + [2 0] X2 + [3] [0 2] [0 1] [0] >= [4 0] X1 + [1 0] X2 + [3] [0 2] [0 1] [0] = cons1(active(X1),X2) active(from(X)) = [2 0] X + [5] [0 2] [0] >= [2 0] X + [3] [0 2] [0] = from(active(X)) active(from(X)) = [2 0] X + [5] [0 2] [0] >= [2 0] X + [5] [0 0] [0] = mark(cons(X,from(s(X)))) active(s(X)) = [2 0] X + [3] [0 2] [0] >= [2 0] X + [2] [0 2] [0] = s(active(X)) cons(mark(X1),X2) = [1 0] X1 + [1 0] X2 + [2] [0 0] [0 1] [0] >= [1 0] X1 + [1 0] X2 + [2] [0 0] [0 0] [0] = mark(cons(X1,X2)) cons(ok(X1),ok(X2)) = [1 0] X1 + [1 0] X2 + [2] [1 1] [1 1] [4] >= [1 0] X1 + [1 0] X2 + [2] [1 1] [1 1] [4] = ok(cons(X1,X2)) cons1(X1,mark(X2)) = [2 0] X1 + [1 0] X2 + [1] [0 2] [0 0] [0] >= [2 0] X1 + [1 0] X2 + [1] [0 0] [0 0] [0] = mark(cons1(X1,X2)) cons1(mark(X1),X2) = [2 0] X1 + [1 0] X2 + [1] [0 0] [0 1] [0] >= [2 0] X1 + [1 0] X2 + [1] [0 0] [0 0] [0] = mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) = [2 0] X1 + [1 0] X2 + [1] [2 2] [1 1] [6] >= [2 0] X1 + [1 0] X2 + [1] [2 2] [1 1] [3] = ok(cons1(X1,X2)) from(mark(X)) = [1 0] X + [2] [0 0] [0] >= [1 0] X + [2] [0 0] [0] = mark(from(X)) from(ok(X)) = [1 0] X + [2] [2 2] [4] >= [1 0] X + [2] [1 2] [4] = ok(from(X)) proper(2nd(X)) = [1 0] X + [0] [0 0] [0] >= [1 0] X + [0] [0 0] [0] = 2nd(proper(X)) proper(cons(X1,X2)) = [1 0] X1 + [1 0] X2 + [2] [0 0] [0 0] [0] >= [1 0] X1 + [1 0] X2 + [2] [0 0] [0 0] [0] = cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) = [2 0] X1 + [1 0] X2 + [1] [0 0] [0 0] [0] >= [2 0] X1 + [1 0] X2 + [1] [0 0] [0 0] [0] = cons1(proper(X1),proper(X2)) proper(from(X)) = [1 0] X + [2] [0 0] [0] >= [1 0] X + [2] [0 0] [0] = from(proper(X)) proper(s(X)) = [1 0] X + [1] [0 0] [0] >= [1 0] X + [1] [0 0] [0] = s(proper(X)) s(mark(X)) = [1 0] X + [1] [0 0] [0] >= [1 0] X + [1] [0 0] [0] = mark(s(X)) s(ok(X)) = [1 0] X + [1] [2 2] [4] >= [1 0] X + [1] [1 2] [3] = ok(s(X)) *** Step 5.b:1.a:13: MI WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: proper#(cons1(X1,X2)) -> c_21(proper#(X1),proper#(X2)) - Weak DPs: active#(2nd(X)) -> c_3(active#(X)) active#(cons(X1,X2)) -> c_6(active#(X1)) active#(cons1(X1,X2)) -> c_7(active#(X2)) active#(cons1(X1,X2)) -> c_8(active#(X1)) active#(from(X)) -> c_9(active#(X)) active#(s(X)) -> c_11(active#(X)) proper#(2nd(X)) -> c_19(proper#(X)) proper#(cons(X1,X2)) -> c_20(proper#(X1),proper#(X2)) proper#(from(X)) -> c_22(proper#(X)) proper#(s(X)) -> c_23(proper#(X)) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/1,c_4/2,c_5/0,c_6/1,c_7/1,c_8/1,c_9/1,c_10/3,c_11/1,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/1,c_20/2,c_21/2,c_22/1,c_23/1,c_24/1,c_25/1,c_26/2,c_27/2} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: MI {miKind = Automaton Nothing, miDimension = 2, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules} + Details: We apply a matrix interpretation of kind Automaton Nothing: The following argument positions are considered usable: uargs(c_3) = {1}, uargs(c_6) = {1}, uargs(c_7) = {1}, uargs(c_8) = {1}, uargs(c_9) = {1}, uargs(c_11) = {1}, uargs(c_19) = {1}, uargs(c_20) = {1,2}, uargs(c_21) = {1,2}, uargs(c_22) = {1}, uargs(c_23) = {1} Following symbols are considered usable: {2nd,active,cons,cons1,from,proper,s,2nd#,active#,cons#,cons1#,from#,proper#,s#,top#} TcT has computed the following interpretation: p(2nd) = [1 0] x_1 + [0] [0 1] [0] p(active) = [1 0] x_1 + [0] [0 3] [1] p(cons) = [1 0] x_1 + [2 0] x_2 + [0] [0 1] [0 2] [0] p(cons1) = [1 0] x_1 + [2 0] x_2 + [0] [0 1] [0 2] [1] p(from) = [1 0] x_1 + [0] [0 1] [0] p(mark) = [0 0] x_1 + [0] [0 1] [0] p(ok) = [1 2] x_1 + [2] [0 1] [0] p(proper) = [0 0] x_1 + [0] [0 1] [0] p(s) = [1 0] x_1 + [0] [0 1] [0] p(top) = [2 0] x_1 + [1] [0 1] [2] p(2nd#) = [0 2] x_1 + [0] [0 0] [0] p(active#) = [0 2] x_1 + [0] [1 1] [0] p(cons#) = [0] [2] p(cons1#) = [0 1] x_1 + [0 2] x_2 + [1] [0 2] [0 1] [0] p(from#) = [2 0] x_1 + [1] [2 0] [0] p(proper#) = [0 2] x_1 + [0] [0 0] [0] p(s#) = [1 0] x_1 + [0] [0 0] [0] p(top#) = [2 2] x_1 + [0] [1 1] [2] p(c_1) = [1 2] x_1 + [0] [2 1] [2] p(c_2) = [0] [0] p(c_3) = [1 0] x_1 + [0] [0 0] [0] p(c_4) = [0 0] x_1 + [2] [2 0] [0] p(c_5) = [2] [1] p(c_6) = [1 0] x_1 + [0] [0 1] [0] p(c_7) = [1 0] x_1 + [2] [0 2] [0] p(c_8) = [1 0] x_1 + [2] [0 1] [0] p(c_9) = [1 0] x_1 + [0] [0 1] [0] p(c_10) = [2 0] x_1 + [2 0] x_3 + [0] [0 1] [1 0] [2] p(c_11) = [1 0] x_1 + [0] [0 0] [0] p(c_12) = [2 1] x_1 + [0] [1 2] [0] p(c_13) = [0 0] x_1 + [0] [2 0] [0] p(c_14) = [1] [1] p(c_15) = [1] [2] p(c_16) = [2] [0] p(c_17) = [0] [0] p(c_18) = [0 0] x_1 + [0] [1 1] [2] p(c_19) = [1 0] x_1 + [0] [0 0] [0] p(c_20) = [1 2] x_1 + [1 1] x_2 + [0] [0 0] [0 0] [0] p(c_21) = [1 0] x_1 + [2 0] x_2 + [0] [0 2] [0 2] [0] p(c_22) = [1 2] x_1 + [0] [0 0] [0] p(c_23) = [1 0] x_1 + [0] [0 0] [0] p(c_24) = [0 0] x_1 + [0] [0 2] [2] p(c_25) = [0 0] x_1 + [2] [0 2] [0] p(c_26) = [0 0] x_1 + [0] [0 1] [2] p(c_27) = [2 2] x_2 + [0] [0 1] [2] Following rules are strictly oriented: proper#(cons1(X1,X2)) = [0 2] X1 + [0 4] X2 + [2] [0 0] [0 0] [0] > [0 2] X1 + [0 4] X2 + [0] [0 0] [0 0] [0] = c_21(proper#(X1),proper#(X2)) Following rules are (at-least) weakly oriented: active#(2nd(X)) = [0 2] X + [0] [1 1] [0] >= [0 2] X + [0] [0 0] [0] = c_3(active#(X)) active#(cons(X1,X2)) = [0 2] X1 + [0 4] X2 + [0] [1 1] [2 2] [0] >= [0 2] X1 + [0] [1 1] [0] = c_6(active#(X1)) active#(cons1(X1,X2)) = [0 2] X1 + [0 4] X2 + [2] [1 1] [2 2] [1] >= [0 2] X2 + [2] [2 2] [0] = c_7(active#(X2)) active#(cons1(X1,X2)) = [0 2] X1 + [0 4] X2 + [2] [1 1] [2 2] [1] >= [0 2] X1 + [2] [1 1] [0] = c_8(active#(X1)) active#(from(X)) = [0 2] X + [0] [1 1] [0] >= [0 2] X + [0] [1 1] [0] = c_9(active#(X)) active#(s(X)) = [0 2] X + [0] [1 1] [0] >= [0 2] X + [0] [0 0] [0] = c_11(active#(X)) proper#(2nd(X)) = [0 2] X + [0] [0 0] [0] >= [0 2] X + [0] [0 0] [0] = c_19(proper#(X)) proper#(cons(X1,X2)) = [0 2] X1 + [0 4] X2 + [0] [0 0] [0 0] [0] >= [0 2] X1 + [0 2] X2 + [0] [0 0] [0 0] [0] = c_20(proper#(X1),proper#(X2)) proper#(from(X)) = [0 2] X + [0] [0 0] [0] >= [0 2] X + [0] [0 0] [0] = c_22(proper#(X)) proper#(s(X)) = [0 2] X + [0] [0 0] [0] >= [0 2] X + [0] [0 0] [0] = c_23(proper#(X)) top#(mark(X)) = [0 2] X + [0] [0 1] [2] >= [0 2] X + [0] [0 0] [0] = proper#(X) top#(mark(X)) = [0 2] X + [0] [0 1] [2] >= [0 2] X + [0] [0 1] [2] = top#(proper(X)) top#(ok(X)) = [2 6] X + [4] [1 3] [4] >= [0 2] X + [0] [1 1] [0] = active#(X) top#(ok(X)) = [2 6] X + [4] [1 3] [4] >= [2 6] X + [2] [1 3] [3] = top#(active(X)) 2nd(mark(X)) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = mark(2nd(X)) 2nd(ok(X)) = [1 2] X + [2] [0 1] [0] >= [1 2] X + [2] [0 1] [0] = ok(2nd(X)) active(2nd(X)) = [1 0] X + [0] [0 3] [1] >= [1 0] X + [0] [0 3] [1] = 2nd(active(X)) active(2nd(cons(X,X1))) = [1 0] X + [2 0] X1 + [0] [0 3] [0 6] [1] >= [0 0] X + [0 0] X1 + [0] [0 1] [0 2] [1] = mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) = [1 0] X + [2 0] Y + [4 0] Z + [0] [0 3] [0 6] [0 12] [4] >= [0 0] Y + [0] [0 1] [0] = mark(Y) active(cons(X1,X2)) = [1 0] X1 + [2 0] X2 + [0] [0 3] [0 6] [1] >= [1 0] X1 + [2 0] X2 + [0] [0 3] [0 2] [1] = cons(active(X1),X2) active(cons1(X1,X2)) = [1 0] X1 + [2 0] X2 + [0] [0 3] [0 6] [4] >= [1 0] X1 + [2 0] X2 + [0] [0 1] [0 6] [3] = cons1(X1,active(X2)) active(cons1(X1,X2)) = [1 0] X1 + [2 0] X2 + [0] [0 3] [0 6] [4] >= [1 0] X1 + [2 0] X2 + [0] [0 3] [0 2] [2] = cons1(active(X1),X2) active(from(X)) = [1 0] X + [0] [0 3] [1] >= [1 0] X + [0] [0 3] [1] = from(active(X)) active(from(X)) = [1 0] X + [0] [0 3] [1] >= [0 0] X + [0] [0 3] [0] = mark(cons(X,from(s(X)))) active(s(X)) = [1 0] X + [0] [0 3] [1] >= [1 0] X + [0] [0 3] [1] = s(active(X)) cons(mark(X1),X2) = [0 0] X1 + [2 0] X2 + [0] [0 1] [0 2] [0] >= [0 0] X1 + [0 0] X2 + [0] [0 1] [0 2] [0] = mark(cons(X1,X2)) cons(ok(X1),ok(X2)) = [1 2] X1 + [2 4] X2 + [6] [0 1] [0 2] [0] >= [1 2] X1 + [2 4] X2 + [2] [0 1] [0 2] [0] = ok(cons(X1,X2)) cons1(X1,mark(X2)) = [1 0] X1 + [0 0] X2 + [0] [0 1] [0 2] [1] >= [0 0] X1 + [0 0] X2 + [0] [0 1] [0 2] [1] = mark(cons1(X1,X2)) cons1(mark(X1),X2) = [0 0] X1 + [2 0] X2 + [0] [0 1] [0 2] [1] >= [0 0] X1 + [0 0] X2 + [0] [0 1] [0 2] [1] = mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) = [1 2] X1 + [2 4] X2 + [6] [0 1] [0 2] [1] >= [1 2] X1 + [2 4] X2 + [4] [0 1] [0 2] [1] = ok(cons1(X1,X2)) from(mark(X)) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = mark(from(X)) from(ok(X)) = [1 2] X + [2] [0 1] [0] >= [1 2] X + [2] [0 1] [0] = ok(from(X)) proper(2nd(X)) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = 2nd(proper(X)) proper(cons(X1,X2)) = [0 0] X1 + [0 0] X2 + [0] [0 1] [0 2] [0] >= [0 0] X1 + [0 0] X2 + [0] [0 1] [0 2] [0] = cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) = [0 0] X1 + [0 0] X2 + [0] [0 1] [0 2] [1] >= [0 0] X1 + [0 0] X2 + [0] [0 1] [0 2] [1] = cons1(proper(X1),proper(X2)) proper(from(X)) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = from(proper(X)) proper(s(X)) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = s(proper(X)) s(mark(X)) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = mark(s(X)) s(ok(X)) = [1 2] X + [2] [0 1] [0] >= [1 2] X + [2] [0 1] [0] = ok(s(X)) *** Step 5.b:1.a:14: EmptyProcessor WORST_CASE(?,O(1)) + Considered Problem: - Weak DPs: active#(2nd(X)) -> c_3(active#(X)) active#(cons(X1,X2)) -> c_6(active#(X1)) active#(cons1(X1,X2)) -> c_7(active#(X2)) active#(cons1(X1,X2)) -> c_8(active#(X1)) active#(from(X)) -> c_9(active#(X)) active#(s(X)) -> c_11(active#(X)) proper#(2nd(X)) -> c_19(proper#(X)) proper#(cons(X1,X2)) -> c_20(proper#(X1),proper#(X2)) proper#(cons1(X1,X2)) -> c_21(proper#(X1),proper#(X2)) proper#(from(X)) -> c_22(proper#(X)) proper#(s(X)) -> c_23(proper#(X)) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/1,c_4/2,c_5/0,c_6/1,c_7/1,c_8/1,c_9/1,c_10/3,c_11/1,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/1,c_20/2,c_21/2,c_22/1,c_23/1,c_24/1,c_25/1,c_26/2,c_27/2} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: EmptyProcessor + Details: The problem is already closed. The intended complexity is O(1). *** Step 5.b:1.b:1: NaturalMI WORST_CASE(?,O(n^3)) + Considered Problem: - Strict DPs: 2nd#(mark(X)) -> c_1(2nd#(X)) 2nd#(ok(X)) -> c_2(2nd#(X)) active#(2nd(cons(X,X1))) -> c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) active#(from(X)) -> c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) cons#(mark(X1),X2) -> c_12(cons#(X1,X2)) cons#(ok(X1),ok(X2)) -> c_13(cons#(X1,X2)) cons1#(X1,mark(X2)) -> c_14(cons1#(X1,X2)) cons1#(mark(X1),X2) -> c_15(cons1#(X1,X2)) cons1#(ok(X1),ok(X2)) -> c_16(cons1#(X1,X2)) from#(mark(X)) -> c_17(from#(X)) from#(ok(X)) -> c_18(from#(X)) s#(mark(X)) -> c_24(s#(X)) s#(ok(X)) -> c_25(s#(X)) - Weak DPs: active#(2nd(X)) -> 2nd#(active(X)) active#(2nd(X)) -> active#(X) active#(cons(X1,X2)) -> active#(X1) active#(cons(X1,X2)) -> cons#(active(X1),X2) active#(cons1(X1,X2)) -> active#(X1) active#(cons1(X1,X2)) -> active#(X2) active#(cons1(X1,X2)) -> cons1#(X1,active(X2)) active#(cons1(X1,X2)) -> cons1#(active(X1),X2) active#(from(X)) -> active#(X) active#(from(X)) -> from#(active(X)) active#(s(X)) -> active#(X) active#(s(X)) -> s#(active(X)) proper#(2nd(X)) -> 2nd#(proper(X)) proper#(2nd(X)) -> proper#(X) proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) proper#(cons(X1,X2)) -> proper#(X1) proper#(cons(X1,X2)) -> proper#(X2) proper#(cons1(X1,X2)) -> cons1#(proper(X1),proper(X2)) proper#(cons1(X1,X2)) -> proper#(X1) proper#(cons1(X1,X2)) -> proper#(X2) proper#(from(X)) -> from#(proper(X)) proper#(from(X)) -> proper#(X) proper#(s(X)) -> proper#(X) proper#(s(X)) -> s#(proper(X)) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/2,c_4/2,c_5/0,c_6/2,c_7/2,c_8/2,c_9/2,c_10/3,c_11/2,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/2,c_20/3,c_21/3,c_22/2,c_23/2,c_24/1,c_25/1,c_26/2,c_27/2} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(c_1) = {1}, uargs(c_2) = {1}, uargs(c_4) = {1,2}, uargs(c_10) = {1,2,3}, uargs(c_12) = {1}, uargs(c_13) = {1}, uargs(c_14) = {1}, uargs(c_15) = {1}, uargs(c_16) = {1}, uargs(c_17) = {1}, uargs(c_18) = {1}, uargs(c_24) = {1}, uargs(c_25) = {1} Following symbols are considered usable: {2nd#,active#,cons#,cons1#,from#,proper#,s#,top#} TcT has computed the following interpretation: p(2nd) = [3] p(active) = [0] p(cons) = [0] p(cons1) = [0] p(from) = [0] p(mark) = [0] p(ok) = [0] p(proper) = [1] x1 + [7] p(s) = [0] p(top) = [0] p(2nd#) = [0] p(active#) = [5] p(cons#) = [0] p(cons1#) = [0] p(from#) = [0] p(proper#) = [0] p(s#) = [0] p(top#) = [5] p(c_1) = [1] x1 + [0] p(c_2) = [1] x1 + [0] p(c_3) = [0] p(c_4) = [1] x1 + [4] x2 + [1] p(c_5) = [0] p(c_6) = [0] p(c_7) = [0] p(c_8) = [0] p(c_9) = [0] p(c_10) = [1] x1 + [1] x2 + [1] x3 + [5] p(c_11) = [0] p(c_12) = [1] x1 + [0] p(c_13) = [4] x1 + [0] p(c_14) = [1] x1 + [0] p(c_15) = [1] x1 + [0] p(c_16) = [1] x1 + [0] p(c_17) = [1] x1 + [0] p(c_18) = [1] x1 + [0] p(c_19) = [0] p(c_20) = [0] p(c_21) = [0] p(c_22) = [0] p(c_23) = [2] x1 + [2] x2 + [0] p(c_24) = [2] x1 + [0] p(c_25) = [1] x1 + [0] p(c_26) = [1] x1 + [1] p(c_27) = [0] Following rules are strictly oriented: active#(2nd(cons(X,X1))) = [5] > [1] = c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) Following rules are (at-least) weakly oriented: 2nd#(mark(X)) = [0] >= [0] = c_1(2nd#(X)) 2nd#(ok(X)) = [0] >= [0] = c_2(2nd#(X)) active#(2nd(X)) = [5] >= [0] = 2nd#(active(X)) active#(2nd(X)) = [5] >= [5] = active#(X) active#(cons(X1,X2)) = [5] >= [5] = active#(X1) active#(cons(X1,X2)) = [5] >= [0] = cons#(active(X1),X2) active#(cons1(X1,X2)) = [5] >= [5] = active#(X1) active#(cons1(X1,X2)) = [5] >= [5] = active#(X2) active#(cons1(X1,X2)) = [5] >= [0] = cons1#(X1,active(X2)) active#(cons1(X1,X2)) = [5] >= [0] = cons1#(active(X1),X2) active#(from(X)) = [5] >= [5] = active#(X) active#(from(X)) = [5] >= [0] = from#(active(X)) active#(from(X)) = [5] >= [5] = c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) = [5] >= [5] = active#(X) active#(s(X)) = [5] >= [0] = s#(active(X)) cons#(mark(X1),X2) = [0] >= [0] = c_12(cons#(X1,X2)) cons#(ok(X1),ok(X2)) = [0] >= [0] = c_13(cons#(X1,X2)) cons1#(X1,mark(X2)) = [0] >= [0] = c_14(cons1#(X1,X2)) cons1#(mark(X1),X2) = [0] >= [0] = c_15(cons1#(X1,X2)) cons1#(ok(X1),ok(X2)) = [0] >= [0] = c_16(cons1#(X1,X2)) from#(mark(X)) = [0] >= [0] = c_17(from#(X)) from#(ok(X)) = [0] >= [0] = c_18(from#(X)) proper#(2nd(X)) = [0] >= [0] = 2nd#(proper(X)) proper#(2nd(X)) = [0] >= [0] = proper#(X) proper#(cons(X1,X2)) = [0] >= [0] = cons#(proper(X1),proper(X2)) proper#(cons(X1,X2)) = [0] >= [0] = proper#(X1) proper#(cons(X1,X2)) = [0] >= [0] = proper#(X2) proper#(cons1(X1,X2)) = [0] >= [0] = cons1#(proper(X1),proper(X2)) proper#(cons1(X1,X2)) = [0] >= [0] = proper#(X1) proper#(cons1(X1,X2)) = [0] >= [0] = proper#(X2) proper#(from(X)) = [0] >= [0] = from#(proper(X)) proper#(from(X)) = [0] >= [0] = proper#(X) proper#(s(X)) = [0] >= [0] = proper#(X) proper#(s(X)) = [0] >= [0] = s#(proper(X)) s#(mark(X)) = [0] >= [0] = c_24(s#(X)) s#(ok(X)) = [0] >= [0] = c_25(s#(X)) top#(mark(X)) = [5] >= [0] = proper#(X) top#(mark(X)) = [5] >= [5] = top#(proper(X)) top#(ok(X)) = [5] >= [5] = active#(X) top#(ok(X)) = [5] >= [5] = top#(active(X)) *** Step 5.b:1.b:2: NaturalMI WORST_CASE(?,O(n^3)) + Considered Problem: - Strict DPs: 2nd#(mark(X)) -> c_1(2nd#(X)) 2nd#(ok(X)) -> c_2(2nd#(X)) active#(from(X)) -> c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) cons#(mark(X1),X2) -> c_12(cons#(X1,X2)) cons#(ok(X1),ok(X2)) -> c_13(cons#(X1,X2)) cons1#(X1,mark(X2)) -> c_14(cons1#(X1,X2)) cons1#(mark(X1),X2) -> c_15(cons1#(X1,X2)) cons1#(ok(X1),ok(X2)) -> c_16(cons1#(X1,X2)) from#(mark(X)) -> c_17(from#(X)) from#(ok(X)) -> c_18(from#(X)) s#(mark(X)) -> c_24(s#(X)) s#(ok(X)) -> c_25(s#(X)) - Weak DPs: active#(2nd(X)) -> 2nd#(active(X)) active#(2nd(X)) -> active#(X) active#(2nd(cons(X,X1))) -> c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) active#(cons(X1,X2)) -> active#(X1) active#(cons(X1,X2)) -> cons#(active(X1),X2) active#(cons1(X1,X2)) -> active#(X1) active#(cons1(X1,X2)) -> active#(X2) active#(cons1(X1,X2)) -> cons1#(X1,active(X2)) active#(cons1(X1,X2)) -> cons1#(active(X1),X2) active#(from(X)) -> active#(X) active#(from(X)) -> from#(active(X)) active#(s(X)) -> active#(X) active#(s(X)) -> s#(active(X)) proper#(2nd(X)) -> 2nd#(proper(X)) proper#(2nd(X)) -> proper#(X) proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) proper#(cons(X1,X2)) -> proper#(X1) proper#(cons(X1,X2)) -> proper#(X2) proper#(cons1(X1,X2)) -> cons1#(proper(X1),proper(X2)) proper#(cons1(X1,X2)) -> proper#(X1) proper#(cons1(X1,X2)) -> proper#(X2) proper#(from(X)) -> from#(proper(X)) proper#(from(X)) -> proper#(X) proper#(s(X)) -> proper#(X) proper#(s(X)) -> s#(proper(X)) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/2,c_4/2,c_5/0,c_6/2,c_7/2,c_8/2,c_9/2,c_10/3,c_11/2,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/2,c_20/3,c_21/3,c_22/2,c_23/2,c_24/1,c_25/1,c_26/2,c_27/2} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(c_1) = {1}, uargs(c_2) = {1}, uargs(c_4) = {1,2}, uargs(c_10) = {1,2,3}, uargs(c_12) = {1}, uargs(c_13) = {1}, uargs(c_14) = {1}, uargs(c_15) = {1}, uargs(c_16) = {1}, uargs(c_17) = {1}, uargs(c_18) = {1}, uargs(c_24) = {1}, uargs(c_25) = {1} Following symbols are considered usable: {2nd#,active#,cons#,cons1#,from#,proper#,s#,top#} TcT has computed the following interpretation: p(2nd) = [4] p(active) = [3] p(cons) = [3] x1 + [4] p(cons1) = [4] p(from) = [0] p(mark) = [0] p(ok) = [0] p(proper) = [0] p(s) = [2] p(top) = [0] p(2nd#) = [0] p(active#) = [1] p(cons#) = [0] p(cons1#) = [0] p(from#) = [0] p(proper#) = [2] p(s#) = [0] p(top#) = [5] p(c_1) = [1] x1 + [0] p(c_2) = [1] x1 + [0] p(c_3) = [1] x2 + [0] p(c_4) = [1] x1 + [1] x2 + [1] p(c_5) = [0] p(c_6) = [2] x2 + [1] p(c_7) = [0] p(c_8) = [0] p(c_9) = [1] x2 + [2] p(c_10) = [4] x1 + [1] x2 + [4] x3 + [0] p(c_11) = [1] x1 + [4] x2 + [0] p(c_12) = [2] x1 + [0] p(c_13) = [2] x1 + [0] p(c_14) = [1] x1 + [0] p(c_15) = [1] x1 + [0] p(c_16) = [1] x1 + [0] p(c_17) = [1] x1 + [0] p(c_18) = [1] x1 + [0] p(c_19) = [2] p(c_20) = [0] p(c_21) = [1] x1 + [2] x2 + [2] x3 + [0] p(c_22) = [1] x2 + [0] p(c_23) = [1] x2 + [2] p(c_24) = [1] x1 + [0] p(c_25) = [1] x1 + [0] p(c_26) = [1] x1 + [1] x2 + [0] p(c_27) = [1] x1 + [0] Following rules are strictly oriented: active#(from(X)) = [1] > [0] = c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) Following rules are (at-least) weakly oriented: 2nd#(mark(X)) = [0] >= [0] = c_1(2nd#(X)) 2nd#(ok(X)) = [0] >= [0] = c_2(2nd#(X)) active#(2nd(X)) = [1] >= [0] = 2nd#(active(X)) active#(2nd(X)) = [1] >= [1] = active#(X) active#(2nd(cons(X,X1))) = [1] >= [1] = c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) active#(cons(X1,X2)) = [1] >= [1] = active#(X1) active#(cons(X1,X2)) = [1] >= [0] = cons#(active(X1),X2) active#(cons1(X1,X2)) = [1] >= [1] = active#(X1) active#(cons1(X1,X2)) = [1] >= [1] = active#(X2) active#(cons1(X1,X2)) = [1] >= [0] = cons1#(X1,active(X2)) active#(cons1(X1,X2)) = [1] >= [0] = cons1#(active(X1),X2) active#(from(X)) = [1] >= [1] = active#(X) active#(from(X)) = [1] >= [0] = from#(active(X)) active#(s(X)) = [1] >= [1] = active#(X) active#(s(X)) = [1] >= [0] = s#(active(X)) cons#(mark(X1),X2) = [0] >= [0] = c_12(cons#(X1,X2)) cons#(ok(X1),ok(X2)) = [0] >= [0] = c_13(cons#(X1,X2)) cons1#(X1,mark(X2)) = [0] >= [0] = c_14(cons1#(X1,X2)) cons1#(mark(X1),X2) = [0] >= [0] = c_15(cons1#(X1,X2)) cons1#(ok(X1),ok(X2)) = [0] >= [0] = c_16(cons1#(X1,X2)) from#(mark(X)) = [0] >= [0] = c_17(from#(X)) from#(ok(X)) = [0] >= [0] = c_18(from#(X)) proper#(2nd(X)) = [2] >= [0] = 2nd#(proper(X)) proper#(2nd(X)) = [2] >= [2] = proper#(X) proper#(cons(X1,X2)) = [2] >= [0] = cons#(proper(X1),proper(X2)) proper#(cons(X1,X2)) = [2] >= [2] = proper#(X1) proper#(cons(X1,X2)) = [2] >= [2] = proper#(X2) proper#(cons1(X1,X2)) = [2] >= [0] = cons1#(proper(X1),proper(X2)) proper#(cons1(X1,X2)) = [2] >= [2] = proper#(X1) proper#(cons1(X1,X2)) = [2] >= [2] = proper#(X2) proper#(from(X)) = [2] >= [0] = from#(proper(X)) proper#(from(X)) = [2] >= [2] = proper#(X) proper#(s(X)) = [2] >= [2] = proper#(X) proper#(s(X)) = [2] >= [0] = s#(proper(X)) s#(mark(X)) = [0] >= [0] = c_24(s#(X)) s#(ok(X)) = [0] >= [0] = c_25(s#(X)) top#(mark(X)) = [5] >= [2] = proper#(X) top#(mark(X)) = [5] >= [5] = top#(proper(X)) top#(ok(X)) = [5] >= [1] = active#(X) top#(ok(X)) = [5] >= [5] = top#(active(X)) *** Step 5.b:1.b:3: NaturalMI WORST_CASE(?,O(n^3)) + Considered Problem: - Strict DPs: 2nd#(mark(X)) -> c_1(2nd#(X)) 2nd#(ok(X)) -> c_2(2nd#(X)) cons#(mark(X1),X2) -> c_12(cons#(X1,X2)) cons#(ok(X1),ok(X2)) -> c_13(cons#(X1,X2)) cons1#(X1,mark(X2)) -> c_14(cons1#(X1,X2)) cons1#(mark(X1),X2) -> c_15(cons1#(X1,X2)) cons1#(ok(X1),ok(X2)) -> c_16(cons1#(X1,X2)) from#(mark(X)) -> c_17(from#(X)) from#(ok(X)) -> c_18(from#(X)) s#(mark(X)) -> c_24(s#(X)) s#(ok(X)) -> c_25(s#(X)) - Weak DPs: active#(2nd(X)) -> 2nd#(active(X)) active#(2nd(X)) -> active#(X) active#(2nd(cons(X,X1))) -> c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) active#(cons(X1,X2)) -> active#(X1) active#(cons(X1,X2)) -> cons#(active(X1),X2) active#(cons1(X1,X2)) -> active#(X1) active#(cons1(X1,X2)) -> active#(X2) active#(cons1(X1,X2)) -> cons1#(X1,active(X2)) active#(cons1(X1,X2)) -> cons1#(active(X1),X2) active#(from(X)) -> active#(X) active#(from(X)) -> from#(active(X)) active#(from(X)) -> c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) -> active#(X) active#(s(X)) -> s#(active(X)) proper#(2nd(X)) -> 2nd#(proper(X)) proper#(2nd(X)) -> proper#(X) proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) proper#(cons(X1,X2)) -> proper#(X1) proper#(cons(X1,X2)) -> proper#(X2) proper#(cons1(X1,X2)) -> cons1#(proper(X1),proper(X2)) proper#(cons1(X1,X2)) -> proper#(X1) proper#(cons1(X1,X2)) -> proper#(X2) proper#(from(X)) -> from#(proper(X)) proper#(from(X)) -> proper#(X) proper#(s(X)) -> proper#(X) proper#(s(X)) -> s#(proper(X)) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/2,c_4/2,c_5/0,c_6/2,c_7/2,c_8/2,c_9/2,c_10/3,c_11/2,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/2,c_20/3,c_21/3,c_22/2,c_23/2,c_24/1,c_25/1,c_26/2,c_27/2} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(c_1) = {1}, uargs(c_2) = {1}, uargs(c_4) = {1,2}, uargs(c_10) = {1,2,3}, uargs(c_12) = {1}, uargs(c_13) = {1}, uargs(c_14) = {1}, uargs(c_15) = {1}, uargs(c_16) = {1}, uargs(c_17) = {1}, uargs(c_18) = {1}, uargs(c_24) = {1}, uargs(c_25) = {1} Following symbols are considered usable: {2nd,active,cons,cons1,from,proper,s,2nd#,active#,cons#,cons1#,from#,proper#,s#,top#} TcT has computed the following interpretation: p(2nd) = [6] x1 + [0] p(active) = [1] x1 + [0] p(cons) = [1] x1 + [2] x2 + [0] p(cons1) = [1] x1 + [2] x2 + [0] p(from) = [4] x1 + [0] p(mark) = [0] p(ok) = [1] x1 + [2] p(proper) = [0] p(s) = [1] x1 + [0] p(top) = [4] p(2nd#) = [0] p(active#) = [1] x1 + [3] p(cons#) = [1] x2 + [2] p(cons1#) = [0] p(from#) = [0] p(proper#) = [3] p(s#) = [0] p(top#) = [4] x1 + [3] p(c_1) = [1] x1 + [0] p(c_2) = [1] x1 + [0] p(c_3) = [4] x2 + [4] p(c_4) = [1] x1 + [4] x2 + [0] p(c_5) = [2] p(c_6) = [4] x1 + [0] p(c_7) = [1] x2 + [4] p(c_8) = [4] x1 + [0] p(c_9) = [1] x2 + [0] p(c_10) = [1] x1 + [4] x2 + [1] x3 + [0] p(c_11) = [4] x2 + [1] p(c_12) = [1] x1 + [0] p(c_13) = [1] x1 + [0] p(c_14) = [2] x1 + [0] p(c_15) = [2] x1 + [0] p(c_16) = [1] x1 + [0] p(c_17) = [1] x1 + [0] p(c_18) = [4] x1 + [0] p(c_19) = [2] p(c_20) = [1] x1 + [0] p(c_21) = [4] x1 + [2] x2 + [1] x3 + [4] p(c_22) = [4] x2 + [0] p(c_23) = [4] x1 + [1] x2 + [4] p(c_24) = [4] x1 + [0] p(c_25) = [4] x1 + [0] p(c_26) = [1] x2 + [1] p(c_27) = [4] x1 + [0] Following rules are strictly oriented: cons#(ok(X1),ok(X2)) = [1] X2 + [4] > [1] X2 + [2] = c_13(cons#(X1,X2)) Following rules are (at-least) weakly oriented: 2nd#(mark(X)) = [0] >= [0] = c_1(2nd#(X)) 2nd#(ok(X)) = [0] >= [0] = c_2(2nd#(X)) active#(2nd(X)) = [6] X + [3] >= [0] = 2nd#(active(X)) active#(2nd(X)) = [6] X + [3] >= [1] X + [3] = active#(X) active#(2nd(cons(X,X1))) = [6] X + [12] X1 + [3] >= [0] = c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) active#(cons(X1,X2)) = [1] X1 + [2] X2 + [3] >= [1] X1 + [3] = active#(X1) active#(cons(X1,X2)) = [1] X1 + [2] X2 + [3] >= [1] X2 + [2] = cons#(active(X1),X2) active#(cons1(X1,X2)) = [1] X1 + [2] X2 + [3] >= [1] X1 + [3] = active#(X1) active#(cons1(X1,X2)) = [1] X1 + [2] X2 + [3] >= [1] X2 + [3] = active#(X2) active#(cons1(X1,X2)) = [1] X1 + [2] X2 + [3] >= [0] = cons1#(X1,active(X2)) active#(cons1(X1,X2)) = [1] X1 + [2] X2 + [3] >= [0] = cons1#(active(X1),X2) active#(from(X)) = [4] X + [3] >= [1] X + [3] = active#(X) active#(from(X)) = [4] X + [3] >= [0] = from#(active(X)) active#(from(X)) = [4] X + [3] >= [4] X + [2] = c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) = [1] X + [3] >= [1] X + [3] = active#(X) active#(s(X)) = [1] X + [3] >= [0] = s#(active(X)) cons#(mark(X1),X2) = [1] X2 + [2] >= [1] X2 + [2] = c_12(cons#(X1,X2)) cons1#(X1,mark(X2)) = [0] >= [0] = c_14(cons1#(X1,X2)) cons1#(mark(X1),X2) = [0] >= [0] = c_15(cons1#(X1,X2)) cons1#(ok(X1),ok(X2)) = [0] >= [0] = c_16(cons1#(X1,X2)) from#(mark(X)) = [0] >= [0] = c_17(from#(X)) from#(ok(X)) = [0] >= [0] = c_18(from#(X)) proper#(2nd(X)) = [3] >= [0] = 2nd#(proper(X)) proper#(2nd(X)) = [3] >= [3] = proper#(X) proper#(cons(X1,X2)) = [3] >= [2] = cons#(proper(X1),proper(X2)) proper#(cons(X1,X2)) = [3] >= [3] = proper#(X1) proper#(cons(X1,X2)) = [3] >= [3] = proper#(X2) proper#(cons1(X1,X2)) = [3] >= [0] = cons1#(proper(X1),proper(X2)) proper#(cons1(X1,X2)) = [3] >= [3] = proper#(X1) proper#(cons1(X1,X2)) = [3] >= [3] = proper#(X2) proper#(from(X)) = [3] >= [0] = from#(proper(X)) proper#(from(X)) = [3] >= [3] = proper#(X) proper#(s(X)) = [3] >= [3] = proper#(X) proper#(s(X)) = [3] >= [0] = s#(proper(X)) s#(mark(X)) = [0] >= [0] = c_24(s#(X)) s#(ok(X)) = [0] >= [0] = c_25(s#(X)) top#(mark(X)) = [3] >= [3] = proper#(X) top#(mark(X)) = [3] >= [3] = top#(proper(X)) top#(ok(X)) = [4] X + [11] >= [1] X + [3] = active#(X) top#(ok(X)) = [4] X + [11] >= [4] X + [3] = top#(active(X)) 2nd(mark(X)) = [0] >= [0] = mark(2nd(X)) 2nd(ok(X)) = [6] X + [12] >= [6] X + [2] = ok(2nd(X)) active(2nd(X)) = [6] X + [0] >= [6] X + [0] = 2nd(active(X)) active(2nd(cons(X,X1))) = [6] X + [12] X1 + [0] >= [0] = mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) = [6] X + [12] Y + [24] Z + [0] >= [0] = mark(Y) active(cons(X1,X2)) = [1] X1 + [2] X2 + [0] >= [1] X1 + [2] X2 + [0] = cons(active(X1),X2) active(cons1(X1,X2)) = [1] X1 + [2] X2 + [0] >= [1] X1 + [2] X2 + [0] = cons1(X1,active(X2)) active(cons1(X1,X2)) = [1] X1 + [2] X2 + [0] >= [1] X1 + [2] X2 + [0] = cons1(active(X1),X2) active(from(X)) = [4] X + [0] >= [4] X + [0] = from(active(X)) active(from(X)) = [4] X + [0] >= [0] = mark(cons(X,from(s(X)))) active(s(X)) = [1] X + [0] >= [1] X + [0] = s(active(X)) cons(mark(X1),X2) = [2] X2 + [0] >= [0] = mark(cons(X1,X2)) cons(ok(X1),ok(X2)) = [1] X1 + [2] X2 + [6] >= [1] X1 + [2] X2 + [2] = ok(cons(X1,X2)) cons1(X1,mark(X2)) = [1] X1 + [0] >= [0] = mark(cons1(X1,X2)) cons1(mark(X1),X2) = [2] X2 + [0] >= [0] = mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) = [1] X1 + [2] X2 + [6] >= [1] X1 + [2] X2 + [2] = ok(cons1(X1,X2)) from(mark(X)) = [0] >= [0] = mark(from(X)) from(ok(X)) = [4] X + [8] >= [4] X + [2] = ok(from(X)) proper(2nd(X)) = [0] >= [0] = 2nd(proper(X)) proper(cons(X1,X2)) = [0] >= [0] = cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) = [0] >= [0] = cons1(proper(X1),proper(X2)) proper(from(X)) = [0] >= [0] = from(proper(X)) proper(s(X)) = [0] >= [0] = s(proper(X)) s(mark(X)) = [0] >= [0] = mark(s(X)) s(ok(X)) = [1] X + [2] >= [1] X + [2] = ok(s(X)) *** Step 5.b:1.b:4: MI WORST_CASE(?,O(n^3)) + Considered Problem: - Strict DPs: 2nd#(mark(X)) -> c_1(2nd#(X)) 2nd#(ok(X)) -> c_2(2nd#(X)) cons#(mark(X1),X2) -> c_12(cons#(X1,X2)) cons1#(X1,mark(X2)) -> c_14(cons1#(X1,X2)) cons1#(mark(X1),X2) -> c_15(cons1#(X1,X2)) cons1#(ok(X1),ok(X2)) -> c_16(cons1#(X1,X2)) from#(mark(X)) -> c_17(from#(X)) from#(ok(X)) -> c_18(from#(X)) s#(mark(X)) -> c_24(s#(X)) s#(ok(X)) -> c_25(s#(X)) - Weak DPs: active#(2nd(X)) -> 2nd#(active(X)) active#(2nd(X)) -> active#(X) active#(2nd(cons(X,X1))) -> c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) active#(cons(X1,X2)) -> active#(X1) active#(cons(X1,X2)) -> cons#(active(X1),X2) active#(cons1(X1,X2)) -> active#(X1) active#(cons1(X1,X2)) -> active#(X2) active#(cons1(X1,X2)) -> cons1#(X1,active(X2)) active#(cons1(X1,X2)) -> cons1#(active(X1),X2) active#(from(X)) -> active#(X) active#(from(X)) -> from#(active(X)) active#(from(X)) -> c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) -> active#(X) active#(s(X)) -> s#(active(X)) cons#(ok(X1),ok(X2)) -> c_13(cons#(X1,X2)) proper#(2nd(X)) -> 2nd#(proper(X)) proper#(2nd(X)) -> proper#(X) proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) proper#(cons(X1,X2)) -> proper#(X1) proper#(cons(X1,X2)) -> proper#(X2) proper#(cons1(X1,X2)) -> cons1#(proper(X1),proper(X2)) proper#(cons1(X1,X2)) -> proper#(X1) proper#(cons1(X1,X2)) -> proper#(X2) proper#(from(X)) -> from#(proper(X)) proper#(from(X)) -> proper#(X) proper#(s(X)) -> proper#(X) proper#(s(X)) -> s#(proper(X)) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/2,c_4/2,c_5/0,c_6/2,c_7/2,c_8/2,c_9/2,c_10/3,c_11/2,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/2,c_20/3,c_21/3,c_22/2,c_23/2,c_24/1,c_25/1,c_26/2,c_27/2} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: MI {miKind = Automaton Nothing, miDimension = 3, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules} + Details: We apply a matrix interpretation of kind Automaton Nothing: The following argument positions are considered usable: uargs(c_1) = {1}, uargs(c_2) = {1}, uargs(c_4) = {1,2}, uargs(c_10) = {1,2,3}, uargs(c_12) = {1}, uargs(c_13) = {1}, uargs(c_14) = {1}, uargs(c_15) = {1}, uargs(c_16) = {1}, uargs(c_17) = {1}, uargs(c_18) = {1}, uargs(c_24) = {1}, uargs(c_25) = {1} Following symbols are considered usable: {2nd,active,cons,cons1,from,proper,s,2nd#,active#,cons#,cons1#,from#,proper#,s#,top#} TcT has computed the following interpretation: p(2nd) = [0 0 0] [0] [0 1 1] x_1 + [0] [0 1 1] [0] p(active) = [0 0 0] [0] [0 1 0] x_1 + [0] [0 0 1] [0] p(cons) = [0 0 0] [0 0 0] [0] [0 1 1] x_1 + [0 0 0] x_2 + [0] [0 0 0] [0 1 0] [0] p(cons1) = [0 0 0] [0 0 0] [0] [0 1 0] x_1 + [0 1 0] x_2 + [0] [0 0 0] [0 0 0] [0] p(from) = [0 0 0] [0] [0 1 1] x_1 + [0] [0 1 0] [0] p(mark) = [0 0 0] [0] [0 1 0] x_1 + [0] [0 0 1] [0] p(ok) = [0 0 0] [0] [0 1 0] x_1 + [1] [0 0 1] [0] p(proper) = [0] [0] [0] p(s) = [0 0 0] [0] [0 1 0] x_1 + [0] [0 0 0] [0] p(top) = [0] [0] [0] p(2nd#) = [0] [0] [1] p(active#) = [0 1 0] [1] [0 0 0] x_1 + [1] [0 1 0] [1] p(cons#) = [0] [1] [1] p(cons1#) = [0 1 0] [0] [0 0 0] x_1 + [1] [0 0 0] [1] p(from#) = [0] [1] [1] p(proper#) = [1] [1] [1] p(s#) = [0 0 0] [0] [0 0 0] x_1 + [0] [0 1 0] [0] p(top#) = [0 1 0] [1] [0 1 0] x_1 + [1] [0 1 0] [1] p(c_1) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 1] [0] p(c_2) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [1] p(c_3) = [0] [0] [0] p(c_4) = [1 0 0] [1 0 1] [0] [0 0 0] x_1 + [0 1 0] x_2 + [0] [0 0 0] [1 1 0] [0] p(c_5) = [0] [0] [0] p(c_6) = [0] [0] [0] p(c_7) = [0] [0] [0] p(c_8) = [0] [0] [0] p(c_9) = [0] [0] [0] p(c_10) = [1 1 0] [1 0 0] [1 0 0] [0] [0 0 0] x_1 + [0 1 0] x_2 + [0 0 0] x_3 + [0] [0 1 0] [0 0 0] [0 0 0] [0] p(c_11) = [0] [0] [0] p(c_12) = [1 0 0] [0] [0 0 1] x_1 + [0] [0 0 0] [0] p(c_13) = [1 0 0] [0] [0 0 1] x_1 + [0] [0 0 0] [1] p(c_14) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_15) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_16) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 0] [1] p(c_17) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 0] [1] p(c_18) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 1] [0] p(c_19) = [0] [0] [0] p(c_20) = [0] [0] [0] p(c_21) = [0] [0] [0] p(c_22) = [0] [0] [0] p(c_23) = [0] [0] [0] p(c_24) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_25) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_26) = [0] [0] [0] p(c_27) = [0] [0] [0] Following rules are strictly oriented: cons1#(ok(X1),ok(X2)) = [0 1 0] [1] [0 0 0] X1 + [1] [0 0 0] [1] > [0 1 0] [0] [0 0 0] X1 + [1] [0 0 0] [1] = c_16(cons1#(X1,X2)) Following rules are (at-least) weakly oriented: 2nd#(mark(X)) = [0] [0] [1] >= [0] [0] [1] = c_1(2nd#(X)) 2nd#(ok(X)) = [0] [0] [1] >= [0] [0] [1] = c_2(2nd#(X)) active#(2nd(X)) = [0 1 1] [1] [0 0 0] X + [1] [0 1 1] [1] >= [0] [0] [1] = 2nd#(active(X)) active#(2nd(X)) = [0 1 1] [1] [0 0 0] X + [1] [0 1 1] [1] >= [0 1 0] [1] [0 0 0] X + [1] [0 1 0] [1] = active#(X) active#(2nd(cons(X,X1))) = [0 1 1] [0 1 0] [1] [0 0 0] X + [0 0 0] X1 + [1] [0 1 1] [0 1 0] [1] >= [0 1 0] [1] [0 0 0] X + [1] [0 1 0] [1] = c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) active#(cons(X1,X2)) = [0 1 1] [1] [0 0 0] X1 + [1] [0 1 1] [1] >= [0 1 0] [1] [0 0 0] X1 + [1] [0 1 0] [1] = active#(X1) active#(cons(X1,X2)) = [0 1 1] [1] [0 0 0] X1 + [1] [0 1 1] [1] >= [0] [1] [1] = cons#(active(X1),X2) active#(cons1(X1,X2)) = [0 1 0] [0 1 0] [1] [0 0 0] X1 + [0 0 0] X2 + [1] [0 1 0] [0 1 0] [1] >= [0 1 0] [1] [0 0 0] X1 + [1] [0 1 0] [1] = active#(X1) active#(cons1(X1,X2)) = [0 1 0] [0 1 0] [1] [0 0 0] X1 + [0 0 0] X2 + [1] [0 1 0] [0 1 0] [1] >= [0 1 0] [1] [0 0 0] X2 + [1] [0 1 0] [1] = active#(X2) active#(cons1(X1,X2)) = [0 1 0] [0 1 0] [1] [0 0 0] X1 + [0 0 0] X2 + [1] [0 1 0] [0 1 0] [1] >= [0 1 0] [0] [0 0 0] X1 + [1] [0 0 0] [1] = cons1#(X1,active(X2)) active#(cons1(X1,X2)) = [0 1 0] [0 1 0] [1] [0 0 0] X1 + [0 0 0] X2 + [1] [0 1 0] [0 1 0] [1] >= [0 1 0] [0] [0 0 0] X1 + [1] [0 0 0] [1] = cons1#(active(X1),X2) active#(from(X)) = [0 1 1] [1] [0 0 0] X + [1] [0 1 1] [1] >= [0 1 0] [1] [0 0 0] X + [1] [0 1 0] [1] = active#(X) active#(from(X)) = [0 1 1] [1] [0 0 0] X + [1] [0 1 1] [1] >= [0] [1] [1] = from#(active(X)) active#(from(X)) = [0 1 1] [1] [0 0 0] X + [1] [0 1 1] [1] >= [1] [1] [1] = c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) = [0 1 0] [1] [0 0 0] X + [1] [0 1 0] [1] >= [0 1 0] [1] [0 0 0] X + [1] [0 1 0] [1] = active#(X) active#(s(X)) = [0 1 0] [1] [0 0 0] X + [1] [0 1 0] [1] >= [0 0 0] [0] [0 0 0] X + [0] [0 1 0] [0] = s#(active(X)) cons#(mark(X1),X2) = [0] [1] [1] >= [0] [1] [0] = c_12(cons#(X1,X2)) cons#(ok(X1),ok(X2)) = [0] [1] [1] >= [0] [1] [1] = c_13(cons#(X1,X2)) cons1#(X1,mark(X2)) = [0 1 0] [0] [0 0 0] X1 + [1] [0 0 0] [1] >= [0 1 0] [0] [0 0 0] X1 + [0] [0 0 0] [0] = c_14(cons1#(X1,X2)) cons1#(mark(X1),X2) = [0 1 0] [0] [0 0 0] X1 + [1] [0 0 0] [1] >= [0 1 0] [0] [0 0 0] X1 + [0] [0 0 0] [0] = c_15(cons1#(X1,X2)) from#(mark(X)) = [0] [1] [1] >= [0] [1] [1] = c_17(from#(X)) from#(ok(X)) = [0] [1] [1] >= [0] [0] [1] = c_18(from#(X)) proper#(2nd(X)) = [1] [1] [1] >= [0] [0] [1] = 2nd#(proper(X)) proper#(2nd(X)) = [1] [1] [1] >= [1] [1] [1] = proper#(X) proper#(cons(X1,X2)) = [1] [1] [1] >= [0] [1] [1] = cons#(proper(X1),proper(X2)) proper#(cons(X1,X2)) = [1] [1] [1] >= [1] [1] [1] = proper#(X1) proper#(cons(X1,X2)) = [1] [1] [1] >= [1] [1] [1] = proper#(X2) proper#(cons1(X1,X2)) = [1] [1] [1] >= [0] [1] [1] = cons1#(proper(X1),proper(X2)) proper#(cons1(X1,X2)) = [1] [1] [1] >= [1] [1] [1] = proper#(X1) proper#(cons1(X1,X2)) = [1] [1] [1] >= [1] [1] [1] = proper#(X2) proper#(from(X)) = [1] [1] [1] >= [0] [1] [1] = from#(proper(X)) proper#(from(X)) = [1] [1] [1] >= [1] [1] [1] = proper#(X) proper#(s(X)) = [1] [1] [1] >= [1] [1] [1] = proper#(X) proper#(s(X)) = [1] [1] [1] >= [0] [0] [0] = s#(proper(X)) s#(mark(X)) = [0 0 0] [0] [0 0 0] X + [0] [0 1 0] [0] >= [0] [0] [0] = c_24(s#(X)) s#(ok(X)) = [0 0 0] [0] [0 0 0] X + [0] [0 1 0] [1] >= [0] [0] [0] = c_25(s#(X)) top#(mark(X)) = [0 1 0] [1] [0 1 0] X + [1] [0 1 0] [1] >= [1] [1] [1] = proper#(X) top#(mark(X)) = [0 1 0] [1] [0 1 0] X + [1] [0 1 0] [1] >= [1] [1] [1] = top#(proper(X)) top#(ok(X)) = [0 1 0] [2] [0 1 0] X + [2] [0 1 0] [2] >= [0 1 0] [1] [0 0 0] X + [1] [0 1 0] [1] = active#(X) top#(ok(X)) = [0 1 0] [2] [0 1 0] X + [2] [0 1 0] [2] >= [0 1 0] [1] [0 1 0] X + [1] [0 1 0] [1] = top#(active(X)) 2nd(mark(X)) = [0 0 0] [0] [0 1 1] X + [0] [0 1 1] [0] >= [0 0 0] [0] [0 1 1] X + [0] [0 1 1] [0] = mark(2nd(X)) 2nd(ok(X)) = [0 0 0] [0] [0 1 1] X + [1] [0 1 1] [1] >= [0 0 0] [0] [0 1 1] X + [1] [0 1 1] [0] = ok(2nd(X)) active(2nd(X)) = [0 0 0] [0] [0 1 1] X + [0] [0 1 1] [0] >= [0 0 0] [0] [0 1 1] X + [0] [0 1 1] [0] = 2nd(active(X)) active(2nd(cons(X,X1))) = [0 0 0] [0 0 0] [0] [0 1 1] X + [0 1 0] X1 + [0] [0 1 1] [0 1 0] [0] >= [0 0 0] [0 0 0] [0] [0 1 0] X + [0 1 0] X1 + [0] [0 1 0] [0 1 0] [0] = mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) = [0 0 0] [0 0 0] [0] [0 1 0] X + [0 1 1] Y + [0] [0 1 0] [0 1 1] [0] >= [0 0 0] [0] [0 1 0] Y + [0] [0 0 1] [0] = mark(Y) active(cons(X1,X2)) = [0 0 0] [0 0 0] [0] [0 1 1] X1 + [0 0 0] X2 + [0] [0 0 0] [0 1 0] [0] >= [0 0 0] [0 0 0] [0] [0 1 1] X1 + [0 0 0] X2 + [0] [0 0 0] [0 1 0] [0] = cons(active(X1),X2) active(cons1(X1,X2)) = [0 0 0] [0 0 0] [0] [0 1 0] X1 + [0 1 0] X2 + [0] [0 0 0] [0 0 0] [0] >= [0 0 0] [0 0 0] [0] [0 1 0] X1 + [0 1 0] X2 + [0] [0 0 0] [0 0 0] [0] = cons1(X1,active(X2)) active(cons1(X1,X2)) = [0 0 0] [0 0 0] [0] [0 1 0] X1 + [0 1 0] X2 + [0] [0 0 0] [0 0 0] [0] >= [0 0 0] [0 0 0] [0] [0 1 0] X1 + [0 1 0] X2 + [0] [0 0 0] [0 0 0] [0] = cons1(active(X1),X2) active(from(X)) = [0 0 0] [0] [0 1 1] X + [0] [0 1 0] [0] >= [0 0 0] [0] [0 1 1] X + [0] [0 1 0] [0] = from(active(X)) active(from(X)) = [0 0 0] [0] [0 1 1] X + [0] [0 1 0] [0] >= [0 0 0] [0] [0 1 1] X + [0] [0 1 0] [0] = mark(cons(X,from(s(X)))) active(s(X)) = [0 0 0] [0] [0 1 0] X + [0] [0 0 0] [0] >= [0 0 0] [0] [0 1 0] X + [0] [0 0 0] [0] = s(active(X)) cons(mark(X1),X2) = [0 0 0] [0 0 0] [0] [0 1 1] X1 + [0 0 0] X2 + [0] [0 0 0] [0 1 0] [0] >= [0 0 0] [0 0 0] [0] [0 1 1] X1 + [0 0 0] X2 + [0] [0 0 0] [0 1 0] [0] = mark(cons(X1,X2)) cons(ok(X1),ok(X2)) = [0 0 0] [0 0 0] [0] [0 1 1] X1 + [0 0 0] X2 + [1] [0 0 0] [0 1 0] [1] >= [0 0 0] [0 0 0] [0] [0 1 1] X1 + [0 0 0] X2 + [1] [0 0 0] [0 1 0] [0] = ok(cons(X1,X2)) cons1(X1,mark(X2)) = [0 0 0] [0 0 0] [0] [0 1 0] X1 + [0 1 0] X2 + [0] [0 0 0] [0 0 0] [0] >= [0 0 0] [0 0 0] [0] [0 1 0] X1 + [0 1 0] X2 + [0] [0 0 0] [0 0 0] [0] = mark(cons1(X1,X2)) cons1(mark(X1),X2) = [0 0 0] [0 0 0] [0] [0 1 0] X1 + [0 1 0] X2 + [0] [0 0 0] [0 0 0] [0] >= [0 0 0] [0 0 0] [0] [0 1 0] X1 + [0 1 0] X2 + [0] [0 0 0] [0 0 0] [0] = mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) = [0 0 0] [0 0 0] [0] [0 1 0] X1 + [0 1 0] X2 + [2] [0 0 0] [0 0 0] [0] >= [0 0 0] [0 0 0] [0] [0 1 0] X1 + [0 1 0] X2 + [1] [0 0 0] [0 0 0] [0] = ok(cons1(X1,X2)) from(mark(X)) = [0 0 0] [0] [0 1 1] X + [0] [0 1 0] [0] >= [0 0 0] [0] [0 1 1] X + [0] [0 1 0] [0] = mark(from(X)) from(ok(X)) = [0 0 0] [0] [0 1 1] X + [1] [0 1 0] [1] >= [0 0 0] [0] [0 1 1] X + [1] [0 1 0] [0] = ok(from(X)) proper(2nd(X)) = [0] [0] [0] >= [0] [0] [0] = 2nd(proper(X)) proper(cons(X1,X2)) = [0] [0] [0] >= [0] [0] [0] = cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) = [0] [0] [0] >= [0] [0] [0] = cons1(proper(X1),proper(X2)) proper(from(X)) = [0] [0] [0] >= [0] [0] [0] = from(proper(X)) proper(s(X)) = [0] [0] [0] >= [0] [0] [0] = s(proper(X)) s(mark(X)) = [0 0 0] [0] [0 1 0] X + [0] [0 0 0] [0] >= [0 0 0] [0] [0 1 0] X + [0] [0 0 0] [0] = mark(s(X)) s(ok(X)) = [0 0 0] [0] [0 1 0] X + [1] [0 0 0] [0] >= [0 0 0] [0] [0 1 0] X + [1] [0 0 0] [0] = ok(s(X)) *** Step 5.b:1.b:5: MI WORST_CASE(?,O(n^3)) + Considered Problem: - Strict DPs: 2nd#(mark(X)) -> c_1(2nd#(X)) 2nd#(ok(X)) -> c_2(2nd#(X)) cons#(mark(X1),X2) -> c_12(cons#(X1,X2)) cons1#(X1,mark(X2)) -> c_14(cons1#(X1,X2)) cons1#(mark(X1),X2) -> c_15(cons1#(X1,X2)) from#(mark(X)) -> c_17(from#(X)) from#(ok(X)) -> c_18(from#(X)) s#(mark(X)) -> c_24(s#(X)) s#(ok(X)) -> c_25(s#(X)) - Weak DPs: active#(2nd(X)) -> 2nd#(active(X)) active#(2nd(X)) -> active#(X) active#(2nd(cons(X,X1))) -> c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) active#(cons(X1,X2)) -> active#(X1) active#(cons(X1,X2)) -> cons#(active(X1),X2) active#(cons1(X1,X2)) -> active#(X1) active#(cons1(X1,X2)) -> active#(X2) active#(cons1(X1,X2)) -> cons1#(X1,active(X2)) active#(cons1(X1,X2)) -> cons1#(active(X1),X2) active#(from(X)) -> active#(X) active#(from(X)) -> from#(active(X)) active#(from(X)) -> c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) -> active#(X) active#(s(X)) -> s#(active(X)) cons#(ok(X1),ok(X2)) -> c_13(cons#(X1,X2)) cons1#(ok(X1),ok(X2)) -> c_16(cons1#(X1,X2)) proper#(2nd(X)) -> 2nd#(proper(X)) proper#(2nd(X)) -> proper#(X) proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) proper#(cons(X1,X2)) -> proper#(X1) proper#(cons(X1,X2)) -> proper#(X2) proper#(cons1(X1,X2)) -> cons1#(proper(X1),proper(X2)) proper#(cons1(X1,X2)) -> proper#(X1) proper#(cons1(X1,X2)) -> proper#(X2) proper#(from(X)) -> from#(proper(X)) proper#(from(X)) -> proper#(X) proper#(s(X)) -> proper#(X) proper#(s(X)) -> s#(proper(X)) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/2,c_4/2,c_5/0,c_6/2,c_7/2,c_8/2,c_9/2,c_10/3,c_11/2,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/2,c_20/3,c_21/3,c_22/2,c_23/2,c_24/1,c_25/1,c_26/2,c_27/2} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: MI {miKind = Automaton Nothing, miDimension = 3, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules} + Details: We apply a matrix interpretation of kind Automaton Nothing: The following argument positions are considered usable: uargs(c_1) = {1}, uargs(c_2) = {1}, uargs(c_4) = {1,2}, uargs(c_10) = {1,2,3}, uargs(c_12) = {1}, uargs(c_13) = {1}, uargs(c_14) = {1}, uargs(c_15) = {1}, uargs(c_16) = {1}, uargs(c_17) = {1}, uargs(c_18) = {1}, uargs(c_24) = {1}, uargs(c_25) = {1} Following symbols are considered usable: {2nd,active,cons,cons1,from,proper,s,2nd#,active#,cons#,cons1#,from#,proper#,s#,top#} TcT has computed the following interpretation: p(2nd) = [1 0 1] [0] [0 0 0] x_1 + [0] [1 0 1] [0] p(active) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 1] [0] p(cons) = [0 0 0] [0 0 1] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0] [1 0 1] [0 0 0] [0] p(cons1) = [1 0 0] [0 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0] [0 0 1] [0 0 1] [0] p(from) = [1 0 1] [0] [0 0 0] x_1 + [0] [1 0 1] [0] p(mark) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 1] [0] p(ok) = [1 0 0] [1] [0 0 0] x_1 + [0] [0 0 1] [1] p(proper) = [0] [0] [0] p(s) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 1] [0] p(top) = [0] [0] [0] p(2nd#) = [0 0 0] [0] [0 0 0] x_1 + [0] [1 0 0] [0] p(active#) = [0 0 1] [0] [0 0 0] x_1 + [0] [0 0 1] [1] p(cons#) = [0 0 0] [0] [0 0 0] x_1 + [0] [0 0 1] [1] p(cons1#) = [0 0 0] [0] [0 0 0] x_2 + [0] [0 0 1] [1] p(from#) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(proper#) = [0] [0] [1] p(s#) = [0] [0] [1] p(top#) = [0 0 1] [0] [0 0 0] x_1 + [1] [0 0 1] [1] p(c_1) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 1] [0] p(c_2) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [1] p(c_3) = [0] [0] [0] p(c_4) = [1 0 0] [1 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0] [0 0 0] [0 0 0] [1] p(c_5) = [0] [0] [0] p(c_6) = [0] [0] [0] p(c_7) = [0] [0] [0] p(c_8) = [0] [0] [0] p(c_9) = [0] [0] [0] p(c_10) = [1 0 0] [1 0 0] [1 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0 0 0] x_3 + [0] [0 0 1] [0 0 0] [0 0 0] [0] p(c_11) = [0] [0] [0] p(c_12) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [1] p(c_13) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_14) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 1] [0] p(c_15) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [1] p(c_16) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [1] p(c_17) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_18) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_19) = [0] [0] [0] p(c_20) = [0] [0] [0] p(c_21) = [0] [0] [0] p(c_22) = [0] [0] [0] p(c_23) = [0] [0] [0] p(c_24) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_25) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 1] [0] p(c_26) = [0] [0] [0] p(c_27) = [0] [0] [0] Following rules are strictly oriented: from#(ok(X)) = [1 0 0] [1] [0 0 0] X + [0] [0 0 0] [0] > [1 0 0] [0] [0 0 0] X + [0] [0 0 0] [0] = c_18(from#(X)) Following rules are (at-least) weakly oriented: 2nd#(mark(X)) = [0 0 0] [0] [0 0 0] X + [0] [1 0 0] [0] >= [0 0 0] [0] [0 0 0] X + [0] [1 0 0] [0] = c_1(2nd#(X)) 2nd#(ok(X)) = [0 0 0] [0] [0 0 0] X + [0] [1 0 0] [1] >= [0] [0] [1] = c_2(2nd#(X)) active#(2nd(X)) = [1 0 1] [0] [0 0 0] X + [0] [1 0 1] [1] >= [0 0 0] [0] [0 0 0] X + [0] [1 0 0] [0] = 2nd#(active(X)) active#(2nd(X)) = [1 0 1] [0] [0 0 0] X + [0] [1 0 1] [1] >= [0 0 1] [0] [0 0 0] X + [0] [0 0 1] [1] = active#(X) active#(2nd(cons(X,X1))) = [1 0 1] [0 0 1] [0] [0 0 0] X + [0 0 0] X1 + [0] [1 0 1] [0 0 1] [1] >= [0] [0] [1] = c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) active#(cons(X1,X2)) = [1 0 1] [0] [0 0 0] X1 + [0] [1 0 1] [1] >= [0 0 1] [0] [0 0 0] X1 + [0] [0 0 1] [1] = active#(X1) active#(cons(X1,X2)) = [1 0 1] [0] [0 0 0] X1 + [0] [1 0 1] [1] >= [0 0 0] [0] [0 0 0] X1 + [0] [0 0 1] [1] = cons#(active(X1),X2) active#(cons1(X1,X2)) = [0 0 1] [0 0 1] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 0 1] [1] >= [0 0 1] [0] [0 0 0] X1 + [0] [0 0 1] [1] = active#(X1) active#(cons1(X1,X2)) = [0 0 1] [0 0 1] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 0 1] [1] >= [0 0 1] [0] [0 0 0] X2 + [0] [0 0 1] [1] = active#(X2) active#(cons1(X1,X2)) = [0 0 1] [0 0 1] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 0 1] [1] >= [0 0 0] [0] [0 0 0] X2 + [0] [0 0 1] [1] = cons1#(X1,active(X2)) active#(cons1(X1,X2)) = [0 0 1] [0 0 1] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 0 1] [1] >= [0 0 0] [0] [0 0 0] X2 + [0] [0 0 1] [1] = cons1#(active(X1),X2) active#(from(X)) = [1 0 1] [0] [0 0 0] X + [0] [1 0 1] [1] >= [0 0 1] [0] [0 0 0] X + [0] [0 0 1] [1] = active#(X) active#(from(X)) = [1 0 1] [0] [0 0 0] X + [0] [1 0 1] [1] >= [1 0 0] [0] [0 0 0] X + [0] [0 0 0] [0] = from#(active(X)) active#(from(X)) = [1 0 1] [0] [0 0 0] X + [0] [1 0 1] [1] >= [1 0 0] [0] [0 0 0] X + [0] [0 0 1] [1] = c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) = [0 0 1] [0] [0 0 0] X + [0] [0 0 1] [1] >= [0 0 1] [0] [0 0 0] X + [0] [0 0 1] [1] = active#(X) active#(s(X)) = [0 0 1] [0] [0 0 0] X + [0] [0 0 1] [1] >= [0] [0] [1] = s#(active(X)) cons#(mark(X1),X2) = [0 0 0] [0] [0 0 0] X1 + [0] [0 0 1] [1] >= [0] [0] [1] = c_12(cons#(X1,X2)) cons#(ok(X1),ok(X2)) = [0 0 0] [0] [0 0 0] X1 + [0] [0 0 1] [2] >= [0] [0] [0] = c_13(cons#(X1,X2)) cons1#(X1,mark(X2)) = [0 0 0] [0] [0 0 0] X2 + [0] [0 0 1] [1] >= [0 0 0] [0] [0 0 0] X2 + [0] [0 0 1] [1] = c_14(cons1#(X1,X2)) cons1#(mark(X1),X2) = [0 0 0] [0] [0 0 0] X2 + [0] [0 0 1] [1] >= [0] [0] [1] = c_15(cons1#(X1,X2)) cons1#(ok(X1),ok(X2)) = [0 0 0] [0] [0 0 0] X2 + [0] [0 0 1] [2] >= [0] [0] [1] = c_16(cons1#(X1,X2)) from#(mark(X)) = [1 0 0] [0] [0 0 0] X + [0] [0 0 0] [0] >= [1 0 0] [0] [0 0 0] X + [0] [0 0 0] [0] = c_17(from#(X)) proper#(2nd(X)) = [0] [0] [1] >= [0] [0] [0] = 2nd#(proper(X)) proper#(2nd(X)) = [0] [0] [1] >= [0] [0] [1] = proper#(X) proper#(cons(X1,X2)) = [0] [0] [1] >= [0] [0] [1] = cons#(proper(X1),proper(X2)) proper#(cons(X1,X2)) = [0] [0] [1] >= [0] [0] [1] = proper#(X1) proper#(cons(X1,X2)) = [0] [0] [1] >= [0] [0] [1] = proper#(X2) proper#(cons1(X1,X2)) = [0] [0] [1] >= [0] [0] [1] = cons1#(proper(X1),proper(X2)) proper#(cons1(X1,X2)) = [0] [0] [1] >= [0] [0] [1] = proper#(X1) proper#(cons1(X1,X2)) = [0] [0] [1] >= [0] [0] [1] = proper#(X2) proper#(from(X)) = [0] [0] [1] >= [0] [0] [0] = from#(proper(X)) proper#(from(X)) = [0] [0] [1] >= [0] [0] [1] = proper#(X) proper#(s(X)) = [0] [0] [1] >= [0] [0] [1] = proper#(X) proper#(s(X)) = [0] [0] [1] >= [0] [0] [1] = s#(proper(X)) s#(mark(X)) = [0] [0] [1] >= [0] [0] [0] = c_24(s#(X)) s#(ok(X)) = [0] [0] [1] >= [0] [0] [1] = c_25(s#(X)) top#(mark(X)) = [0 0 1] [0] [0 0 0] X + [1] [0 0 1] [1] >= [0] [0] [1] = proper#(X) top#(mark(X)) = [0 0 1] [0] [0 0 0] X + [1] [0 0 1] [1] >= [0] [1] [1] = top#(proper(X)) top#(ok(X)) = [0 0 1] [1] [0 0 0] X + [1] [0 0 1] [2] >= [0 0 1] [0] [0 0 0] X + [0] [0 0 1] [1] = active#(X) top#(ok(X)) = [0 0 1] [1] [0 0 0] X + [1] [0 0 1] [2] >= [0 0 1] [0] [0 0 0] X + [1] [0 0 1] [1] = top#(active(X)) 2nd(mark(X)) = [1 0 1] [0] [0 0 0] X + [0] [1 0 1] [0] >= [1 0 1] [0] [0 0 0] X + [0] [1 0 1] [0] = mark(2nd(X)) 2nd(ok(X)) = [1 0 1] [2] [0 0 0] X + [0] [1 0 1] [2] >= [1 0 1] [1] [0 0 0] X + [0] [1 0 1] [1] = ok(2nd(X)) active(2nd(X)) = [1 0 1] [0] [0 0 0] X + [0] [1 0 1] [0] >= [1 0 1] [0] [0 0 0] X + [0] [1 0 1] [0] = 2nd(active(X)) active(2nd(cons(X,X1))) = [1 0 1] [0 0 1] [0] [0 0 0] X + [0 0 0] X1 + [0] [1 0 1] [0 0 1] [0] >= [1 0 1] [0 0 1] [0] [0 0 0] X + [0 0 0] X1 + [0] [1 0 1] [0 0 1] [0] = mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) = [1 0 1] [1 0 1] [0] [0 0 0] X + [0 0 0] Y + [0] [1 0 1] [1 0 1] [0] >= [1 0 0] [0] [0 0 0] Y + [0] [0 0 1] [0] = mark(Y) active(cons(X1,X2)) = [0 0 0] [0 0 1] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [1 0 1] [0 0 0] [0] >= [0 0 0] [0 0 1] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [1 0 1] [0 0 0] [0] = cons(active(X1),X2) active(cons1(X1,X2)) = [1 0 0] [0 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 0 1] [0] >= [1 0 0] [0 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 0 1] [0] = cons1(X1,active(X2)) active(cons1(X1,X2)) = [1 0 0] [0 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 0 1] [0] >= [1 0 0] [0 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 0 1] [0] = cons1(active(X1),X2) active(from(X)) = [1 0 1] [0] [0 0 0] X + [0] [1 0 1] [0] >= [1 0 1] [0] [0 0 0] X + [0] [1 0 1] [0] = from(active(X)) active(from(X)) = [1 0 1] [0] [0 0 0] X + [0] [1 0 1] [0] >= [1 0 1] [0] [0 0 0] X + [0] [1 0 1] [0] = mark(cons(X,from(s(X)))) active(s(X)) = [1 0 0] [0] [0 0 0] X + [0] [0 0 1] [0] >= [1 0 0] [0] [0 0 0] X + [0] [0 0 1] [0] = s(active(X)) cons(mark(X1),X2) = [0 0 0] [0 0 1] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [1 0 1] [0 0 0] [0] >= [0 0 0] [0 0 1] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [1 0 1] [0 0 0] [0] = mark(cons(X1,X2)) cons(ok(X1),ok(X2)) = [0 0 0] [0 0 1] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [1 0 1] [0 0 0] [2] >= [0 0 0] [0 0 1] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [1 0 1] [0 0 0] [1] = ok(cons(X1,X2)) cons1(X1,mark(X2)) = [1 0 0] [0 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 0 1] [0] >= [1 0 0] [0 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 0 1] [0] = mark(cons1(X1,X2)) cons1(mark(X1),X2) = [1 0 0] [0 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 0 1] [0] >= [1 0 0] [0 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 0 1] [0] = mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) = [1 0 0] [0 0 0] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 0 1] [2] >= [1 0 0] [0 0 0] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 0 1] [1] = ok(cons1(X1,X2)) from(mark(X)) = [1 0 1] [0] [0 0 0] X + [0] [1 0 1] [0] >= [1 0 1] [0] [0 0 0] X + [0] [1 0 1] [0] = mark(from(X)) from(ok(X)) = [1 0 1] [2] [0 0 0] X + [0] [1 0 1] [2] >= [1 0 1] [1] [0 0 0] X + [0] [1 0 1] [1] = ok(from(X)) proper(2nd(X)) = [0] [0] [0] >= [0] [0] [0] = 2nd(proper(X)) proper(cons(X1,X2)) = [0] [0] [0] >= [0] [0] [0] = cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) = [0] [0] [0] >= [0] [0] [0] = cons1(proper(X1),proper(X2)) proper(from(X)) = [0] [0] [0] >= [0] [0] [0] = from(proper(X)) proper(s(X)) = [0] [0] [0] >= [0] [0] [0] = s(proper(X)) s(mark(X)) = [1 0 0] [0] [0 0 0] X + [0] [0 0 1] [0] >= [1 0 0] [0] [0 0 0] X + [0] [0 0 1] [0] = mark(s(X)) s(ok(X)) = [1 0 0] [1] [0 0 0] X + [0] [0 0 1] [1] >= [1 0 0] [1] [0 0 0] X + [0] [0 0 1] [1] = ok(s(X)) *** Step 5.b:1.b:6: MI WORST_CASE(?,O(n^3)) + Considered Problem: - Strict DPs: 2nd#(mark(X)) -> c_1(2nd#(X)) 2nd#(ok(X)) -> c_2(2nd#(X)) cons#(mark(X1),X2) -> c_12(cons#(X1,X2)) cons1#(X1,mark(X2)) -> c_14(cons1#(X1,X2)) cons1#(mark(X1),X2) -> c_15(cons1#(X1,X2)) from#(mark(X)) -> c_17(from#(X)) s#(mark(X)) -> c_24(s#(X)) s#(ok(X)) -> c_25(s#(X)) - Weak DPs: active#(2nd(X)) -> 2nd#(active(X)) active#(2nd(X)) -> active#(X) active#(2nd(cons(X,X1))) -> c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) active#(cons(X1,X2)) -> active#(X1) active#(cons(X1,X2)) -> cons#(active(X1),X2) active#(cons1(X1,X2)) -> active#(X1) active#(cons1(X1,X2)) -> active#(X2) active#(cons1(X1,X2)) -> cons1#(X1,active(X2)) active#(cons1(X1,X2)) -> cons1#(active(X1),X2) active#(from(X)) -> active#(X) active#(from(X)) -> from#(active(X)) active#(from(X)) -> c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) -> active#(X) active#(s(X)) -> s#(active(X)) cons#(ok(X1),ok(X2)) -> c_13(cons#(X1,X2)) cons1#(ok(X1),ok(X2)) -> c_16(cons1#(X1,X2)) from#(ok(X)) -> c_18(from#(X)) proper#(2nd(X)) -> 2nd#(proper(X)) proper#(2nd(X)) -> proper#(X) proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) proper#(cons(X1,X2)) -> proper#(X1) proper#(cons(X1,X2)) -> proper#(X2) proper#(cons1(X1,X2)) -> cons1#(proper(X1),proper(X2)) proper#(cons1(X1,X2)) -> proper#(X1) proper#(cons1(X1,X2)) -> proper#(X2) proper#(from(X)) -> from#(proper(X)) proper#(from(X)) -> proper#(X) proper#(s(X)) -> proper#(X) proper#(s(X)) -> s#(proper(X)) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/2,c_4/2,c_5/0,c_6/2,c_7/2,c_8/2,c_9/2,c_10/3,c_11/2,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/2,c_20/3,c_21/3,c_22/2,c_23/2,c_24/1,c_25/1,c_26/2,c_27/2} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: MI {miKind = Automaton Nothing, miDimension = 3, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules} + Details: We apply a matrix interpretation of kind Automaton Nothing: The following argument positions are considered usable: uargs(c_1) = {1}, uargs(c_2) = {1}, uargs(c_4) = {1,2}, uargs(c_10) = {1,2,3}, uargs(c_12) = {1}, uargs(c_13) = {1}, uargs(c_14) = {1}, uargs(c_15) = {1}, uargs(c_16) = {1}, uargs(c_17) = {1}, uargs(c_18) = {1}, uargs(c_24) = {1}, uargs(c_25) = {1} Following symbols are considered usable: {2nd,active,cons,cons1,from,proper,s,2nd#,active#,cons#,cons1#,from#,proper#,s#,top#} TcT has computed the following interpretation: p(2nd) = [0 0 0] [0] [0 1 1] x_1 + [0] [0 1 1] [0] p(active) = [0 0 0] [0] [0 1 0] x_1 + [0] [0 0 1] [0] p(cons) = [0 0 0] [0 0 0] [0] [0 1 1] x_1 + [0 0 0] x_2 + [0] [0 0 0] [0 1 0] [0] p(cons1) = [0 0 0] [0 0 0] [0] [0 1 0] x_1 + [0 1 0] x_2 + [0] [0 0 0] [0 0 0] [0] p(from) = [0 0 0] [0] [0 1 1] x_1 + [0] [0 1 0] [0] p(mark) = [0 0 0] [0] [0 1 0] x_1 + [0] [0 0 1] [0] p(ok) = [0 0 0] [0] [0 1 0] x_1 + [1] [0 0 1] [0] p(proper) = [0 1 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(s) = [0 0 0] [0] [0 1 0] x_1 + [0] [0 0 0] [0] p(top) = [0] [0] [0] p(2nd#) = [0 1 1] [0] [0 0 0] x_1 + [1] [0 0 0] [1] p(active#) = [0 1 0] [1] [0 0 0] x_1 + [1] [0 0 0] [1] p(cons#) = [0] [1] [1] p(cons1#) = [0] [1] [1] p(from#) = [0] [1] [0] p(proper#) = [0] [1] [1] p(s#) = [0] [0] [1] p(top#) = [1 1 0] [0] [0 0 0] x_1 + [1] [0 0 0] [1] p(c_1) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 1] [0] p(c_2) = [1 0 0] [0] [0 0 0] x_1 + [1] [0 0 1] [0] p(c_3) = [0] [0] [0] p(c_4) = [1 0 1] [1 0 0] [0] [0 0 1] x_1 + [0 0 0] x_2 + [0] [0 0 0] [0 0 0] [0] p(c_5) = [0] [0] [0] p(c_6) = [0] [0] [0] p(c_7) = [0] [0] [0] p(c_8) = [0] [0] [0] p(c_9) = [0] [0] [0] p(c_10) = [1 0 0] [1 1 0] [1 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0 0 1] x_3 + [0] [0 0 0] [0 0 0] [0 0 0] [0] p(c_11) = [0] [0] [0] p(c_12) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 1] [0] p(c_13) = [1 0 0] [0] [0 0 0] x_1 + [1] [0 0 0] [1] p(c_14) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 1 0] [0] p(c_15) = [1 0 0] [0] [0 0 0] x_1 + [1] [0 0 0] [1] p(c_16) = [1 0 0] [0] [0 0 1] x_1 + [0] [0 0 1] [0] p(c_17) = [1 0 0] [0] [0 0 0] x_1 + [1] [0 0 0] [0] p(c_18) = [1 0 0] [0] [0 0 0] x_1 + [1] [0 0 0] [0] p(c_19) = [0] [0] [0] p(c_20) = [0] [0] [0] p(c_21) = [0] [0] [0] p(c_22) = [0] [0] [0] p(c_23) = [0] [0] [0] p(c_24) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 1] [0] p(c_25) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [1] p(c_26) = [0] [0] [0] p(c_27) = [0] [0] [0] Following rules are strictly oriented: 2nd#(ok(X)) = [0 1 1] [1] [0 0 0] X + [1] [0 0 0] [1] > [0 1 1] [0] [0 0 0] X + [1] [0 0 0] [1] = c_2(2nd#(X)) Following rules are (at-least) weakly oriented: 2nd#(mark(X)) = [0 1 1] [0] [0 0 0] X + [1] [0 0 0] [1] >= [0 1 1] [0] [0 0 0] X + [0] [0 0 0] [1] = c_1(2nd#(X)) active#(2nd(X)) = [0 1 1] [1] [0 0 0] X + [1] [0 0 0] [1] >= [0 1 1] [0] [0 0 0] X + [1] [0 0 0] [1] = 2nd#(active(X)) active#(2nd(X)) = [0 1 1] [1] [0 0 0] X + [1] [0 0 0] [1] >= [0 1 0] [1] [0 0 0] X + [1] [0 0 0] [1] = active#(X) active#(2nd(cons(X,X1))) = [0 1 1] [0 1 0] [1] [0 0 0] X + [0 0 0] X1 + [1] [0 0 0] [0 0 0] [1] >= [0 1 0] [0 1 0] [1] [0 0 0] X + [0 0 0] X1 + [1] [0 0 0] [0 0 0] [0] = c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) active#(cons(X1,X2)) = [0 1 1] [1] [0 0 0] X1 + [1] [0 0 0] [1] >= [0 1 0] [1] [0 0 0] X1 + [1] [0 0 0] [1] = active#(X1) active#(cons(X1,X2)) = [0 1 1] [1] [0 0 0] X1 + [1] [0 0 0] [1] >= [0] [1] [1] = cons#(active(X1),X2) active#(cons1(X1,X2)) = [0 1 0] [0 1 0] [1] [0 0 0] X1 + [0 0 0] X2 + [1] [0 0 0] [0 0 0] [1] >= [0 1 0] [1] [0 0 0] X1 + [1] [0 0 0] [1] = active#(X1) active#(cons1(X1,X2)) = [0 1 0] [0 1 0] [1] [0 0 0] X1 + [0 0 0] X2 + [1] [0 0 0] [0 0 0] [1] >= [0 1 0] [1] [0 0 0] X2 + [1] [0 0 0] [1] = active#(X2) active#(cons1(X1,X2)) = [0 1 0] [0 1 0] [1] [0 0 0] X1 + [0 0 0] X2 + [1] [0 0 0] [0 0 0] [1] >= [0] [1] [1] = cons1#(X1,active(X2)) active#(cons1(X1,X2)) = [0 1 0] [0 1 0] [1] [0 0 0] X1 + [0 0 0] X2 + [1] [0 0 0] [0 0 0] [1] >= [0] [1] [1] = cons1#(active(X1),X2) active#(from(X)) = [0 1 1] [1] [0 0 0] X + [1] [0 0 0] [1] >= [0 1 0] [1] [0 0 0] X + [1] [0 0 0] [1] = active#(X) active#(from(X)) = [0 1 1] [1] [0 0 0] X + [1] [0 0 0] [1] >= [0] [1] [0] = from#(active(X)) active#(from(X)) = [0 1 1] [1] [0 0 0] X + [1] [0 0 0] [1] >= [1] [1] [0] = c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) = [0 1 0] [1] [0 0 0] X + [1] [0 0 0] [1] >= [0 1 0] [1] [0 0 0] X + [1] [0 0 0] [1] = active#(X) active#(s(X)) = [0 1 0] [1] [0 0 0] X + [1] [0 0 0] [1] >= [0] [0] [1] = s#(active(X)) cons#(mark(X1),X2) = [0] [1] [1] >= [0] [0] [1] = c_12(cons#(X1,X2)) cons#(ok(X1),ok(X2)) = [0] [1] [1] >= [0] [1] [1] = c_13(cons#(X1,X2)) cons1#(X1,mark(X2)) = [0] [1] [1] >= [0] [1] [1] = c_14(cons1#(X1,X2)) cons1#(mark(X1),X2) = [0] [1] [1] >= [0] [1] [1] = c_15(cons1#(X1,X2)) cons1#(ok(X1),ok(X2)) = [0] [1] [1] >= [0] [1] [1] = c_16(cons1#(X1,X2)) from#(mark(X)) = [0] [1] [0] >= [0] [1] [0] = c_17(from#(X)) from#(ok(X)) = [0] [1] [0] >= [0] [1] [0] = c_18(from#(X)) proper#(2nd(X)) = [0] [1] [1] >= [0] [1] [1] = 2nd#(proper(X)) proper#(2nd(X)) = [0] [1] [1] >= [0] [1] [1] = proper#(X) proper#(cons(X1,X2)) = [0] [1] [1] >= [0] [1] [1] = cons#(proper(X1),proper(X2)) proper#(cons(X1,X2)) = [0] [1] [1] >= [0] [1] [1] = proper#(X1) proper#(cons(X1,X2)) = [0] [1] [1] >= [0] [1] [1] = proper#(X2) proper#(cons1(X1,X2)) = [0] [1] [1] >= [0] [1] [1] = cons1#(proper(X1),proper(X2)) proper#(cons1(X1,X2)) = [0] [1] [1] >= [0] [1] [1] = proper#(X1) proper#(cons1(X1,X2)) = [0] [1] [1] >= [0] [1] [1] = proper#(X2) proper#(from(X)) = [0] [1] [1] >= [0] [1] [0] = from#(proper(X)) proper#(from(X)) = [0] [1] [1] >= [0] [1] [1] = proper#(X) proper#(s(X)) = [0] [1] [1] >= [0] [1] [1] = proper#(X) proper#(s(X)) = [0] [1] [1] >= [0] [0] [1] = s#(proper(X)) s#(mark(X)) = [0] [0] [1] >= [0] [0] [1] = c_24(s#(X)) s#(ok(X)) = [0] [0] [1] >= [0] [0] [1] = c_25(s#(X)) top#(mark(X)) = [0 1 0] [0] [0 0 0] X + [1] [0 0 0] [1] >= [0] [1] [1] = proper#(X) top#(mark(X)) = [0 1 0] [0] [0 0 0] X + [1] [0 0 0] [1] >= [0 1 0] [0] [0 0 0] X + [1] [0 0 0] [1] = top#(proper(X)) top#(ok(X)) = [0 1 0] [1] [0 0 0] X + [1] [0 0 0] [1] >= [0 1 0] [1] [0 0 0] X + [1] [0 0 0] [1] = active#(X) top#(ok(X)) = [0 1 0] [1] [0 0 0] X + [1] [0 0 0] [1] >= [0 1 0] [0] [0 0 0] X + [1] [0 0 0] [1] = top#(active(X)) 2nd(mark(X)) = [0 0 0] [0] [0 1 1] X + [0] [0 1 1] [0] >= [0 0 0] [0] [0 1 1] X + [0] [0 1 1] [0] = mark(2nd(X)) 2nd(ok(X)) = [0 0 0] [0] [0 1 1] X + [1] [0 1 1] [1] >= [0 0 0] [0] [0 1 1] X + [1] [0 1 1] [0] = ok(2nd(X)) active(2nd(X)) = [0 0 0] [0] [0 1 1] X + [0] [0 1 1] [0] >= [0 0 0] [0] [0 1 1] X + [0] [0 1 1] [0] = 2nd(active(X)) active(2nd(cons(X,X1))) = [0 0 0] [0 0 0] [0] [0 1 1] X + [0 1 0] X1 + [0] [0 1 1] [0 1 0] [0] >= [0 0 0] [0 0 0] [0] [0 1 0] X + [0 1 0] X1 + [0] [0 1 0] [0 1 0] [0] = mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) = [0 0 0] [0 0 0] [0] [0 1 0] X + [0 1 1] Y + [0] [0 1 0] [0 1 1] [0] >= [0 0 0] [0] [0 1 0] Y + [0] [0 0 1] [0] = mark(Y) active(cons(X1,X2)) = [0 0 0] [0 0 0] [0] [0 1 1] X1 + [0 0 0] X2 + [0] [0 0 0] [0 1 0] [0] >= [0 0 0] [0 0 0] [0] [0 1 1] X1 + [0 0 0] X2 + [0] [0 0 0] [0 1 0] [0] = cons(active(X1),X2) active(cons1(X1,X2)) = [0 0 0] [0 0 0] [0] [0 1 0] X1 + [0 1 0] X2 + [0] [0 0 0] [0 0 0] [0] >= [0 0 0] [0 0 0] [0] [0 1 0] X1 + [0 1 0] X2 + [0] [0 0 0] [0 0 0] [0] = cons1(X1,active(X2)) active(cons1(X1,X2)) = [0 0 0] [0 0 0] [0] [0 1 0] X1 + [0 1 0] X2 + [0] [0 0 0] [0 0 0] [0] >= [0 0 0] [0 0 0] [0] [0 1 0] X1 + [0 1 0] X2 + [0] [0 0 0] [0 0 0] [0] = cons1(active(X1),X2) active(from(X)) = [0 0 0] [0] [0 1 1] X + [0] [0 1 0] [0] >= [0 0 0] [0] [0 1 1] X + [0] [0 1 0] [0] = from(active(X)) active(from(X)) = [0 0 0] [0] [0 1 1] X + [0] [0 1 0] [0] >= [0 0 0] [0] [0 1 1] X + [0] [0 1 0] [0] = mark(cons(X,from(s(X)))) active(s(X)) = [0 0 0] [0] [0 1 0] X + [0] [0 0 0] [0] >= [0 0 0] [0] [0 1 0] X + [0] [0 0 0] [0] = s(active(X)) cons(mark(X1),X2) = [0 0 0] [0 0 0] [0] [0 1 1] X1 + [0 0 0] X2 + [0] [0 0 0] [0 1 0] [0] >= [0 0 0] [0 0 0] [0] [0 1 1] X1 + [0 0 0] X2 + [0] [0 0 0] [0 1 0] [0] = mark(cons(X1,X2)) cons(ok(X1),ok(X2)) = [0 0 0] [0 0 0] [0] [0 1 1] X1 + [0 0 0] X2 + [1] [0 0 0] [0 1 0] [1] >= [0 0 0] [0 0 0] [0] [0 1 1] X1 + [0 0 0] X2 + [1] [0 0 0] [0 1 0] [0] = ok(cons(X1,X2)) cons1(X1,mark(X2)) = [0 0 0] [0 0 0] [0] [0 1 0] X1 + [0 1 0] X2 + [0] [0 0 0] [0 0 0] [0] >= [0 0 0] [0 0 0] [0] [0 1 0] X1 + [0 1 0] X2 + [0] [0 0 0] [0 0 0] [0] = mark(cons1(X1,X2)) cons1(mark(X1),X2) = [0 0 0] [0 0 0] [0] [0 1 0] X1 + [0 1 0] X2 + [0] [0 0 0] [0 0 0] [0] >= [0 0 0] [0 0 0] [0] [0 1 0] X1 + [0 1 0] X2 + [0] [0 0 0] [0 0 0] [0] = mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) = [0 0 0] [0 0 0] [0] [0 1 0] X1 + [0 1 0] X2 + [2] [0 0 0] [0 0 0] [0] >= [0 0 0] [0 0 0] [0] [0 1 0] X1 + [0 1 0] X2 + [1] [0 0 0] [0 0 0] [0] = ok(cons1(X1,X2)) from(mark(X)) = [0 0 0] [0] [0 1 1] X + [0] [0 1 0] [0] >= [0 0 0] [0] [0 1 1] X + [0] [0 1 0] [0] = mark(from(X)) from(ok(X)) = [0 0 0] [0] [0 1 1] X + [1] [0 1 0] [1] >= [0 0 0] [0] [0 1 1] X + [1] [0 1 0] [0] = ok(from(X)) proper(2nd(X)) = [0 1 1] [0] [0 0 0] X + [0] [0 0 0] [0] >= [0] [0] [0] = 2nd(proper(X)) proper(cons(X1,X2)) = [0 1 1] [0] [0 0 0] X1 + [0] [0 0 0] [0] >= [0] [0] [0] = cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) = [0 1 0] [0 1 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 0] [0 0 0] [0] >= [0] [0] [0] = cons1(proper(X1),proper(X2)) proper(from(X)) = [0 1 1] [0] [0 0 0] X + [0] [0 0 0] [0] >= [0] [0] [0] = from(proper(X)) proper(s(X)) = [0 1 0] [0] [0 0 0] X + [0] [0 0 0] [0] >= [0] [0] [0] = s(proper(X)) s(mark(X)) = [0 0 0] [0] [0 1 0] X + [0] [0 0 0] [0] >= [0 0 0] [0] [0 1 0] X + [0] [0 0 0] [0] = mark(s(X)) s(ok(X)) = [0 0 0] [0] [0 1 0] X + [1] [0 0 0] [0] >= [0 0 0] [0] [0 1 0] X + [1] [0 0 0] [0] = ok(s(X)) *** Step 5.b:1.b:7: MI WORST_CASE(?,O(n^3)) + Considered Problem: - Strict DPs: 2nd#(mark(X)) -> c_1(2nd#(X)) cons#(mark(X1),X2) -> c_12(cons#(X1,X2)) cons1#(X1,mark(X2)) -> c_14(cons1#(X1,X2)) cons1#(mark(X1),X2) -> c_15(cons1#(X1,X2)) from#(mark(X)) -> c_17(from#(X)) s#(mark(X)) -> c_24(s#(X)) s#(ok(X)) -> c_25(s#(X)) - Weak DPs: 2nd#(ok(X)) -> c_2(2nd#(X)) active#(2nd(X)) -> 2nd#(active(X)) active#(2nd(X)) -> active#(X) active#(2nd(cons(X,X1))) -> c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) active#(cons(X1,X2)) -> active#(X1) active#(cons(X1,X2)) -> cons#(active(X1),X2) active#(cons1(X1,X2)) -> active#(X1) active#(cons1(X1,X2)) -> active#(X2) active#(cons1(X1,X2)) -> cons1#(X1,active(X2)) active#(cons1(X1,X2)) -> cons1#(active(X1),X2) active#(from(X)) -> active#(X) active#(from(X)) -> from#(active(X)) active#(from(X)) -> c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) -> active#(X) active#(s(X)) -> s#(active(X)) cons#(ok(X1),ok(X2)) -> c_13(cons#(X1,X2)) cons1#(ok(X1),ok(X2)) -> c_16(cons1#(X1,X2)) from#(ok(X)) -> c_18(from#(X)) proper#(2nd(X)) -> 2nd#(proper(X)) proper#(2nd(X)) -> proper#(X) proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) proper#(cons(X1,X2)) -> proper#(X1) proper#(cons(X1,X2)) -> proper#(X2) proper#(cons1(X1,X2)) -> cons1#(proper(X1),proper(X2)) proper#(cons1(X1,X2)) -> proper#(X1) proper#(cons1(X1,X2)) -> proper#(X2) proper#(from(X)) -> from#(proper(X)) proper#(from(X)) -> proper#(X) proper#(s(X)) -> proper#(X) proper#(s(X)) -> s#(proper(X)) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/2,c_4/2,c_5/0,c_6/2,c_7/2,c_8/2,c_9/2,c_10/3,c_11/2,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/2,c_20/3,c_21/3,c_22/2,c_23/2,c_24/1,c_25/1,c_26/2,c_27/2} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: MI {miKind = Automaton Nothing, miDimension = 3, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules} + Details: We apply a matrix interpretation of kind Automaton Nothing: The following argument positions are considered usable: uargs(c_1) = {1}, uargs(c_2) = {1}, uargs(c_4) = {1,2}, uargs(c_10) = {1,2,3}, uargs(c_12) = {1}, uargs(c_13) = {1}, uargs(c_14) = {1}, uargs(c_15) = {1}, uargs(c_16) = {1}, uargs(c_17) = {1}, uargs(c_18) = {1}, uargs(c_24) = {1}, uargs(c_25) = {1} Following symbols are considered usable: {2nd,active,cons,cons1,from,proper,s,2nd#,active#,cons#,cons1#,from#,proper#,s#,top#} TcT has computed the following interpretation: p(2nd) = [0 0 0] [0] [0 1 0] x_1 + [0] [1 0 1] [0] p(active) = [0 0 0] [0] [0 1 1] x_1 + [1] [0 0 1] [1] p(cons) = [0 0 0] [0 0 0] [0] [0 1 0] x_1 + [0 0 0] x_2 + [0] [0 0 1] [0 1 0] [0] p(cons1) = [0 0 0] [0 0 0] [0] [0 1 0] x_1 + [0 1 0] x_2 + [0] [0 0 1] [0 0 1] [0] p(from) = [0 0 0] [0] [0 1 0] x_1 + [0] [0 0 1] [0] p(mark) = [0 0 0] [0] [0 1 0] x_1 + [1] [0 0 0] [1] p(ok) = [0 0 0] [0] [0 1 0] x_1 + [0] [1 1 1] [1] p(proper) = [0] [0] [0] p(s) = [0 0 0] [0] [0 1 0] x_1 + [0] [0 0 1] [0] p(top) = [0] [0] [0] p(2nd#) = [0 1 0] [0] [0 0 1] x_1 + [0] [0 0 0] [0] p(active#) = [0 1 1] [1] [0 0 1] x_1 + [1] [0 0 0] [0] p(cons#) = [0 0 0] [0] [0 1 0] x_2 + [0] [0 0 0] [0] p(cons1#) = [0] [1] [0] p(from#) = [0] [1] [0] p(proper#) = [0] [1] [0] p(s#) = [0] [1] [0] p(top#) = [0 0 1] [0] [0 0 1] x_1 + [0] [0 0 0] [0] p(c_1) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_2) = [1 0 0] [0] [1 1 0] x_1 + [0] [0 0 0] [0] p(c_3) = [0] [0] [0] p(c_4) = [1 0 0] [1 0 0] [1] [0 0 0] x_1 + [0 0 0] x_2 + [1] [0 0 0] [0 0 0] [0] p(c_5) = [0] [0] [0] p(c_6) = [0] [0] [0] p(c_7) = [0] [0] [0] p(c_8) = [0] [0] [0] p(c_9) = [0] [0] [0] p(c_10) = [1 1 0] [1 0 0] [1 1 0] [0] [0 0 0] x_1 + [0 1 0] x_2 + [0 0 0] x_3 + [0] [0 0 0] [0 0 0] [0 0 0] [0] p(c_11) = [0] [0] [0] p(c_12) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_13) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_14) = [1 0 0] [0] [0 0 0] x_1 + [1] [0 0 0] [0] p(c_15) = [1 0 0] [0] [0 0 0] x_1 + [1] [0 0 0] [0] p(c_16) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_17) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 0] [0] p(c_18) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_19) = [0] [0] [0] p(c_20) = [0] [0] [0] p(c_21) = [0] [0] [0] p(c_22) = [0] [0] [0] p(c_23) = [0] [0] [0] p(c_24) = [1 0 0] [0] [0 0 0] x_1 + [1] [0 0 0] [0] p(c_25) = [1 0 0] [0] [0 0 0] x_1 + [1] [0 0 0] [0] p(c_26) = [0] [0] [0] p(c_27) = [0] [0] [0] Following rules are strictly oriented: 2nd#(mark(X)) = [0 1 0] [1] [0 0 0] X + [1] [0 0 0] [0] > [0 1 0] [0] [0 0 0] X + [0] [0 0 0] [0] = c_1(2nd#(X)) Following rules are (at-least) weakly oriented: 2nd#(ok(X)) = [0 1 0] [0] [1 1 1] X + [1] [0 0 0] [0] >= [0 1 0] [0] [0 1 1] X + [0] [0 0 0] [0] = c_2(2nd#(X)) active#(2nd(X)) = [1 1 1] [1] [1 0 1] X + [1] [0 0 0] [0] >= [0 1 1] [1] [0 0 1] X + [1] [0 0 0] [0] = 2nd#(active(X)) active#(2nd(X)) = [1 1 1] [1] [1 0 1] X + [1] [0 0 0] [0] >= [0 1 1] [1] [0 0 1] X + [1] [0 0 0] [0] = active#(X) active#(2nd(cons(X,X1))) = [0 1 1] [0 1 0] [1] [0 0 1] X + [0 1 0] X1 + [1] [0 0 0] [0 0 0] [0] >= [0 1 0] [0 1 0] [1] [0 0 0] X + [0 0 0] X1 + [1] [0 0 0] [0 0 0] [0] = c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) active#(cons(X1,X2)) = [0 1 1] [0 1 0] [1] [0 0 1] X1 + [0 1 0] X2 + [1] [0 0 0] [0 0 0] [0] >= [0 1 1] [1] [0 0 1] X1 + [1] [0 0 0] [0] = active#(X1) active#(cons(X1,X2)) = [0 1 1] [0 1 0] [1] [0 0 1] X1 + [0 1 0] X2 + [1] [0 0 0] [0 0 0] [0] >= [0 0 0] [0] [0 1 0] X2 + [0] [0 0 0] [0] = cons#(active(X1),X2) active#(cons1(X1,X2)) = [0 1 1] [0 1 1] [1] [0 0 1] X1 + [0 0 1] X2 + [1] [0 0 0] [0 0 0] [0] >= [0 1 1] [1] [0 0 1] X1 + [1] [0 0 0] [0] = active#(X1) active#(cons1(X1,X2)) = [0 1 1] [0 1 1] [1] [0 0 1] X1 + [0 0 1] X2 + [1] [0 0 0] [0 0 0] [0] >= [0 1 1] [1] [0 0 1] X2 + [1] [0 0 0] [0] = active#(X2) active#(cons1(X1,X2)) = [0 1 1] [0 1 1] [1] [0 0 1] X1 + [0 0 1] X2 + [1] [0 0 0] [0 0 0] [0] >= [0] [1] [0] = cons1#(X1,active(X2)) active#(cons1(X1,X2)) = [0 1 1] [0 1 1] [1] [0 0 1] X1 + [0 0 1] X2 + [1] [0 0 0] [0 0 0] [0] >= [0] [1] [0] = cons1#(active(X1),X2) active#(from(X)) = [0 1 1] [1] [0 0 1] X + [1] [0 0 0] [0] >= [0 1 1] [1] [0 0 1] X + [1] [0 0 0] [0] = active#(X) active#(from(X)) = [0 1 1] [1] [0 0 1] X + [1] [0 0 0] [0] >= [0] [1] [0] = from#(active(X)) active#(from(X)) = [0 1 1] [1] [0 0 1] X + [1] [0 0 0] [0] >= [0 1 0] [1] [0 0 0] X + [1] [0 0 0] [0] = c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) = [0 1 1] [1] [0 0 1] X + [1] [0 0 0] [0] >= [0 1 1] [1] [0 0 1] X + [1] [0 0 0] [0] = active#(X) active#(s(X)) = [0 1 1] [1] [0 0 1] X + [1] [0 0 0] [0] >= [0] [1] [0] = s#(active(X)) cons#(mark(X1),X2) = [0 0 0] [0] [0 1 0] X2 + [0] [0 0 0] [0] >= [0] [0] [0] = c_12(cons#(X1,X2)) cons#(ok(X1),ok(X2)) = [0 0 0] [0] [0 1 0] X2 + [0] [0 0 0] [0] >= [0] [0] [0] = c_13(cons#(X1,X2)) cons1#(X1,mark(X2)) = [0] [1] [0] >= [0] [1] [0] = c_14(cons1#(X1,X2)) cons1#(mark(X1),X2) = [0] [1] [0] >= [0] [1] [0] = c_15(cons1#(X1,X2)) cons1#(ok(X1),ok(X2)) = [0] [1] [0] >= [0] [0] [0] = c_16(cons1#(X1,X2)) from#(mark(X)) = [0] [1] [0] >= [0] [1] [0] = c_17(from#(X)) from#(ok(X)) = [0] [1] [0] >= [0] [0] [0] = c_18(from#(X)) proper#(2nd(X)) = [0] [1] [0] >= [0] [0] [0] = 2nd#(proper(X)) proper#(2nd(X)) = [0] [1] [0] >= [0] [1] [0] = proper#(X) proper#(cons(X1,X2)) = [0] [1] [0] >= [0] [0] [0] = cons#(proper(X1),proper(X2)) proper#(cons(X1,X2)) = [0] [1] [0] >= [0] [1] [0] = proper#(X1) proper#(cons(X1,X2)) = [0] [1] [0] >= [0] [1] [0] = proper#(X2) proper#(cons1(X1,X2)) = [0] [1] [0] >= [0] [1] [0] = cons1#(proper(X1),proper(X2)) proper#(cons1(X1,X2)) = [0] [1] [0] >= [0] [1] [0] = proper#(X1) proper#(cons1(X1,X2)) = [0] [1] [0] >= [0] [1] [0] = proper#(X2) proper#(from(X)) = [0] [1] [0] >= [0] [1] [0] = from#(proper(X)) proper#(from(X)) = [0] [1] [0] >= [0] [1] [0] = proper#(X) proper#(s(X)) = [0] [1] [0] >= [0] [1] [0] = proper#(X) proper#(s(X)) = [0] [1] [0] >= [0] [1] [0] = s#(proper(X)) s#(mark(X)) = [0] [1] [0] >= [0] [1] [0] = c_24(s#(X)) s#(ok(X)) = [0] [1] [0] >= [0] [1] [0] = c_25(s#(X)) top#(mark(X)) = [1] [1] [0] >= [0] [1] [0] = proper#(X) top#(mark(X)) = [1] [1] [0] >= [0] [0] [0] = top#(proper(X)) top#(ok(X)) = [1 1 1] [1] [1 1 1] X + [1] [0 0 0] [0] >= [0 1 1] [1] [0 0 1] X + [1] [0 0 0] [0] = active#(X) top#(ok(X)) = [1 1 1] [1] [1 1 1] X + [1] [0 0 0] [0] >= [0 0 1] [1] [0 0 1] X + [1] [0 0 0] [0] = top#(active(X)) 2nd(mark(X)) = [0 0 0] [0] [0 1 0] X + [1] [0 0 0] [1] >= [0 0 0] [0] [0 1 0] X + [1] [0 0 0] [1] = mark(2nd(X)) 2nd(ok(X)) = [0 0 0] [0] [0 1 0] X + [0] [1 1 1] [1] >= [0 0 0] [0] [0 1 0] X + [0] [1 1 1] [1] = ok(2nd(X)) active(2nd(X)) = [0 0 0] [0] [1 1 1] X + [1] [1 0 1] [1] >= [0 0 0] [0] [0 1 1] X + [1] [0 0 1] [1] = 2nd(active(X)) active(2nd(cons(X,X1))) = [0 0 0] [0 0 0] [0] [0 1 1] X + [0 1 0] X1 + [1] [0 0 1] [0 1 0] [1] >= [0 0 0] [0 0 0] [0] [0 1 0] X + [0 1 0] X1 + [1] [0 0 0] [0 0 0] [1] = mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) = [0 0 0] [0 0 0] [0 0 0] [0] [0 1 1] X + [0 1 1] Y + [0 1 0] Z + [1] [0 0 1] [0 0 1] [0 1 0] [1] >= [0 0 0] [0] [0 1 0] Y + [1] [0 0 0] [1] = mark(Y) active(cons(X1,X2)) = [0 0 0] [0 0 0] [0] [0 1 1] X1 + [0 1 0] X2 + [1] [0 0 1] [0 1 0] [1] >= [0 0 0] [0 0 0] [0] [0 1 1] X1 + [0 0 0] X2 + [1] [0 0 1] [0 1 0] [1] = cons(active(X1),X2) active(cons1(X1,X2)) = [0 0 0] [0 0 0] [0] [0 1 1] X1 + [0 1 1] X2 + [1] [0 0 1] [0 0 1] [1] >= [0 0 0] [0 0 0] [0] [0 1 0] X1 + [0 1 1] X2 + [1] [0 0 1] [0 0 1] [1] = cons1(X1,active(X2)) active(cons1(X1,X2)) = [0 0 0] [0 0 0] [0] [0 1 1] X1 + [0 1 1] X2 + [1] [0 0 1] [0 0 1] [1] >= [0 0 0] [0 0 0] [0] [0 1 1] X1 + [0 1 0] X2 + [1] [0 0 1] [0 0 1] [1] = cons1(active(X1),X2) active(from(X)) = [0 0 0] [0] [0 1 1] X + [1] [0 0 1] [1] >= [0 0 0] [0] [0 1 1] X + [1] [0 0 1] [1] = from(active(X)) active(from(X)) = [0 0 0] [0] [0 1 1] X + [1] [0 0 1] [1] >= [0 0 0] [0] [0 1 0] X + [1] [0 0 0] [1] = mark(cons(X,from(s(X)))) active(s(X)) = [0 0 0] [0] [0 1 1] X + [1] [0 0 1] [1] >= [0 0 0] [0] [0 1 1] X + [1] [0 0 1] [1] = s(active(X)) cons(mark(X1),X2) = [0 0 0] [0 0 0] [0] [0 1 0] X1 + [0 0 0] X2 + [1] [0 0 0] [0 1 0] [1] >= [0 0 0] [0] [0 1 0] X1 + [1] [0 0 0] [1] = mark(cons(X1,X2)) cons(ok(X1),ok(X2)) = [0 0 0] [0 0 0] [0] [0 1 0] X1 + [0 0 0] X2 + [0] [1 1 1] [0 1 0] [1] >= [0 0 0] [0 0 0] [0] [0 1 0] X1 + [0 0 0] X2 + [0] [0 1 1] [0 1 0] [1] = ok(cons(X1,X2)) cons1(X1,mark(X2)) = [0 0 0] [0 0 0] [0] [0 1 0] X1 + [0 1 0] X2 + [1] [0 0 1] [0 0 0] [1] >= [0 0 0] [0 0 0] [0] [0 1 0] X1 + [0 1 0] X2 + [1] [0 0 0] [0 0 0] [1] = mark(cons1(X1,X2)) cons1(mark(X1),X2) = [0 0 0] [0 0 0] [0] [0 1 0] X1 + [0 1 0] X2 + [1] [0 0 0] [0 0 1] [1] >= [0 0 0] [0 0 0] [0] [0 1 0] X1 + [0 1 0] X2 + [1] [0 0 0] [0 0 0] [1] = mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) = [0 0 0] [0 0 0] [0] [0 1 0] X1 + [0 1 0] X2 + [0] [1 1 1] [1 1 1] [2] >= [0 0 0] [0 0 0] [0] [0 1 0] X1 + [0 1 0] X2 + [0] [0 1 1] [0 1 1] [1] = ok(cons1(X1,X2)) from(mark(X)) = [0 0 0] [0] [0 1 0] X + [1] [0 0 0] [1] >= [0 0 0] [0] [0 1 0] X + [1] [0 0 0] [1] = mark(from(X)) from(ok(X)) = [0 0 0] [0] [0 1 0] X + [0] [1 1 1] [1] >= [0 0 0] [0] [0 1 0] X + [0] [0 1 1] [1] = ok(from(X)) proper(2nd(X)) = [0] [0] [0] >= [0] [0] [0] = 2nd(proper(X)) proper(cons(X1,X2)) = [0] [0] [0] >= [0] [0] [0] = cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) = [0] [0] [0] >= [0] [0] [0] = cons1(proper(X1),proper(X2)) proper(from(X)) = [0] [0] [0] >= [0] [0] [0] = from(proper(X)) proper(s(X)) = [0] [0] [0] >= [0] [0] [0] = s(proper(X)) s(mark(X)) = [0 0 0] [0] [0 1 0] X + [1] [0 0 0] [1] >= [0 0 0] [0] [0 1 0] X + [1] [0 0 0] [1] = mark(s(X)) s(ok(X)) = [0 0 0] [0] [0 1 0] X + [0] [1 1 1] [1] >= [0 0 0] [0] [0 1 0] X + [0] [0 1 1] [1] = ok(s(X)) *** Step 5.b:1.b:8: MI WORST_CASE(?,O(n^3)) + Considered Problem: - Strict DPs: cons#(mark(X1),X2) -> c_12(cons#(X1,X2)) cons1#(X1,mark(X2)) -> c_14(cons1#(X1,X2)) cons1#(mark(X1),X2) -> c_15(cons1#(X1,X2)) from#(mark(X)) -> c_17(from#(X)) s#(mark(X)) -> c_24(s#(X)) s#(ok(X)) -> c_25(s#(X)) - Weak DPs: 2nd#(mark(X)) -> c_1(2nd#(X)) 2nd#(ok(X)) -> c_2(2nd#(X)) active#(2nd(X)) -> 2nd#(active(X)) active#(2nd(X)) -> active#(X) active#(2nd(cons(X,X1))) -> c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) active#(cons(X1,X2)) -> active#(X1) active#(cons(X1,X2)) -> cons#(active(X1),X2) active#(cons1(X1,X2)) -> active#(X1) active#(cons1(X1,X2)) -> active#(X2) active#(cons1(X1,X2)) -> cons1#(X1,active(X2)) active#(cons1(X1,X2)) -> cons1#(active(X1),X2) active#(from(X)) -> active#(X) active#(from(X)) -> from#(active(X)) active#(from(X)) -> c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) -> active#(X) active#(s(X)) -> s#(active(X)) cons#(ok(X1),ok(X2)) -> c_13(cons#(X1,X2)) cons1#(ok(X1),ok(X2)) -> c_16(cons1#(X1,X2)) from#(ok(X)) -> c_18(from#(X)) proper#(2nd(X)) -> 2nd#(proper(X)) proper#(2nd(X)) -> proper#(X) proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) proper#(cons(X1,X2)) -> proper#(X1) proper#(cons(X1,X2)) -> proper#(X2) proper#(cons1(X1,X2)) -> cons1#(proper(X1),proper(X2)) proper#(cons1(X1,X2)) -> proper#(X1) proper#(cons1(X1,X2)) -> proper#(X2) proper#(from(X)) -> from#(proper(X)) proper#(from(X)) -> proper#(X) proper#(s(X)) -> proper#(X) proper#(s(X)) -> s#(proper(X)) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/2,c_4/2,c_5/0,c_6/2,c_7/2,c_8/2,c_9/2,c_10/3,c_11/2,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/2,c_20/3,c_21/3,c_22/2,c_23/2,c_24/1,c_25/1,c_26/2,c_27/2} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: MI {miKind = Automaton Nothing, miDimension = 3, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules} + Details: We apply a matrix interpretation of kind Automaton Nothing: The following argument positions are considered usable: uargs(c_1) = {1}, uargs(c_2) = {1}, uargs(c_4) = {1,2}, uargs(c_10) = {1,2,3}, uargs(c_12) = {1}, uargs(c_13) = {1}, uargs(c_14) = {1}, uargs(c_15) = {1}, uargs(c_16) = {1}, uargs(c_17) = {1}, uargs(c_18) = {1}, uargs(c_24) = {1}, uargs(c_25) = {1} Following symbols are considered usable: {2nd,active,cons,cons1,from,proper,s,2nd#,active#,cons#,cons1#,from#,proper#,s#,top#} TcT has computed the following interpretation: p(2nd) = [1 0 1] [0] [0 0 0] x_1 + [0] [1 0 1] [0] p(active) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 1] [0] p(cons) = [1 0 1] [0 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0] [0 0 0] [1 0 0] [0] p(cons1) = [1 0 0] [1 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0] [0 0 0] [0 0 0] [0] p(from) = [1 0 1] [0] [0 0 0] x_1 + [0] [1 0 0] [0] p(mark) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 1] [0] p(ok) = [1 0 0] [1] [0 0 0] x_1 + [0] [0 0 1] [0] p(proper) = [0] [0] [0] p(s) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(top) = [0] [0] [0] p(2nd#) = [0 0 1] [0] [0 0 0] x_1 + [1] [1 0 0] [0] p(active#) = [1 0 0] [1] [0 0 0] x_1 + [1] [1 0 0] [1] p(cons#) = [0] [0] [1] p(cons1#) = [0] [1] [1] p(from#) = [1] [1] [1] p(proper#) = [1] [1] [1] p(s#) = [1 0 0] [0] [0 0 0] x_1 + [1] [1 0 0] [0] p(top#) = [1 0 0] [1] [0 0 0] x_1 + [1] [1 0 1] [1] p(c_1) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 0] [0] p(c_2) = [1 0 0] [0] [0 0 0] x_1 + [1] [0 0 1] [1] p(c_3) = [0] [0] [0] p(c_4) = [1 0 1] [1 0 1] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0] [0 0 1] [0 0 1] [0] p(c_5) = [0] [0] [0] p(c_6) = [0] [0] [0] p(c_7) = [0] [0] [0] p(c_8) = [0] [0] [0] p(c_9) = [0] [0] [0] p(c_10) = [1 0 0] [1 0 0] [1 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0 0 0] x_3 + [0] [0 0 0] [0 0 0] [0 1 1] [0] p(c_11) = [0] [0] [0] p(c_12) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 1] [0] p(c_13) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_14) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 1 0] [0] p(c_15) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 1 0] [0] p(c_16) = [1 0 0] [0] [0 0 1] x_1 + [0] [0 0 0] [1] p(c_17) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_18) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 0] [0] p(c_19) = [0] [0] [0] p(c_20) = [0] [0] [0] p(c_21) = [0] [0] [0] p(c_22) = [0] [0] [0] p(c_23) = [0] [0] [0] p(c_24) = [1 0 0] [0] [0 0 0] x_1 + [1] [0 0 0] [0] p(c_25) = [1 0 0] [0] [0 0 0] x_1 + [0] [1 0 0] [0] p(c_26) = [0] [0] [0] p(c_27) = [0] [0] [0] Following rules are strictly oriented: s#(ok(X)) = [1 0 0] [1] [0 0 0] X + [1] [1 0 0] [1] > [1 0 0] [0] [0 0 0] X + [0] [1 0 0] [0] = c_25(s#(X)) Following rules are (at-least) weakly oriented: 2nd#(mark(X)) = [0 0 1] [0] [0 0 0] X + [1] [1 0 0] [0] >= [0 0 1] [0] [0 0 0] X + [1] [0 0 0] [0] = c_1(2nd#(X)) 2nd#(ok(X)) = [0 0 1] [0] [0 0 0] X + [1] [1 0 0] [1] >= [0 0 1] [0] [0 0 0] X + [1] [1 0 0] [1] = c_2(2nd#(X)) active#(2nd(X)) = [1 0 1] [1] [0 0 0] X + [1] [1 0 1] [1] >= [0 0 1] [0] [0 0 0] X + [1] [1 0 0] [0] = 2nd#(active(X)) active#(2nd(X)) = [1 0 1] [1] [0 0 0] X + [1] [1 0 1] [1] >= [1 0 0] [1] [0 0 0] X + [1] [1 0 0] [1] = active#(X) active#(2nd(cons(X,X1))) = [1 0 1] [1 0 0] [1] [0 0 0] X + [0 0 0] X1 + [1] [1 0 1] [1 0 0] [1] >= [1 0 0] [1 0 0] [1] [0 0 0] X + [0 0 0] X1 + [0] [1 0 0] [1 0 0] [1] = c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) active#(cons(X1,X2)) = [1 0 1] [1] [0 0 0] X1 + [1] [1 0 1] [1] >= [1 0 0] [1] [0 0 0] X1 + [1] [1 0 0] [1] = active#(X1) active#(cons(X1,X2)) = [1 0 1] [1] [0 0 0] X1 + [1] [1 0 1] [1] >= [0] [0] [1] = cons#(active(X1),X2) active#(cons1(X1,X2)) = [1 0 0] [1 0 0] [1] [0 0 0] X1 + [0 0 0] X2 + [1] [1 0 0] [1 0 0] [1] >= [1 0 0] [1] [0 0 0] X1 + [1] [1 0 0] [1] = active#(X1) active#(cons1(X1,X2)) = [1 0 0] [1 0 0] [1] [0 0 0] X1 + [0 0 0] X2 + [1] [1 0 0] [1 0 0] [1] >= [1 0 0] [1] [0 0 0] X2 + [1] [1 0 0] [1] = active#(X2) active#(cons1(X1,X2)) = [1 0 0] [1 0 0] [1] [0 0 0] X1 + [0 0 0] X2 + [1] [1 0 0] [1 0 0] [1] >= [0] [1] [1] = cons1#(X1,active(X2)) active#(cons1(X1,X2)) = [1 0 0] [1 0 0] [1] [0 0 0] X1 + [0 0 0] X2 + [1] [1 0 0] [1 0 0] [1] >= [0] [1] [1] = cons1#(active(X1),X2) active#(from(X)) = [1 0 1] [1] [0 0 0] X + [1] [1 0 1] [1] >= [1 0 0] [1] [0 0 0] X + [1] [1 0 0] [1] = active#(X) active#(from(X)) = [1 0 1] [1] [0 0 0] X + [1] [1 0 1] [1] >= [1] [1] [1] = from#(active(X)) active#(from(X)) = [1 0 1] [1] [0 0 0] X + [1] [1 0 1] [1] >= [1 0 0] [1] [0 0 0] X + [0] [1 0 0] [1] = c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) = [1 0 0] [1] [0 0 0] X + [1] [1 0 0] [1] >= [1 0 0] [1] [0 0 0] X + [1] [1 0 0] [1] = active#(X) active#(s(X)) = [1 0 0] [1] [0 0 0] X + [1] [1 0 0] [1] >= [1 0 0] [0] [0 0 0] X + [1] [1 0 0] [0] = s#(active(X)) cons#(mark(X1),X2) = [0] [0] [1] >= [0] [0] [1] = c_12(cons#(X1,X2)) cons#(ok(X1),ok(X2)) = [0] [0] [1] >= [0] [0] [0] = c_13(cons#(X1,X2)) cons1#(X1,mark(X2)) = [0] [1] [1] >= [0] [0] [1] = c_14(cons1#(X1,X2)) cons1#(mark(X1),X2) = [0] [1] [1] >= [0] [0] [1] = c_15(cons1#(X1,X2)) cons1#(ok(X1),ok(X2)) = [0] [1] [1] >= [0] [1] [1] = c_16(cons1#(X1,X2)) from#(mark(X)) = [1] [1] [1] >= [1] [0] [0] = c_17(from#(X)) from#(ok(X)) = [1] [1] [1] >= [1] [1] [0] = c_18(from#(X)) proper#(2nd(X)) = [1] [1] [1] >= [0] [1] [0] = 2nd#(proper(X)) proper#(2nd(X)) = [1] [1] [1] >= [1] [1] [1] = proper#(X) proper#(cons(X1,X2)) = [1] [1] [1] >= [0] [0] [1] = cons#(proper(X1),proper(X2)) proper#(cons(X1,X2)) = [1] [1] [1] >= [1] [1] [1] = proper#(X1) proper#(cons(X1,X2)) = [1] [1] [1] >= [1] [1] [1] = proper#(X2) proper#(cons1(X1,X2)) = [1] [1] [1] >= [0] [1] [1] = cons1#(proper(X1),proper(X2)) proper#(cons1(X1,X2)) = [1] [1] [1] >= [1] [1] [1] = proper#(X1) proper#(cons1(X1,X2)) = [1] [1] [1] >= [1] [1] [1] = proper#(X2) proper#(from(X)) = [1] [1] [1] >= [1] [1] [1] = from#(proper(X)) proper#(from(X)) = [1] [1] [1] >= [1] [1] [1] = proper#(X) proper#(s(X)) = [1] [1] [1] >= [1] [1] [1] = proper#(X) proper#(s(X)) = [1] [1] [1] >= [0] [1] [0] = s#(proper(X)) s#(mark(X)) = [1 0 0] [0] [0 0 0] X + [1] [1 0 0] [0] >= [1 0 0] [0] [0 0 0] X + [1] [0 0 0] [0] = c_24(s#(X)) top#(mark(X)) = [1 0 0] [1] [0 0 0] X + [1] [1 0 1] [1] >= [1] [1] [1] = proper#(X) top#(mark(X)) = [1 0 0] [1] [0 0 0] X + [1] [1 0 1] [1] >= [1] [1] [1] = top#(proper(X)) top#(ok(X)) = [1 0 0] [2] [0 0 0] X + [1] [1 0 1] [2] >= [1 0 0] [1] [0 0 0] X + [1] [1 0 0] [1] = active#(X) top#(ok(X)) = [1 0 0] [2] [0 0 0] X + [1] [1 0 1] [2] >= [1 0 0] [1] [0 0 0] X + [1] [1 0 1] [1] = top#(active(X)) 2nd(mark(X)) = [1 0 1] [0] [0 0 0] X + [0] [1 0 1] [0] >= [1 0 1] [0] [0 0 0] X + [0] [1 0 1] [0] = mark(2nd(X)) 2nd(ok(X)) = [1 0 1] [1] [0 0 0] X + [0] [1 0 1] [1] >= [1 0 1] [1] [0 0 0] X + [0] [1 0 1] [0] = ok(2nd(X)) active(2nd(X)) = [1 0 1] [0] [0 0 0] X + [0] [1 0 1] [0] >= [1 0 1] [0] [0 0 0] X + [0] [1 0 1] [0] = 2nd(active(X)) active(2nd(cons(X,X1))) = [1 0 1] [1 0 0] [0] [0 0 0] X + [0 0 0] X1 + [0] [1 0 1] [1 0 0] [0] >= [1 0 0] [1 0 0] [0] [0 0 0] X + [0 0 0] X1 + [0] [1 0 0] [1 0 0] [0] = mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) = [1 0 0] [1 0 1] [0] [0 0 0] X + [0 0 0] Y + [0] [1 0 0] [1 0 1] [0] >= [1 0 0] [0] [0 0 0] Y + [0] [0 0 1] [0] = mark(Y) active(cons(X1,X2)) = [1 0 1] [0 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 0] [1 0 0] [0] >= [1 0 1] [0 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 0] [1 0 0] [0] = cons(active(X1),X2) active(cons1(X1,X2)) = [1 0 0] [1 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 0] [0 0 0] [0] >= [1 0 0] [1 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 0] [0 0 0] [0] = cons1(X1,active(X2)) active(cons1(X1,X2)) = [1 0 0] [1 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 0] [0 0 0] [0] >= [1 0 0] [1 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 0] [0 0 0] [0] = cons1(active(X1),X2) active(from(X)) = [1 0 1] [0] [0 0 0] X + [0] [1 0 0] [0] >= [1 0 1] [0] [0 0 0] X + [0] [1 0 0] [0] = from(active(X)) active(from(X)) = [1 0 1] [0] [0 0 0] X + [0] [1 0 0] [0] >= [1 0 1] [0] [0 0 0] X + [0] [1 0 0] [0] = mark(cons(X,from(s(X)))) active(s(X)) = [1 0 0] [0] [0 0 0] X + [0] [0 0 0] [0] >= [1 0 0] [0] [0 0 0] X + [0] [0 0 0] [0] = s(active(X)) cons(mark(X1),X2) = [1 0 1] [0 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 0] [1 0 0] [0] >= [1 0 1] [0 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 0] [1 0 0] [0] = mark(cons(X1,X2)) cons(ok(X1),ok(X2)) = [1 0 1] [0 0 0] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 0] [1 0 0] [1] >= [1 0 1] [0 0 0] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 0] [1 0 0] [0] = ok(cons(X1,X2)) cons1(X1,mark(X2)) = [1 0 0] [1 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 0] [0 0 0] [0] >= [1 0 0] [1 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 0] [0 0 0] [0] = mark(cons1(X1,X2)) cons1(mark(X1),X2) = [1 0 0] [1 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 0] [0 0 0] [0] >= [1 0 0] [1 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 0] [0 0 0] [0] = mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) = [1 0 0] [1 0 0] [2] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 0] [0 0 0] [0] >= [1 0 0] [1 0 0] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 0] [0 0 0] [0] = ok(cons1(X1,X2)) from(mark(X)) = [1 0 1] [0] [0 0 0] X + [0] [1 0 0] [0] >= [1 0 1] [0] [0 0 0] X + [0] [1 0 0] [0] = mark(from(X)) from(ok(X)) = [1 0 1] [1] [0 0 0] X + [0] [1 0 0] [1] >= [1 0 1] [1] [0 0 0] X + [0] [1 0 0] [0] = ok(from(X)) proper(2nd(X)) = [0] [0] [0] >= [0] [0] [0] = 2nd(proper(X)) proper(cons(X1,X2)) = [0] [0] [0] >= [0] [0] [0] = cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) = [0] [0] [0] >= [0] [0] [0] = cons1(proper(X1),proper(X2)) proper(from(X)) = [0] [0] [0] >= [0] [0] [0] = from(proper(X)) proper(s(X)) = [0] [0] [0] >= [0] [0] [0] = s(proper(X)) s(mark(X)) = [1 0 0] [0] [0 0 0] X + [0] [0 0 0] [0] >= [1 0 0] [0] [0 0 0] X + [0] [0 0 0] [0] = mark(s(X)) s(ok(X)) = [1 0 0] [1] [0 0 0] X + [0] [0 0 0] [0] >= [1 0 0] [1] [0 0 0] X + [0] [0 0 0] [0] = ok(s(X)) *** Step 5.b:1.b:9: MI WORST_CASE(?,O(n^3)) + Considered Problem: - Strict DPs: cons#(mark(X1),X2) -> c_12(cons#(X1,X2)) cons1#(X1,mark(X2)) -> c_14(cons1#(X1,X2)) cons1#(mark(X1),X2) -> c_15(cons1#(X1,X2)) from#(mark(X)) -> c_17(from#(X)) s#(mark(X)) -> c_24(s#(X)) - Weak DPs: 2nd#(mark(X)) -> c_1(2nd#(X)) 2nd#(ok(X)) -> c_2(2nd#(X)) active#(2nd(X)) -> 2nd#(active(X)) active#(2nd(X)) -> active#(X) active#(2nd(cons(X,X1))) -> c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) active#(cons(X1,X2)) -> active#(X1) active#(cons(X1,X2)) -> cons#(active(X1),X2) active#(cons1(X1,X2)) -> active#(X1) active#(cons1(X1,X2)) -> active#(X2) active#(cons1(X1,X2)) -> cons1#(X1,active(X2)) active#(cons1(X1,X2)) -> cons1#(active(X1),X2) active#(from(X)) -> active#(X) active#(from(X)) -> from#(active(X)) active#(from(X)) -> c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) -> active#(X) active#(s(X)) -> s#(active(X)) cons#(ok(X1),ok(X2)) -> c_13(cons#(X1,X2)) cons1#(ok(X1),ok(X2)) -> c_16(cons1#(X1,X2)) from#(ok(X)) -> c_18(from#(X)) proper#(2nd(X)) -> 2nd#(proper(X)) proper#(2nd(X)) -> proper#(X) proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) proper#(cons(X1,X2)) -> proper#(X1) proper#(cons(X1,X2)) -> proper#(X2) proper#(cons1(X1,X2)) -> cons1#(proper(X1),proper(X2)) proper#(cons1(X1,X2)) -> proper#(X1) proper#(cons1(X1,X2)) -> proper#(X2) proper#(from(X)) -> from#(proper(X)) proper#(from(X)) -> proper#(X) proper#(s(X)) -> proper#(X) proper#(s(X)) -> s#(proper(X)) s#(ok(X)) -> c_25(s#(X)) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/2,c_4/2,c_5/0,c_6/2,c_7/2,c_8/2,c_9/2,c_10/3,c_11/2,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/2,c_20/3,c_21/3,c_22/2,c_23/2,c_24/1,c_25/1,c_26/2,c_27/2} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: MI {miKind = Automaton Nothing, miDimension = 3, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules} + Details: We apply a matrix interpretation of kind Automaton Nothing: The following argument positions are considered usable: uargs(c_1) = {1}, uargs(c_2) = {1}, uargs(c_4) = {1,2}, uargs(c_10) = {1,2,3}, uargs(c_12) = {1}, uargs(c_13) = {1}, uargs(c_14) = {1}, uargs(c_15) = {1}, uargs(c_16) = {1}, uargs(c_17) = {1}, uargs(c_18) = {1}, uargs(c_24) = {1}, uargs(c_25) = {1} Following symbols are considered usable: {2nd,active,cons,cons1,from,proper,s,2nd#,active#,cons#,cons1#,from#,proper#,s#,top#} TcT has computed the following interpretation: p(2nd) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 0] [0] p(active) = [1 1 0] [1] [0 1 0] x_1 + [0] [0 0 0] [0] p(cons) = [1 0 0] [0 0 0] [0] [0 1 0] x_1 + [1 0 0] x_2 + [0] [0 0 0] [0 0 0] [0] p(cons1) = [1 0 0] [1 0 0] [0] [0 1 0] x_1 + [0 1 0] x_2 + [0] [0 0 0] [0 0 0] [0] p(from) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 0] [0] p(mark) = [1 0 0] [1] [0 0 0] x_1 + [0] [0 0 0] [0] p(ok) = [1 0 0] [0] [1 1 0] x_1 + [0] [0 0 0] [0] p(proper) = [0] [0] [0] p(s) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 0] [0] p(top) = [0] [0] [0] p(2nd#) = [0] [0] [1] p(active#) = [1 1 0] [1] [0 0 0] x_1 + [0] [0 0 0] [1] p(cons#) = [0] [0] [1] p(cons1#) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(from#) = [0] [0] [1] p(proper#) = [0] [1] [1] p(s#) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(top#) = [0 1 0] [1] [0 0 0] x_1 + [1] [0 0 0] [1] p(c_1) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_2) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_3) = [0] [0] [0] p(c_4) = [1 0 0] [1 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0] [0 0 0] [0 0 0] [0] p(c_5) = [0] [0] [0] p(c_6) = [0] [0] [0] p(c_7) = [0] [0] [0] p(c_8) = [0] [0] [0] p(c_9) = [0] [0] [0] p(c_10) = [1 0 0] [1 0 1] [1 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0 0 0] x_3 + [0] [0 0 0] [0 0 0] [0 0 0] [1] p(c_11) = [0] [0] [0] p(c_12) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_13) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 1] [0] p(c_14) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_15) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_16) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_17) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_18) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [1] p(c_19) = [0] [0] [0] p(c_20) = [0] [0] [0] p(c_21) = [0] [0] [0] p(c_22) = [0] [0] [0] p(c_23) = [0] [0] [0] p(c_24) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_25) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_26) = [0] [0] [0] p(c_27) = [0] [0] [0] Following rules are strictly oriented: cons1#(mark(X1),X2) = [1 0 0] [1] [0 0 0] X1 + [0] [0 0 0] [0] > [1 0 0] [0] [0 0 0] X1 + [0] [0 0 0] [0] = c_15(cons1#(X1,X2)) s#(mark(X)) = [1 0 0] [1] [0 0 0] X + [0] [0 0 0] [0] > [1 0 0] [0] [0 0 0] X + [0] [0 0 0] [0] = c_24(s#(X)) Following rules are (at-least) weakly oriented: 2nd#(mark(X)) = [0] [0] [1] >= [0] [0] [0] = c_1(2nd#(X)) 2nd#(ok(X)) = [0] [0] [1] >= [0] [0] [0] = c_2(2nd#(X)) active#(2nd(X)) = [1 1 0] [1] [0 0 0] X + [0] [0 0 0] [1] >= [0] [0] [1] = 2nd#(active(X)) active#(2nd(X)) = [1 1 0] [1] [0 0 0] X + [0] [0 0 0] [1] >= [1 1 0] [1] [0 0 0] X + [0] [0 0 0] [1] = active#(X) active#(2nd(cons(X,X1))) = [1 1 0] [1 0 0] [1] [0 0 0] X + [0 0 0] X1 + [0] [0 0 0] [0 0 0] [1] >= [1 0 0] [0] [0 0 0] X + [0] [0 0 0] [0] = c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) active#(cons(X1,X2)) = [1 1 0] [1 0 0] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 0] [0 0 0] [1] >= [1 1 0] [1] [0 0 0] X1 + [0] [0 0 0] [1] = active#(X1) active#(cons(X1,X2)) = [1 1 0] [1 0 0] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 0] [0 0 0] [1] >= [0] [0] [1] = cons#(active(X1),X2) active#(cons1(X1,X2)) = [1 1 0] [1 1 0] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 0] [0 0 0] [1] >= [1 1 0] [1] [0 0 0] X1 + [0] [0 0 0] [1] = active#(X1) active#(cons1(X1,X2)) = [1 1 0] [1 1 0] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 0] [0 0 0] [1] >= [1 1 0] [1] [0 0 0] X2 + [0] [0 0 0] [1] = active#(X2) active#(cons1(X1,X2)) = [1 1 0] [1 1 0] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 0] [0 0 0] [1] >= [1 0 0] [0] [0 0 0] X1 + [0] [0 0 0] [0] = cons1#(X1,active(X2)) active#(cons1(X1,X2)) = [1 1 0] [1 1 0] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 0] [0 0 0] [1] >= [1 1 0] [1] [0 0 0] X1 + [0] [0 0 0] [0] = cons1#(active(X1),X2) active#(from(X)) = [1 1 0] [1] [0 0 0] X + [0] [0 0 0] [1] >= [1 1 0] [1] [0 0 0] X + [0] [0 0 0] [1] = active#(X) active#(from(X)) = [1 1 0] [1] [0 0 0] X + [0] [0 0 0] [1] >= [0] [0] [1] = from#(active(X)) active#(from(X)) = [1 1 0] [1] [0 0 0] X + [0] [0 0 0] [1] >= [1 0 0] [1] [0 0 0] X + [0] [0 0 0] [1] = c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) = [1 1 0] [1] [0 0 0] X + [0] [0 0 0] [1] >= [1 1 0] [1] [0 0 0] X + [0] [0 0 0] [1] = active#(X) active#(s(X)) = [1 1 0] [1] [0 0 0] X + [0] [0 0 0] [1] >= [1 1 0] [1] [0 0 0] X + [0] [0 0 0] [0] = s#(active(X)) cons#(mark(X1),X2) = [0] [0] [1] >= [0] [0] [0] = c_12(cons#(X1,X2)) cons#(ok(X1),ok(X2)) = [0] [0] [1] >= [0] [0] [1] = c_13(cons#(X1,X2)) cons1#(X1,mark(X2)) = [1 0 0] [0] [0 0 0] X1 + [0] [0 0 0] [0] >= [1 0 0] [0] [0 0 0] X1 + [0] [0 0 0] [0] = c_14(cons1#(X1,X2)) cons1#(ok(X1),ok(X2)) = [1 0 0] [0] [0 0 0] X1 + [0] [0 0 0] [0] >= [1 0 0] [0] [0 0 0] X1 + [0] [0 0 0] [0] = c_16(cons1#(X1,X2)) from#(mark(X)) = [0] [0] [1] >= [0] [0] [0] = c_17(from#(X)) from#(ok(X)) = [0] [0] [1] >= [0] [0] [1] = c_18(from#(X)) proper#(2nd(X)) = [0] [1] [1] >= [0] [0] [1] = 2nd#(proper(X)) proper#(2nd(X)) = [0] [1] [1] >= [0] [1] [1] = proper#(X) proper#(cons(X1,X2)) = [0] [1] [1] >= [0] [0] [1] = cons#(proper(X1),proper(X2)) proper#(cons(X1,X2)) = [0] [1] [1] >= [0] [1] [1] = proper#(X1) proper#(cons(X1,X2)) = [0] [1] [1] >= [0] [1] [1] = proper#(X2) proper#(cons1(X1,X2)) = [0] [1] [1] >= [0] [0] [0] = cons1#(proper(X1),proper(X2)) proper#(cons1(X1,X2)) = [0] [1] [1] >= [0] [1] [1] = proper#(X1) proper#(cons1(X1,X2)) = [0] [1] [1] >= [0] [1] [1] = proper#(X2) proper#(from(X)) = [0] [1] [1] >= [0] [0] [1] = from#(proper(X)) proper#(from(X)) = [0] [1] [1] >= [0] [1] [1] = proper#(X) proper#(s(X)) = [0] [1] [1] >= [0] [1] [1] = proper#(X) proper#(s(X)) = [0] [1] [1] >= [0] [0] [0] = s#(proper(X)) s#(ok(X)) = [1 0 0] [0] [0 0 0] X + [0] [0 0 0] [0] >= [1 0 0] [0] [0 0 0] X + [0] [0 0 0] [0] = c_25(s#(X)) top#(mark(X)) = [1] [1] [1] >= [0] [1] [1] = proper#(X) top#(mark(X)) = [1] [1] [1] >= [1] [1] [1] = top#(proper(X)) top#(ok(X)) = [1 1 0] [1] [0 0 0] X + [1] [0 0 0] [1] >= [1 1 0] [1] [0 0 0] X + [0] [0 0 0] [1] = active#(X) top#(ok(X)) = [1 1 0] [1] [0 0 0] X + [1] [0 0 0] [1] >= [0 1 0] [1] [0 0 0] X + [1] [0 0 0] [1] = top#(active(X)) 2nd(mark(X)) = [1 0 0] [1] [0 0 0] X + [0] [0 0 0] [0] >= [1 0 0] [1] [0 0 0] X + [0] [0 0 0] [0] = mark(2nd(X)) 2nd(ok(X)) = [1 0 0] [0] [1 1 0] X + [0] [0 0 0] [0] >= [1 0 0] [0] [1 1 0] X + [0] [0 0 0] [0] = ok(2nd(X)) active(2nd(X)) = [1 1 0] [1] [0 1 0] X + [0] [0 0 0] [0] >= [1 1 0] [1] [0 1 0] X + [0] [0 0 0] [0] = 2nd(active(X)) active(2nd(cons(X,X1))) = [1 1 0] [1 0 0] [1] [0 1 0] X + [1 0 0] X1 + [0] [0 0 0] [0 0 0] [0] >= [1 0 0] [1 0 0] [1] [0 0 0] X + [0 0 0] X1 + [0] [0 0 0] [0 0 0] [0] = mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) = [1 1 0] [1 1 0] [1 0 0] [1] [0 1 0] X + [0 1 0] Y + [1 0 0] Z + [0] [0 0 0] [0 0 0] [0 0 0] [0] >= [1 0 0] [1] [0 0 0] Y + [0] [0 0 0] [0] = mark(Y) active(cons(X1,X2)) = [1 1 0] [1 0 0] [1] [0 1 0] X1 + [1 0 0] X2 + [0] [0 0 0] [0 0 0] [0] >= [1 1 0] [0 0 0] [1] [0 1 0] X1 + [1 0 0] X2 + [0] [0 0 0] [0 0 0] [0] = cons(active(X1),X2) active(cons1(X1,X2)) = [1 1 0] [1 1 0] [1] [0 1 0] X1 + [0 1 0] X2 + [0] [0 0 0] [0 0 0] [0] >= [1 0 0] [1 1 0] [1] [0 1 0] X1 + [0 1 0] X2 + [0] [0 0 0] [0 0 0] [0] = cons1(X1,active(X2)) active(cons1(X1,X2)) = [1 1 0] [1 1 0] [1] [0 1 0] X1 + [0 1 0] X2 + [0] [0 0 0] [0 0 0] [0] >= [1 1 0] [1 0 0] [1] [0 1 0] X1 + [0 1 0] X2 + [0] [0 0 0] [0 0 0] [0] = cons1(active(X1),X2) active(from(X)) = [1 1 0] [1] [0 1 0] X + [0] [0 0 0] [0] >= [1 1 0] [1] [0 1 0] X + [0] [0 0 0] [0] = from(active(X)) active(from(X)) = [1 1 0] [1] [0 1 0] X + [0] [0 0 0] [0] >= [1 0 0] [1] [0 0 0] X + [0] [0 0 0] [0] = mark(cons(X,from(s(X)))) active(s(X)) = [1 1 0] [1] [0 1 0] X + [0] [0 0 0] [0] >= [1 1 0] [1] [0 1 0] X + [0] [0 0 0] [0] = s(active(X)) cons(mark(X1),X2) = [1 0 0] [0 0 0] [1] [0 0 0] X1 + [1 0 0] X2 + [0] [0 0 0] [0 0 0] [0] >= [1 0 0] [1] [0 0 0] X1 + [0] [0 0 0] [0] = mark(cons(X1,X2)) cons(ok(X1),ok(X2)) = [1 0 0] [0 0 0] [0] [1 1 0] X1 + [1 0 0] X2 + [0] [0 0 0] [0 0 0] [0] >= [1 0 0] [0 0 0] [0] [1 1 0] X1 + [1 0 0] X2 + [0] [0 0 0] [0 0 0] [0] = ok(cons(X1,X2)) cons1(X1,mark(X2)) = [1 0 0] [1 0 0] [1] [0 1 0] X1 + [0 0 0] X2 + [0] [0 0 0] [0 0 0] [0] >= [1 0 0] [1 0 0] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 0] [0 0 0] [0] = mark(cons1(X1,X2)) cons1(mark(X1),X2) = [1 0 0] [1 0 0] [1] [0 0 0] X1 + [0 1 0] X2 + [0] [0 0 0] [0 0 0] [0] >= [1 0 0] [1 0 0] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 0] [0 0 0] [0] = mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) = [1 0 0] [1 0 0] [0] [1 1 0] X1 + [1 1 0] X2 + [0] [0 0 0] [0 0 0] [0] >= [1 0 0] [1 0 0] [0] [1 1 0] X1 + [1 1 0] X2 + [0] [0 0 0] [0 0 0] [0] = ok(cons1(X1,X2)) from(mark(X)) = [1 0 0] [1] [0 0 0] X + [0] [0 0 0] [0] >= [1 0 0] [1] [0 0 0] X + [0] [0 0 0] [0] = mark(from(X)) from(ok(X)) = [1 0 0] [0] [1 1 0] X + [0] [0 0 0] [0] >= [1 0 0] [0] [1 1 0] X + [0] [0 0 0] [0] = ok(from(X)) proper(2nd(X)) = [0] [0] [0] >= [0] [0] [0] = 2nd(proper(X)) proper(cons(X1,X2)) = [0] [0] [0] >= [0] [0] [0] = cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) = [0] [0] [0] >= [0] [0] [0] = cons1(proper(X1),proper(X2)) proper(from(X)) = [0] [0] [0] >= [0] [0] [0] = from(proper(X)) proper(s(X)) = [0] [0] [0] >= [0] [0] [0] = s(proper(X)) s(mark(X)) = [1 0 0] [1] [0 0 0] X + [0] [0 0 0] [0] >= [1 0 0] [1] [0 0 0] X + [0] [0 0 0] [0] = mark(s(X)) s(ok(X)) = [1 0 0] [0] [1 1 0] X + [0] [0 0 0] [0] >= [1 0 0] [0] [1 1 0] X + [0] [0 0 0] [0] = ok(s(X)) *** Step 5.b:1.b:10: MI WORST_CASE(?,O(n^3)) + Considered Problem: - Strict DPs: cons#(mark(X1),X2) -> c_12(cons#(X1,X2)) cons1#(X1,mark(X2)) -> c_14(cons1#(X1,X2)) from#(mark(X)) -> c_17(from#(X)) - Weak DPs: 2nd#(mark(X)) -> c_1(2nd#(X)) 2nd#(ok(X)) -> c_2(2nd#(X)) active#(2nd(X)) -> 2nd#(active(X)) active#(2nd(X)) -> active#(X) active#(2nd(cons(X,X1))) -> c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) active#(cons(X1,X2)) -> active#(X1) active#(cons(X1,X2)) -> cons#(active(X1),X2) active#(cons1(X1,X2)) -> active#(X1) active#(cons1(X1,X2)) -> active#(X2) active#(cons1(X1,X2)) -> cons1#(X1,active(X2)) active#(cons1(X1,X2)) -> cons1#(active(X1),X2) active#(from(X)) -> active#(X) active#(from(X)) -> from#(active(X)) active#(from(X)) -> c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) -> active#(X) active#(s(X)) -> s#(active(X)) cons#(ok(X1),ok(X2)) -> c_13(cons#(X1,X2)) cons1#(mark(X1),X2) -> c_15(cons1#(X1,X2)) cons1#(ok(X1),ok(X2)) -> c_16(cons1#(X1,X2)) from#(ok(X)) -> c_18(from#(X)) proper#(2nd(X)) -> 2nd#(proper(X)) proper#(2nd(X)) -> proper#(X) proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) proper#(cons(X1,X2)) -> proper#(X1) proper#(cons(X1,X2)) -> proper#(X2) proper#(cons1(X1,X2)) -> cons1#(proper(X1),proper(X2)) proper#(cons1(X1,X2)) -> proper#(X1) proper#(cons1(X1,X2)) -> proper#(X2) proper#(from(X)) -> from#(proper(X)) proper#(from(X)) -> proper#(X) proper#(s(X)) -> proper#(X) proper#(s(X)) -> s#(proper(X)) s#(mark(X)) -> c_24(s#(X)) s#(ok(X)) -> c_25(s#(X)) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/2,c_4/2,c_5/0,c_6/2,c_7/2,c_8/2,c_9/2,c_10/3,c_11/2,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/2,c_20/3,c_21/3,c_22/2,c_23/2,c_24/1,c_25/1,c_26/2,c_27/2} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: MI {miKind = Automaton Nothing, miDimension = 3, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules} + Details: We apply a matrix interpretation of kind Automaton Nothing: The following argument positions are considered usable: uargs(c_1) = {1}, uargs(c_2) = {1}, uargs(c_4) = {1,2}, uargs(c_10) = {1,2,3}, uargs(c_12) = {1}, uargs(c_13) = {1}, uargs(c_14) = {1}, uargs(c_15) = {1}, uargs(c_16) = {1}, uargs(c_17) = {1}, uargs(c_18) = {1}, uargs(c_24) = {1}, uargs(c_25) = {1} Following symbols are considered usable: {2nd,active,cons,cons1,from,proper,s,2nd#,active#,cons#,cons1#,from#,proper#,s#,top#} TcT has computed the following interpretation: p(2nd) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 1] [0] p(active) = [0 0 1] [0] [1 1 0] x_1 + [1] [1 0 0] [0] p(cons) = [1 0 1] [0 1 0] [0] [0 1 0] x_1 + [0 0 0] x_2 + [0] [1 0 1] [0 1 0] [0] p(cons1) = [1 0 1] [1 0 1] [0] [0 1 0] x_1 + [0 1 0] x_2 + [0] [1 0 1] [1 0 1] [0] p(from) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 1] [0] p(mark) = [0 0 0] [0] [0 1 0] x_1 + [1] [0 0 0] [0] p(ok) = [0 1 1] [1] [0 1 0] x_1 + [1] [1 0 0] [0] p(proper) = [0] [0] [0] p(s) = [1 0 1] [0] [0 1 0] x_1 + [0] [1 0 1] [0] p(top) = [0] [0] [0] p(2nd#) = [0] [1] [0] p(active#) = [0 1 1] [1] [0 0 0] x_1 + [1] [1 0 0] [1] p(cons#) = [0 1 0] [0] [0 0 0] x_1 + [1] [0 0 0] [0] p(cons1#) = [0 1 0] [0] [0 0 0] x_1 + [1] [1 0 0] [0] p(from#) = [0] [1] [0] p(proper#) = [0] [1] [0] p(s#) = [0 0 0] [0] [0 0 0] x_1 + [0] [0 0 1] [0] p(top#) = [1 0 0] [0] [1 0 0] x_1 + [1] [1 0 1] [0] p(c_1) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_2) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 0] [0] p(c_3) = [0] [0] [0] p(c_4) = [1 0 0] [1 0 0] [1] [0 0 0] x_1 + [0 1 0] x_2 + [0] [0 0 0] [0 0 0] [1] p(c_5) = [0] [0] [0] p(c_6) = [0] [0] [0] p(c_7) = [0] [0] [0] p(c_8) = [0] [0] [0] p(c_9) = [0] [0] [0] p(c_10) = [1 1 0] [1 0 0] [1 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0 0 0] x_3 + [0] [0 1 0] [0 0 0] [0 0 0] [0] p(c_11) = [0] [0] [0] p(c_12) = [1 0 0] [0] [0 0 0] x_1 + [1] [0 0 0] [0] p(c_13) = [1 0 0] [1] [0 0 0] x_1 + [1] [0 0 0] [0] p(c_14) = [1 0 0] [0] [0 0 0] x_1 + [1] [0 0 1] [0] p(c_15) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_16) = [1 1 0] [0] [0 0 0] x_1 + [0] [1 0 0] [0] p(c_17) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 0] [0] p(c_18) = [1 0 0] [0] [0 0 0] x_1 + [1] [0 0 0] [0] p(c_19) = [0] [0] [0] p(c_20) = [0] [0] [0] p(c_21) = [0] [0] [0] p(c_22) = [0] [0] [0] p(c_23) = [0] [0] [0] p(c_24) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_25) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_26) = [0] [0] [0] p(c_27) = [0] [0] [0] Following rules are strictly oriented: cons#(mark(X1),X2) = [0 1 0] [1] [0 0 0] X1 + [1] [0 0 0] [0] > [0 1 0] [0] [0 0 0] X1 + [1] [0 0 0] [0] = c_12(cons#(X1,X2)) Following rules are (at-least) weakly oriented: 2nd#(mark(X)) = [0] [1] [0] >= [0] [0] [0] = c_1(2nd#(X)) 2nd#(ok(X)) = [0] [1] [0] >= [0] [1] [0] = c_2(2nd#(X)) active#(2nd(X)) = [0 1 1] [1] [0 0 0] X + [1] [1 0 0] [1] >= [0] [1] [0] = 2nd#(active(X)) active#(2nd(X)) = [0 1 1] [1] [0 0 0] X + [1] [1 0 0] [1] >= [0 1 1] [1] [0 0 0] X + [1] [1 0 0] [1] = active#(X) active#(2nd(cons(X,X1))) = [1 1 1] [0 1 0] [1] [0 0 0] X + [0 0 0] X1 + [1] [1 0 1] [0 1 0] [1] >= [0 1 0] [1] [0 0 0] X + [1] [0 0 0] [1] = c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) active#(cons(X1,X2)) = [1 1 1] [0 1 0] [1] [0 0 0] X1 + [0 0 0] X2 + [1] [1 0 1] [0 1 0] [1] >= [0 1 1] [1] [0 0 0] X1 + [1] [1 0 0] [1] = active#(X1) active#(cons(X1,X2)) = [1 1 1] [0 1 0] [1] [0 0 0] X1 + [0 0 0] X2 + [1] [1 0 1] [0 1 0] [1] >= [1 1 0] [1] [0 0 0] X1 + [1] [0 0 0] [0] = cons#(active(X1),X2) active#(cons1(X1,X2)) = [1 1 1] [1 1 1] [1] [0 0 0] X1 + [0 0 0] X2 + [1] [1 0 1] [1 0 1] [1] >= [0 1 1] [1] [0 0 0] X1 + [1] [1 0 0] [1] = active#(X1) active#(cons1(X1,X2)) = [1 1 1] [1 1 1] [1] [0 0 0] X1 + [0 0 0] X2 + [1] [1 0 1] [1 0 1] [1] >= [0 1 1] [1] [0 0 0] X2 + [1] [1 0 0] [1] = active#(X2) active#(cons1(X1,X2)) = [1 1 1] [1 1 1] [1] [0 0 0] X1 + [0 0 0] X2 + [1] [1 0 1] [1 0 1] [1] >= [0 1 0] [0] [0 0 0] X1 + [1] [1 0 0] [0] = cons1#(X1,active(X2)) active#(cons1(X1,X2)) = [1 1 1] [1 1 1] [1] [0 0 0] X1 + [0 0 0] X2 + [1] [1 0 1] [1 0 1] [1] >= [1 1 0] [1] [0 0 0] X1 + [1] [0 0 1] [0] = cons1#(active(X1),X2) active#(from(X)) = [0 1 1] [1] [0 0 0] X + [1] [1 0 0] [1] >= [0 1 1] [1] [0 0 0] X + [1] [1 0 0] [1] = active#(X) active#(from(X)) = [0 1 1] [1] [0 0 0] X + [1] [1 0 0] [1] >= [0] [1] [0] = from#(active(X)) active#(from(X)) = [0 1 1] [1] [0 0 0] X + [1] [1 0 0] [1] >= [0 1 0] [1] [0 0 0] X + [0] [0 0 0] [1] = c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) = [1 1 1] [1] [0 0 0] X + [1] [1 0 1] [1] >= [0 1 1] [1] [0 0 0] X + [1] [1 0 0] [1] = active#(X) active#(s(X)) = [1 1 1] [1] [0 0 0] X + [1] [1 0 1] [1] >= [0 0 0] [0] [0 0 0] X + [0] [1 0 0] [0] = s#(active(X)) cons#(ok(X1),ok(X2)) = [0 1 0] [1] [0 0 0] X1 + [1] [0 0 0] [0] >= [0 1 0] [1] [0 0 0] X1 + [1] [0 0 0] [0] = c_13(cons#(X1,X2)) cons1#(X1,mark(X2)) = [0 1 0] [0] [0 0 0] X1 + [1] [1 0 0] [0] >= [0 1 0] [0] [0 0 0] X1 + [1] [1 0 0] [0] = c_14(cons1#(X1,X2)) cons1#(mark(X1),X2) = [0 1 0] [1] [0 0 0] X1 + [1] [0 0 0] [0] >= [0 1 0] [0] [0 0 0] X1 + [0] [0 0 0] [0] = c_15(cons1#(X1,X2)) cons1#(ok(X1),ok(X2)) = [0 1 0] [1] [0 0 0] X1 + [1] [0 1 1] [1] >= [0 1 0] [1] [0 0 0] X1 + [0] [0 1 0] [0] = c_16(cons1#(X1,X2)) from#(mark(X)) = [0] [1] [0] >= [0] [1] [0] = c_17(from#(X)) from#(ok(X)) = [0] [1] [0] >= [0] [1] [0] = c_18(from#(X)) proper#(2nd(X)) = [0] [1] [0] >= [0] [1] [0] = 2nd#(proper(X)) proper#(2nd(X)) = [0] [1] [0] >= [0] [1] [0] = proper#(X) proper#(cons(X1,X2)) = [0] [1] [0] >= [0] [1] [0] = cons#(proper(X1),proper(X2)) proper#(cons(X1,X2)) = [0] [1] [0] >= [0] [1] [0] = proper#(X1) proper#(cons(X1,X2)) = [0] [1] [0] >= [0] [1] [0] = proper#(X2) proper#(cons1(X1,X2)) = [0] [1] [0] >= [0] [1] [0] = cons1#(proper(X1),proper(X2)) proper#(cons1(X1,X2)) = [0] [1] [0] >= [0] [1] [0] = proper#(X1) proper#(cons1(X1,X2)) = [0] [1] [0] >= [0] [1] [0] = proper#(X2) proper#(from(X)) = [0] [1] [0] >= [0] [1] [0] = from#(proper(X)) proper#(from(X)) = [0] [1] [0] >= [0] [1] [0] = proper#(X) proper#(s(X)) = [0] [1] [0] >= [0] [1] [0] = proper#(X) proper#(s(X)) = [0] [1] [0] >= [0] [0] [0] = s#(proper(X)) s#(mark(X)) = [0] [0] [0] >= [0] [0] [0] = c_24(s#(X)) s#(ok(X)) = [0 0 0] [0] [0 0 0] X + [0] [1 0 0] [0] >= [0] [0] [0] = c_25(s#(X)) top#(mark(X)) = [0] [1] [0] >= [0] [1] [0] = proper#(X) top#(mark(X)) = [0] [1] [0] >= [0] [1] [0] = top#(proper(X)) top#(ok(X)) = [0 1 1] [1] [0 1 1] X + [2] [1 1 1] [1] >= [0 1 1] [1] [0 0 0] X + [1] [1 0 0] [1] = active#(X) top#(ok(X)) = [0 1 1] [1] [0 1 1] X + [2] [1 1 1] [1] >= [0 0 1] [0] [0 0 1] X + [1] [1 0 1] [0] = top#(active(X)) 2nd(mark(X)) = [0 0 0] [0] [0 1 0] X + [1] [0 0 0] [0] >= [0 0 0] [0] [0 1 0] X + [1] [0 0 0] [0] = mark(2nd(X)) 2nd(ok(X)) = [0 1 1] [1] [0 1 0] X + [1] [1 0 0] [0] >= [0 1 1] [1] [0 1 0] X + [1] [1 0 0] [0] = ok(2nd(X)) active(2nd(X)) = [0 0 1] [0] [1 1 0] X + [1] [1 0 0] [0] >= [0 0 1] [0] [1 1 0] X + [1] [1 0 0] [0] = 2nd(active(X)) active(2nd(cons(X,X1))) = [1 0 1] [0 1 0] [0] [1 1 1] X + [0 1 0] X1 + [1] [1 0 1] [0 1 0] [0] >= [0 0 0] [0 0 0] [0] [0 1 0] X + [0 1 0] X1 + [1] [0 0 0] [0 0 0] [0] = mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) = [1 0 1] [2 0 2] [0 2 0] [0] [1 1 1] X + [2 1 2] Y + [0 2 0] Z + [1] [1 0 1] [2 0 2] [0 2 0] [0] >= [0 0 0] [0] [0 1 0] Y + [1] [0 0 0] [0] = mark(Y) active(cons(X1,X2)) = [1 0 1] [0 1 0] [0] [1 1 1] X1 + [0 1 0] X2 + [1] [1 0 1] [0 1 0] [0] >= [1 0 1] [0 1 0] [0] [1 1 0] X1 + [0 0 0] X2 + [1] [1 0 1] [0 1 0] [0] = cons(active(X1),X2) active(cons1(X1,X2)) = [1 0 1] [1 0 1] [0] [1 1 1] X1 + [1 1 1] X2 + [1] [1 0 1] [1 0 1] [0] >= [1 0 1] [1 0 1] [0] [0 1 0] X1 + [1 1 0] X2 + [1] [1 0 1] [1 0 1] [0] = cons1(X1,active(X2)) active(cons1(X1,X2)) = [1 0 1] [1 0 1] [0] [1 1 1] X1 + [1 1 1] X2 + [1] [1 0 1] [1 0 1] [0] >= [1 0 1] [1 0 1] [0] [1 1 0] X1 + [0 1 0] X2 + [1] [1 0 1] [1 0 1] [0] = cons1(active(X1),X2) active(from(X)) = [0 0 1] [0] [1 1 0] X + [1] [1 0 0] [0] >= [0 0 1] [0] [1 1 0] X + [1] [1 0 0] [0] = from(active(X)) active(from(X)) = [0 0 1] [0] [1 1 0] X + [1] [1 0 0] [0] >= [0 0 0] [0] [0 1 0] X + [1] [0 0 0] [0] = mark(cons(X,from(s(X)))) active(s(X)) = [1 0 1] [0] [1 1 1] X + [1] [1 0 1] [0] >= [1 0 1] [0] [1 1 0] X + [1] [1 0 1] [0] = s(active(X)) cons(mark(X1),X2) = [0 0 0] [0 1 0] [0] [0 1 0] X1 + [0 0 0] X2 + [1] [0 0 0] [0 1 0] [0] >= [0 0 0] [0] [0 1 0] X1 + [1] [0 0 0] [0] = mark(cons(X1,X2)) cons(ok(X1),ok(X2)) = [1 1 1] [0 1 0] [2] [0 1 0] X1 + [0 0 0] X2 + [1] [1 1 1] [0 1 0] [2] >= [1 1 1] [0 1 0] [1] [0 1 0] X1 + [0 0 0] X2 + [1] [1 0 1] [0 1 0] [0] = ok(cons(X1,X2)) cons1(X1,mark(X2)) = [1 0 1] [0 0 0] [0] [0 1 0] X1 + [0 1 0] X2 + [1] [1 0 1] [0 0 0] [0] >= [0 0 0] [0 0 0] [0] [0 1 0] X1 + [0 1 0] X2 + [1] [0 0 0] [0 0 0] [0] = mark(cons1(X1,X2)) cons1(mark(X1),X2) = [0 0 0] [1 0 1] [0] [0 1 0] X1 + [0 1 0] X2 + [1] [0 0 0] [1 0 1] [0] >= [0 0 0] [0 0 0] [0] [0 1 0] X1 + [0 1 0] X2 + [1] [0 0 0] [0 0 0] [0] = mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) = [1 1 1] [1 1 1] [2] [0 1 0] X1 + [0 1 0] X2 + [2] [1 1 1] [1 1 1] [2] >= [1 1 1] [1 1 1] [1] [0 1 0] X1 + [0 1 0] X2 + [1] [1 0 1] [1 0 1] [0] = ok(cons1(X1,X2)) from(mark(X)) = [0 0 0] [0] [0 1 0] X + [1] [0 0 0] [0] >= [0 0 0] [0] [0 1 0] X + [1] [0 0 0] [0] = mark(from(X)) from(ok(X)) = [0 1 1] [1] [0 1 0] X + [1] [1 0 0] [0] >= [0 1 1] [1] [0 1 0] X + [1] [1 0 0] [0] = ok(from(X)) proper(2nd(X)) = [0] [0] [0] >= [0] [0] [0] = 2nd(proper(X)) proper(cons(X1,X2)) = [0] [0] [0] >= [0] [0] [0] = cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) = [0] [0] [0] >= [0] [0] [0] = cons1(proper(X1),proper(X2)) proper(from(X)) = [0] [0] [0] >= [0] [0] [0] = from(proper(X)) proper(s(X)) = [0] [0] [0] >= [0] [0] [0] = s(proper(X)) s(mark(X)) = [0 0 0] [0] [0 1 0] X + [1] [0 0 0] [0] >= [0 0 0] [0] [0 1 0] X + [1] [0 0 0] [0] = mark(s(X)) s(ok(X)) = [1 1 1] [1] [0 1 0] X + [1] [1 1 1] [1] >= [1 1 1] [1] [0 1 0] X + [1] [1 0 1] [0] = ok(s(X)) *** Step 5.b:1.b:11: MI WORST_CASE(?,O(n^3)) + Considered Problem: - Strict DPs: cons1#(X1,mark(X2)) -> c_14(cons1#(X1,X2)) from#(mark(X)) -> c_17(from#(X)) - Weak DPs: 2nd#(mark(X)) -> c_1(2nd#(X)) 2nd#(ok(X)) -> c_2(2nd#(X)) active#(2nd(X)) -> 2nd#(active(X)) active#(2nd(X)) -> active#(X) active#(2nd(cons(X,X1))) -> c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) active#(cons(X1,X2)) -> active#(X1) active#(cons(X1,X2)) -> cons#(active(X1),X2) active#(cons1(X1,X2)) -> active#(X1) active#(cons1(X1,X2)) -> active#(X2) active#(cons1(X1,X2)) -> cons1#(X1,active(X2)) active#(cons1(X1,X2)) -> cons1#(active(X1),X2) active#(from(X)) -> active#(X) active#(from(X)) -> from#(active(X)) active#(from(X)) -> c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) -> active#(X) active#(s(X)) -> s#(active(X)) cons#(mark(X1),X2) -> c_12(cons#(X1,X2)) cons#(ok(X1),ok(X2)) -> c_13(cons#(X1,X2)) cons1#(mark(X1),X2) -> c_15(cons1#(X1,X2)) cons1#(ok(X1),ok(X2)) -> c_16(cons1#(X1,X2)) from#(ok(X)) -> c_18(from#(X)) proper#(2nd(X)) -> 2nd#(proper(X)) proper#(2nd(X)) -> proper#(X) proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) proper#(cons(X1,X2)) -> proper#(X1) proper#(cons(X1,X2)) -> proper#(X2) proper#(cons1(X1,X2)) -> cons1#(proper(X1),proper(X2)) proper#(cons1(X1,X2)) -> proper#(X1) proper#(cons1(X1,X2)) -> proper#(X2) proper#(from(X)) -> from#(proper(X)) proper#(from(X)) -> proper#(X) proper#(s(X)) -> proper#(X) proper#(s(X)) -> s#(proper(X)) s#(mark(X)) -> c_24(s#(X)) s#(ok(X)) -> c_25(s#(X)) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/2,c_4/2,c_5/0,c_6/2,c_7/2,c_8/2,c_9/2,c_10/3,c_11/2,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/2,c_20/3,c_21/3,c_22/2,c_23/2,c_24/1,c_25/1,c_26/2,c_27/2} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: MI {miKind = Automaton Nothing, miDimension = 3, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules} + Details: We apply a matrix interpretation of kind Automaton Nothing: The following argument positions are considered usable: uargs(c_1) = {1}, uargs(c_2) = {1}, uargs(c_4) = {1,2}, uargs(c_10) = {1,2,3}, uargs(c_12) = {1}, uargs(c_13) = {1}, uargs(c_14) = {1}, uargs(c_15) = {1}, uargs(c_16) = {1}, uargs(c_17) = {1}, uargs(c_18) = {1}, uargs(c_24) = {1}, uargs(c_25) = {1} Following symbols are considered usable: {2nd,active,cons,cons1,from,proper,s,2nd#,active#,cons#,cons1#,from#,proper#,s#,top#} TcT has computed the following interpretation: p(2nd) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 1] [0] p(active) = [1 0 0] [0] [0 0 0] x_1 + [0] [1 0 1] [1] p(cons) = [1 1 0] [0 0 1] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0] [0 0 1] [0 1 0] [0] p(cons1) = [1 0 0] [1 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0] [0 0 1] [0 0 1] [0] p(from) = [1 1 0] [0] [0 1 0] x_1 + [0] [0 0 1] [0] p(mark) = [0 1 0] [0] [0 0 0] x_1 + [0] [0 0 1] [1] p(ok) = [1 1 1] [1] [0 1 0] x_1 + [0] [0 1 1] [0] p(proper) = [0] [0] [0] p(s) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 1] [0] p(top) = [0] [0] [0] p(2nd#) = [0 0 1] [0] [0 1 0] x_1 + [0] [1 0 0] [1] p(active#) = [1 0 1] [1] [0 0 0] x_1 + [1] [1 0 0] [1] p(cons#) = [0 0 0] [0 0 0] [0] [0 1 0] x_1 + [0 0 0] x_2 + [0] [1 1 0] [0 0 1] [1] p(cons1#) = [0 0 0] [0] [0 0 0] x_1 + [0] [1 0 0] [0] p(from#) = [0 0 1] [0] [0 0 0] x_1 + [1] [0 0 0] [0] p(proper#) = [0] [1] [1] p(s#) = [0 0 0] [0] [0 0 0] x_1 + [0] [1 1 0] [0] p(top#) = [1 0 0] [0] [0 0 0] x_1 + [1] [1 1 0] [1] p(c_1) = [1 0 0] [1] [0 0 0] x_1 + [0] [0 1 0] [1] p(c_2) = [1 1 0] [0] [0 1 0] x_1 + [0] [1 1 1] [1] p(c_3) = [0] [0] [0] p(c_4) = [1 0 0] [1 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [1] [0 0 0] [0 0 0] [1] p(c_5) = [0] [0] [0] p(c_6) = [0] [0] [0] p(c_7) = [0] [0] [0] p(c_8) = [0] [0] [0] p(c_9) = [0] [0] [0] p(c_10) = [1 0 0] [1 0 0] [1 0 1] [1] [0 0 0] x_1 + [0 0 0] x_2 + [0 0 0] x_3 + [1] [0 0 0] [0 1 0] [0 0 1] [0] p(c_11) = [0] [0] [0] p(c_12) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 1 0] [1] p(c_13) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 1 0] [0] p(c_14) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_15) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_16) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 1] [1] p(c_17) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 0] [0] p(c_18) = [1 0 0] [0] [0 0 0] x_1 + [1] [0 0 0] [0] p(c_19) = [0] [0] [0] p(c_20) = [0] [0] [0] p(c_21) = [0] [0] [0] p(c_22) = [0] [0] [0] p(c_23) = [0] [0] [0] p(c_24) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_25) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 1] [1] p(c_26) = [0] [0] [0] p(c_27) = [0] [0] [0] Following rules are strictly oriented: from#(mark(X)) = [0 0 1] [1] [0 0 0] X + [1] [0 0 0] [0] > [0 0 1] [0] [0 0 0] X + [1] [0 0 0] [0] = c_17(from#(X)) Following rules are (at-least) weakly oriented: 2nd#(mark(X)) = [0 0 1] [1] [0 0 0] X + [0] [0 1 0] [1] >= [0 0 1] [1] [0 0 0] X + [0] [0 1 0] [1] = c_1(2nd#(X)) 2nd#(ok(X)) = [0 1 1] [0] [0 1 0] X + [0] [1 1 1] [2] >= [0 1 1] [0] [0 1 0] X + [0] [1 1 1] [2] = c_2(2nd#(X)) active#(2nd(X)) = [1 0 1] [1] [0 0 0] X + [1] [1 0 0] [1] >= [1 0 1] [1] [0 0 0] X + [0] [1 0 0] [1] = 2nd#(active(X)) active#(2nd(X)) = [1 0 1] [1] [0 0 0] X + [1] [1 0 0] [1] >= [1 0 1] [1] [0 0 0] X + [1] [1 0 0] [1] = active#(X) active#(2nd(cons(X,X1))) = [1 1 1] [0 1 1] [1] [0 0 0] X + [0 0 0] X1 + [1] [1 1 0] [0 0 1] [1] >= [0 0 1] [0 0 1] [0] [0 0 0] X + [0 0 0] X1 + [1] [0 0 0] [0 0 0] [1] = c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) active#(cons(X1,X2)) = [1 1 1] [0 1 1] [1] [0 0 0] X1 + [0 0 0] X2 + [1] [1 1 0] [0 0 1] [1] >= [1 0 1] [1] [0 0 0] X1 + [1] [1 0 0] [1] = active#(X1) active#(cons(X1,X2)) = [1 1 1] [0 1 1] [1] [0 0 0] X1 + [0 0 0] X2 + [1] [1 1 0] [0 0 1] [1] >= [0 0 0] [0 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [1 0 0] [0 0 1] [1] = cons#(active(X1),X2) active#(cons1(X1,X2)) = [1 0 1] [1 0 1] [1] [0 0 0] X1 + [0 0 0] X2 + [1] [1 0 0] [1 0 0] [1] >= [1 0 1] [1] [0 0 0] X1 + [1] [1 0 0] [1] = active#(X1) active#(cons1(X1,X2)) = [1 0 1] [1 0 1] [1] [0 0 0] X1 + [0 0 0] X2 + [1] [1 0 0] [1 0 0] [1] >= [1 0 1] [1] [0 0 0] X2 + [1] [1 0 0] [1] = active#(X2) active#(cons1(X1,X2)) = [1 0 1] [1 0 1] [1] [0 0 0] X1 + [0 0 0] X2 + [1] [1 0 0] [1 0 0] [1] >= [0 0 0] [0] [0 0 0] X1 + [0] [1 0 0] [0] = cons1#(X1,active(X2)) active#(cons1(X1,X2)) = [1 0 1] [1 0 1] [1] [0 0 0] X1 + [0 0 0] X2 + [1] [1 0 0] [1 0 0] [1] >= [0 0 0] [0] [0 0 0] X1 + [0] [1 0 0] [0] = cons1#(active(X1),X2) active#(from(X)) = [1 1 1] [1] [0 0 0] X + [1] [1 1 0] [1] >= [1 0 1] [1] [0 0 0] X + [1] [1 0 0] [1] = active#(X) active#(from(X)) = [1 1 1] [1] [0 0 0] X + [1] [1 1 0] [1] >= [1 0 1] [1] [0 0 0] X + [1] [0 0 0] [0] = from#(active(X)) active#(from(X)) = [1 1 1] [1] [0 0 0] X + [1] [1 1 0] [1] >= [1 1 1] [1] [0 0 0] X + [1] [1 1 0] [1] = c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) = [1 0 1] [1] [0 0 0] X + [1] [1 0 0] [1] >= [1 0 1] [1] [0 0 0] X + [1] [1 0 0] [1] = active#(X) active#(s(X)) = [1 0 1] [1] [0 0 0] X + [1] [1 0 0] [1] >= [0 0 0] [0] [0 0 0] X + [0] [1 0 0] [0] = s#(active(X)) cons#(mark(X1),X2) = [0 0 0] [0 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 1 0] [0 0 1] [1] >= [0 0 0] [0] [0 0 0] X1 + [0] [0 1 0] [1] = c_12(cons#(X1,X2)) cons#(ok(X1),ok(X2)) = [0 0 0] [0 0 0] [0] [0 1 0] X1 + [0 0 0] X2 + [0] [1 2 1] [0 1 1] [2] >= [0 0 0] [0] [0 1 0] X1 + [0] [0 1 0] [0] = c_13(cons#(X1,X2)) cons1#(X1,mark(X2)) = [0 0 0] [0] [0 0 0] X1 + [0] [1 0 0] [0] >= [0] [0] [0] = c_14(cons1#(X1,X2)) cons1#(mark(X1),X2) = [0 0 0] [0] [0 0 0] X1 + [0] [0 1 0] [0] >= [0] [0] [0] = c_15(cons1#(X1,X2)) cons1#(ok(X1),ok(X2)) = [0 0 0] [0] [0 0 0] X1 + [0] [1 1 1] [1] >= [0 0 0] [0] [0 0 0] X1 + [0] [1 0 0] [1] = c_16(cons1#(X1,X2)) from#(ok(X)) = [0 1 1] [0] [0 0 0] X + [1] [0 0 0] [0] >= [0 0 1] [0] [0 0 0] X + [1] [0 0 0] [0] = c_18(from#(X)) proper#(2nd(X)) = [0] [1] [1] >= [0] [0] [1] = 2nd#(proper(X)) proper#(2nd(X)) = [0] [1] [1] >= [0] [1] [1] = proper#(X) proper#(cons(X1,X2)) = [0] [1] [1] >= [0] [0] [1] = cons#(proper(X1),proper(X2)) proper#(cons(X1,X2)) = [0] [1] [1] >= [0] [1] [1] = proper#(X1) proper#(cons(X1,X2)) = [0] [1] [1] >= [0] [1] [1] = proper#(X2) proper#(cons1(X1,X2)) = [0] [1] [1] >= [0] [0] [0] = cons1#(proper(X1),proper(X2)) proper#(cons1(X1,X2)) = [0] [1] [1] >= [0] [1] [1] = proper#(X1) proper#(cons1(X1,X2)) = [0] [1] [1] >= [0] [1] [1] = proper#(X2) proper#(from(X)) = [0] [1] [1] >= [0] [1] [0] = from#(proper(X)) proper#(from(X)) = [0] [1] [1] >= [0] [1] [1] = proper#(X) proper#(s(X)) = [0] [1] [1] >= [0] [1] [1] = proper#(X) proper#(s(X)) = [0] [1] [1] >= [0] [0] [0] = s#(proper(X)) s#(mark(X)) = [0 0 0] [0] [0 0 0] X + [0] [0 1 0] [0] >= [0] [0] [0] = c_24(s#(X)) s#(ok(X)) = [0 0 0] [0] [0 0 0] X + [0] [1 2 1] [1] >= [0 0 0] [0] [0 0 0] X + [0] [1 1 0] [1] = c_25(s#(X)) top#(mark(X)) = [0 1 0] [0] [0 0 0] X + [1] [0 1 0] [1] >= [0] [1] [1] = proper#(X) top#(mark(X)) = [0 1 0] [0] [0 0 0] X + [1] [0 1 0] [1] >= [0] [1] [1] = top#(proper(X)) top#(ok(X)) = [1 1 1] [1] [0 0 0] X + [1] [1 2 1] [2] >= [1 0 1] [1] [0 0 0] X + [1] [1 0 0] [1] = active#(X) top#(ok(X)) = [1 1 1] [1] [0 0 0] X + [1] [1 2 1] [2] >= [1 0 0] [0] [0 0 0] X + [1] [1 0 0] [1] = top#(active(X)) 2nd(mark(X)) = [0 1 0] [0] [0 0 0] X + [0] [0 0 1] [1] >= [0 0 0] [0] [0 0 0] X + [0] [0 0 1] [1] = mark(2nd(X)) 2nd(ok(X)) = [1 1 1] [1] [0 0 0] X + [0] [0 1 1] [0] >= [1 0 1] [1] [0 0 0] X + [0] [0 0 1] [0] = ok(2nd(X)) active(2nd(X)) = [1 0 0] [0] [0 0 0] X + [0] [1 0 1] [1] >= [1 0 0] [0] [0 0 0] X + [0] [1 0 1] [1] = 2nd(active(X)) active(2nd(cons(X,X1))) = [1 1 0] [0 0 1] [0] [0 0 0] X + [0 0 0] X1 + [0] [1 1 1] [0 1 1] [1] >= [0 0 0] [0 0 0] [0] [0 0 0] X + [0 0 0] X1 + [0] [0 0 1] [0 0 1] [1] = mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) = [1 0 0] [1 1 0] [0 0 1] [0] [0 0 0] X + [0 0 0] Y + [0 0 0] Z + [0] [1 0 1] [1 1 1] [0 1 1] [1] >= [0 1 0] [0] [0 0 0] Y + [0] [0 0 1] [1] = mark(Y) active(cons(X1,X2)) = [1 1 0] [0 0 1] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [1 1 1] [0 1 1] [1] >= [1 0 0] [0 0 1] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [1 0 1] [0 1 0] [1] = cons(active(X1),X2) active(cons1(X1,X2)) = [1 0 0] [1 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [1 0 1] [1 0 1] [1] >= [1 0 0] [1 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [1 0 1] [1] = cons1(X1,active(X2)) active(cons1(X1,X2)) = [1 0 0] [1 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [1 0 1] [1 0 1] [1] >= [1 0 0] [1 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [1 0 1] [0 0 1] [1] = cons1(active(X1),X2) active(from(X)) = [1 1 0] [0] [0 0 0] X + [0] [1 1 1] [1] >= [1 0 0] [0] [0 0 0] X + [0] [1 0 1] [1] = from(active(X)) active(from(X)) = [1 1 0] [0] [0 0 0] X + [0] [1 1 1] [1] >= [0 0 0] [0] [0 0 0] X + [0] [0 1 1] [1] = mark(cons(X,from(s(X)))) active(s(X)) = [1 0 0] [0] [0 0 0] X + [0] [1 0 1] [1] >= [1 0 0] [0] [0 0 0] X + [0] [1 0 1] [1] = s(active(X)) cons(mark(X1),X2) = [0 1 0] [0 0 1] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 1 0] [1] >= [0 0 0] [0 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 1 0] [1] = mark(cons(X1,X2)) cons(ok(X1),ok(X2)) = [1 2 1] [0 1 1] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [0 1 1] [0 1 0] [0] >= [1 1 1] [0 1 1] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 1 0] [0] = ok(cons(X1,X2)) cons1(X1,mark(X2)) = [1 0 0] [0 1 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 0 1] [1] >= [0 0 0] [0 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 0 1] [1] = mark(cons1(X1,X2)) cons1(mark(X1),X2) = [0 1 0] [1 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 0 1] [1] >= [0 0 0] [0 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 0 1] [1] = mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) = [1 1 1] [1 1 1] [2] [0 0 0] X1 + [0 0 0] X2 + [0] [0 1 1] [0 1 1] [0] >= [1 0 1] [1 0 1] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 0 1] [0] = ok(cons1(X1,X2)) from(mark(X)) = [0 1 0] [0] [0 0 0] X + [0] [0 0 1] [1] >= [0 1 0] [0] [0 0 0] X + [0] [0 0 1] [1] = mark(from(X)) from(ok(X)) = [1 2 1] [1] [0 1 0] X + [0] [0 1 1] [0] >= [1 2 1] [1] [0 1 0] X + [0] [0 1 1] [0] = ok(from(X)) proper(2nd(X)) = [0] [0] [0] >= [0] [0] [0] = 2nd(proper(X)) proper(cons(X1,X2)) = [0] [0] [0] >= [0] [0] [0] = cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) = [0] [0] [0] >= [0] [0] [0] = cons1(proper(X1),proper(X2)) proper(from(X)) = [0] [0] [0] >= [0] [0] [0] = from(proper(X)) proper(s(X)) = [0] [0] [0] >= [0] [0] [0] = s(proper(X)) s(mark(X)) = [0 1 0] [0] [0 0 0] X + [0] [0 0 1] [1] >= [0 1 0] [0] [0 0 0] X + [0] [0 0 1] [1] = mark(s(X)) s(ok(X)) = [1 1 1] [1] [0 1 0] X + [0] [0 1 1] [0] >= [1 1 1] [1] [0 1 0] X + [0] [0 1 1] [0] = ok(s(X)) *** Step 5.b:1.b:12: MI WORST_CASE(?,O(n^3)) + Considered Problem: - Strict DPs: cons1#(X1,mark(X2)) -> c_14(cons1#(X1,X2)) - Weak DPs: 2nd#(mark(X)) -> c_1(2nd#(X)) 2nd#(ok(X)) -> c_2(2nd#(X)) active#(2nd(X)) -> 2nd#(active(X)) active#(2nd(X)) -> active#(X) active#(2nd(cons(X,X1))) -> c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) active#(cons(X1,X2)) -> active#(X1) active#(cons(X1,X2)) -> cons#(active(X1),X2) active#(cons1(X1,X2)) -> active#(X1) active#(cons1(X1,X2)) -> active#(X2) active#(cons1(X1,X2)) -> cons1#(X1,active(X2)) active#(cons1(X1,X2)) -> cons1#(active(X1),X2) active#(from(X)) -> active#(X) active#(from(X)) -> from#(active(X)) active#(from(X)) -> c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) -> active#(X) active#(s(X)) -> s#(active(X)) cons#(mark(X1),X2) -> c_12(cons#(X1,X2)) cons#(ok(X1),ok(X2)) -> c_13(cons#(X1,X2)) cons1#(mark(X1),X2) -> c_15(cons1#(X1,X2)) cons1#(ok(X1),ok(X2)) -> c_16(cons1#(X1,X2)) from#(mark(X)) -> c_17(from#(X)) from#(ok(X)) -> c_18(from#(X)) proper#(2nd(X)) -> 2nd#(proper(X)) proper#(2nd(X)) -> proper#(X) proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) proper#(cons(X1,X2)) -> proper#(X1) proper#(cons(X1,X2)) -> proper#(X2) proper#(cons1(X1,X2)) -> cons1#(proper(X1),proper(X2)) proper#(cons1(X1,X2)) -> proper#(X1) proper#(cons1(X1,X2)) -> proper#(X2) proper#(from(X)) -> from#(proper(X)) proper#(from(X)) -> proper#(X) proper#(s(X)) -> proper#(X) proper#(s(X)) -> s#(proper(X)) s#(mark(X)) -> c_24(s#(X)) s#(ok(X)) -> c_25(s#(X)) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/2,c_4/2,c_5/0,c_6/2,c_7/2,c_8/2,c_9/2,c_10/3,c_11/2,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/2,c_20/3,c_21/3,c_22/2,c_23/2,c_24/1,c_25/1,c_26/2,c_27/2} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: MI {miKind = Automaton Nothing, miDimension = 3, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules} + Details: We apply a matrix interpretation of kind Automaton Nothing: The following argument positions are considered usable: uargs(c_1) = {1}, uargs(c_2) = {1}, uargs(c_4) = {1,2}, uargs(c_10) = {1,2,3}, uargs(c_12) = {1}, uargs(c_13) = {1}, uargs(c_14) = {1}, uargs(c_15) = {1}, uargs(c_16) = {1}, uargs(c_17) = {1}, uargs(c_18) = {1}, uargs(c_24) = {1}, uargs(c_25) = {1} Following symbols are considered usable: {2nd,active,cons,cons1,from,proper,s,2nd#,active#,cons#,cons1#,from#,proper#,s#,top#} TcT has computed the following interpretation: p(2nd) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 1 1] [0] p(active) = [1 0 1] [1] [0 1 0] x_1 + [0] [0 0 1] [0] p(cons) = [1 0 0] [0 0 0] [0] [0 0 0] x_1 + [1 0 0] x_2 + [0] [0 0 1] [1 1 0] [0] p(cons1) = [1 0 0] [1 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0] [0 0 1] [0 0 1] [0] p(from) = [1 0 0] [0] [0 0 1] x_1 + [0] [0 0 1] [0] p(mark) = [1 0 0] [1] [0 0 0] x_1 + [0] [0 0 0] [0] p(ok) = [1 0 0] [0] [0 1 0] x_1 + [0] [1 0 1] [0] p(proper) = [0] [0] [0] p(s) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 1 1] [0] p(top) = [0] [0] [0] p(2nd#) = [0 0 0] [0] [1 0 0] x_1 + [0] [0 0 0] [1] p(active#) = [1 0 1] [1] [1 0 1] x_1 + [1] [0 0 0] [1] p(cons#) = [0] [0] [1] p(cons1#) = [1 0 0] [0] [0 0 0] x_2 + [1] [0 0 0] [0] p(from#) = [0 0 0] [0] [1 0 0] x_1 + [0] [0 0 0] [0] p(proper#) = [0] [1] [1] p(s#) = [1 0 0] [0] [0 0 0] x_1 + [1] [0 0 0] [1] p(top#) = [0 1 1] [1] [0 0 1] x_1 + [1] [0 0 0] [1] p(c_1) = [1 0 0] [0] [0 1 0] x_1 + [1] [0 0 0] [0] p(c_2) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_3) = [0] [0] [0] p(c_4) = [1 1 0] [1 0 0] [0] [0 0 1] x_1 + [0 0 0] x_2 + [0] [0 0 0] [0 0 0] [0] p(c_5) = [0] [0] [0] p(c_6) = [0] [0] [0] p(c_7) = [0] [0] [0] p(c_8) = [0] [0] [0] p(c_9) = [0] [0] [0] p(c_10) = [1 0 0] [1 0 0] [1 0 0] [1] [0 0 0] x_1 + [0 0 0] x_2 + [1 0 0] x_3 + [0] [0 0 1] [0 0 0] [0 0 0] [0] p(c_11) = [0] [0] [0] p(c_12) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_13) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_14) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 0] [0] p(c_15) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_16) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_17) = [1 0 0] [0] [0 0 0] x_1 + [1] [0 0 0] [0] p(c_18) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 0] [0] p(c_19) = [0] [0] [0] p(c_20) = [0] [0] [0] p(c_21) = [0] [0] [0] p(c_22) = [0] [0] [0] p(c_23) = [0] [0] [0] p(c_24) = [1 0 0] [1] [0 0 1] x_1 + [0] [0 0 1] [0] p(c_25) = [1 0 0] [0] [0 0 0] x_1 + [1] [0 0 0] [0] p(c_26) = [0] [0] [0] p(c_27) = [0] [0] [0] Following rules are strictly oriented: cons1#(X1,mark(X2)) = [1 0 0] [1] [0 0 0] X2 + [1] [0 0 0] [0] > [1 0 0] [0] [0 0 0] X2 + [1] [0 0 0] [0] = c_14(cons1#(X1,X2)) Following rules are (at-least) weakly oriented: 2nd#(mark(X)) = [0 0 0] [0] [1 0 0] X + [1] [0 0 0] [1] >= [0 0 0] [0] [1 0 0] X + [1] [0 0 0] [0] = c_1(2nd#(X)) 2nd#(ok(X)) = [0 0 0] [0] [1 0 0] X + [0] [0 0 0] [1] >= [0] [0] [0] = c_2(2nd#(X)) active#(2nd(X)) = [1 1 1] [1] [1 1 1] X + [1] [0 0 0] [1] >= [0 0 0] [0] [1 0 1] X + [1] [0 0 0] [1] = 2nd#(active(X)) active#(2nd(X)) = [1 1 1] [1] [1 1 1] X + [1] [0 0 0] [1] >= [1 0 1] [1] [1 0 1] X + [1] [0 0 0] [1] = active#(X) active#(2nd(cons(X,X1))) = [1 0 1] [2 1 0] [1] [1 0 1] X + [2 1 0] X1 + [1] [0 0 0] [0 0 0] [1] >= [1 0 0] [2 0 0] [0] [0 0 0] X + [0 0 0] X1 + [1] [0 0 0] [0 0 0] [0] = c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) active#(cons(X1,X2)) = [1 0 1] [1 1 0] [1] [1 0 1] X1 + [1 1 0] X2 + [1] [0 0 0] [0 0 0] [1] >= [1 0 1] [1] [1 0 1] X1 + [1] [0 0 0] [1] = active#(X1) active#(cons(X1,X2)) = [1 0 1] [1 1 0] [1] [1 0 1] X1 + [1 1 0] X2 + [1] [0 0 0] [0 0 0] [1] >= [0] [0] [1] = cons#(active(X1),X2) active#(cons1(X1,X2)) = [1 0 1] [1 0 1] [1] [1 0 1] X1 + [1 0 1] X2 + [1] [0 0 0] [0 0 0] [1] >= [1 0 1] [1] [1 0 1] X1 + [1] [0 0 0] [1] = active#(X1) active#(cons1(X1,X2)) = [1 0 1] [1 0 1] [1] [1 0 1] X1 + [1 0 1] X2 + [1] [0 0 0] [0 0 0] [1] >= [1 0 1] [1] [1 0 1] X2 + [1] [0 0 0] [1] = active#(X2) active#(cons1(X1,X2)) = [1 0 1] [1 0 1] [1] [1 0 1] X1 + [1 0 1] X2 + [1] [0 0 0] [0 0 0] [1] >= [1 0 1] [1] [0 0 0] X2 + [1] [0 0 0] [0] = cons1#(X1,active(X2)) active#(cons1(X1,X2)) = [1 0 1] [1 0 1] [1] [1 0 1] X1 + [1 0 1] X2 + [1] [0 0 0] [0 0 0] [1] >= [1 0 0] [0] [0 0 0] X2 + [1] [0 0 0] [0] = cons1#(active(X1),X2) active#(from(X)) = [1 0 1] [1] [1 0 1] X + [1] [0 0 0] [1] >= [1 0 1] [1] [1 0 1] X + [1] [0 0 0] [1] = active#(X) active#(from(X)) = [1 0 1] [1] [1 0 1] X + [1] [0 0 0] [1] >= [0 0 0] [0] [1 0 1] X + [1] [0 0 0] [0] = from#(active(X)) active#(from(X)) = [1 0 1] [1] [1 0 1] X + [1] [0 0 0] [1] >= [1 0 0] [1] [1 0 0] X + [0] [0 0 0] [1] = c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) = [1 1 1] [1] [1 1 1] X + [1] [0 0 0] [1] >= [1 0 1] [1] [1 0 1] X + [1] [0 0 0] [1] = active#(X) active#(s(X)) = [1 1 1] [1] [1 1 1] X + [1] [0 0 0] [1] >= [1 0 1] [1] [0 0 0] X + [1] [0 0 0] [1] = s#(active(X)) cons#(mark(X1),X2) = [0] [0] [1] >= [0] [0] [0] = c_12(cons#(X1,X2)) cons#(ok(X1),ok(X2)) = [0] [0] [1] >= [0] [0] [0] = c_13(cons#(X1,X2)) cons1#(mark(X1),X2) = [1 0 0] [0] [0 0 0] X2 + [1] [0 0 0] [0] >= [1 0 0] [0] [0 0 0] X2 + [0] [0 0 0] [0] = c_15(cons1#(X1,X2)) cons1#(ok(X1),ok(X2)) = [1 0 0] [0] [0 0 0] X2 + [1] [0 0 0] [0] >= [1 0 0] [0] [0 0 0] X2 + [0] [0 0 0] [0] = c_16(cons1#(X1,X2)) from#(mark(X)) = [0 0 0] [0] [1 0 0] X + [1] [0 0 0] [0] >= [0] [1] [0] = c_17(from#(X)) from#(ok(X)) = [0 0 0] [0] [1 0 0] X + [0] [0 0 0] [0] >= [0 0 0] [0] [1 0 0] X + [0] [0 0 0] [0] = c_18(from#(X)) proper#(2nd(X)) = [0] [1] [1] >= [0] [0] [1] = 2nd#(proper(X)) proper#(2nd(X)) = [0] [1] [1] >= [0] [1] [1] = proper#(X) proper#(cons(X1,X2)) = [0] [1] [1] >= [0] [0] [1] = cons#(proper(X1),proper(X2)) proper#(cons(X1,X2)) = [0] [1] [1] >= [0] [1] [1] = proper#(X1) proper#(cons(X1,X2)) = [0] [1] [1] >= [0] [1] [1] = proper#(X2) proper#(cons1(X1,X2)) = [0] [1] [1] >= [0] [1] [0] = cons1#(proper(X1),proper(X2)) proper#(cons1(X1,X2)) = [0] [1] [1] >= [0] [1] [1] = proper#(X1) proper#(cons1(X1,X2)) = [0] [1] [1] >= [0] [1] [1] = proper#(X2) proper#(from(X)) = [0] [1] [1] >= [0] [0] [0] = from#(proper(X)) proper#(from(X)) = [0] [1] [1] >= [0] [1] [1] = proper#(X) proper#(s(X)) = [0] [1] [1] >= [0] [1] [1] = proper#(X) proper#(s(X)) = [0] [1] [1] >= [0] [1] [1] = s#(proper(X)) s#(mark(X)) = [1 0 0] [1] [0 0 0] X + [1] [0 0 0] [1] >= [1 0 0] [1] [0 0 0] X + [1] [0 0 0] [1] = c_24(s#(X)) s#(ok(X)) = [1 0 0] [0] [0 0 0] X + [1] [0 0 0] [1] >= [1 0 0] [0] [0 0 0] X + [1] [0 0 0] [0] = c_25(s#(X)) top#(mark(X)) = [1] [1] [1] >= [0] [1] [1] = proper#(X) top#(mark(X)) = [1] [1] [1] >= [1] [1] [1] = top#(proper(X)) top#(ok(X)) = [1 1 1] [1] [1 0 1] X + [1] [0 0 0] [1] >= [1 0 1] [1] [1 0 1] X + [1] [0 0 0] [1] = active#(X) top#(ok(X)) = [1 1 1] [1] [1 0 1] X + [1] [0 0 0] [1] >= [0 1 1] [1] [0 0 1] X + [1] [0 0 0] [1] = top#(active(X)) 2nd(mark(X)) = [1 0 0] [1] [0 0 0] X + [0] [0 0 0] [0] >= [1 0 0] [1] [0 0 0] X + [0] [0 0 0] [0] = mark(2nd(X)) 2nd(ok(X)) = [1 0 0] [0] [0 0 0] X + [0] [1 1 1] [0] >= [1 0 0] [0] [0 0 0] X + [0] [1 1 1] [0] = ok(2nd(X)) active(2nd(X)) = [1 1 1] [1] [0 0 0] X + [0] [0 1 1] [0] >= [1 0 1] [1] [0 0 0] X + [0] [0 1 1] [0] = 2nd(active(X)) active(2nd(cons(X,X1))) = [1 0 1] [2 1 0] [1] [0 0 0] X + [0 0 0] X1 + [0] [0 0 1] [2 1 0] [0] >= [1 0 0] [1 0 0] [1] [0 0 0] X + [0 0 0] X1 + [0] [0 0 0] [0 0 0] [0] = mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) = [1 0 1] [1 0 1] [1 1 0] [1] [0 0 0] X + [0 0 0] Y + [0 0 0] Z + [0] [0 0 1] [0 0 1] [1 1 0] [0] >= [1 0 0] [1] [0 0 0] Y + [0] [0 0 0] [0] = mark(Y) active(cons(X1,X2)) = [1 0 1] [1 1 0] [1] [0 0 0] X1 + [1 0 0] X2 + [0] [0 0 1] [1 1 0] [0] >= [1 0 1] [0 0 0] [1] [0 0 0] X1 + [1 0 0] X2 + [0] [0 0 1] [1 1 0] [0] = cons(active(X1),X2) active(cons1(X1,X2)) = [1 0 1] [1 0 1] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 0 1] [0] >= [1 0 0] [1 0 1] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 0 1] [0] = cons1(X1,active(X2)) active(cons1(X1,X2)) = [1 0 1] [1 0 1] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 0 1] [0] >= [1 0 1] [1 0 0] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 0 1] [0] = cons1(active(X1),X2) active(from(X)) = [1 0 1] [1] [0 0 1] X + [0] [0 0 1] [0] >= [1 0 1] [1] [0 0 1] X + [0] [0 0 1] [0] = from(active(X)) active(from(X)) = [1 0 1] [1] [0 0 1] X + [0] [0 0 1] [0] >= [1 0 0] [1] [0 0 0] X + [0] [0 0 0] [0] = mark(cons(X,from(s(X)))) active(s(X)) = [1 1 1] [1] [0 0 0] X + [0] [0 1 1] [0] >= [1 0 1] [1] [0 0 0] X + [0] [0 1 1] [0] = s(active(X)) cons(mark(X1),X2) = [1 0 0] [0 0 0] [1] [0 0 0] X1 + [1 0 0] X2 + [0] [0 0 0] [1 1 0] [0] >= [1 0 0] [1] [0 0 0] X1 + [0] [0 0 0] [0] = mark(cons(X1,X2)) cons(ok(X1),ok(X2)) = [1 0 0] [0 0 0] [0] [0 0 0] X1 + [1 0 0] X2 + [0] [1 0 1] [1 1 0] [0] >= [1 0 0] [0 0 0] [0] [0 0 0] X1 + [1 0 0] X2 + [0] [1 0 1] [1 1 0] [0] = ok(cons(X1,X2)) cons1(X1,mark(X2)) = [1 0 0] [1 0 0] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 0 0] [0] >= [1 0 0] [1 0 0] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 0] [0 0 0] [0] = mark(cons1(X1,X2)) cons1(mark(X1),X2) = [1 0 0] [1 0 0] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 0] [0 0 1] [0] >= [1 0 0] [1 0 0] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 0] [0 0 0] [0] = mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) = [1 0 0] [1 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [1 0 1] [1 0 1] [0] >= [1 0 0] [1 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [1 0 1] [1 0 1] [0] = ok(cons1(X1,X2)) from(mark(X)) = [1 0 0] [1] [0 0 0] X + [0] [0 0 0] [0] >= [1 0 0] [1] [0 0 0] X + [0] [0 0 0] [0] = mark(from(X)) from(ok(X)) = [1 0 0] [0] [1 0 1] X + [0] [1 0 1] [0] >= [1 0 0] [0] [0 0 1] X + [0] [1 0 1] [0] = ok(from(X)) proper(2nd(X)) = [0] [0] [0] >= [0] [0] [0] = 2nd(proper(X)) proper(cons(X1,X2)) = [0] [0] [0] >= [0] [0] [0] = cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) = [0] [0] [0] >= [0] [0] [0] = cons1(proper(X1),proper(X2)) proper(from(X)) = [0] [0] [0] >= [0] [0] [0] = from(proper(X)) proper(s(X)) = [0] [0] [0] >= [0] [0] [0] = s(proper(X)) s(mark(X)) = [1 0 0] [1] [0 0 0] X + [0] [0 0 0] [0] >= [1 0 0] [1] [0 0 0] X + [0] [0 0 0] [0] = mark(s(X)) s(ok(X)) = [1 0 0] [0] [0 0 0] X + [0] [1 1 1] [0] >= [1 0 0] [0] [0 0 0] X + [0] [1 1 1] [0] = ok(s(X)) *** Step 5.b:1.b:13: EmptyProcessor WORST_CASE(?,O(1)) + Considered Problem: - Weak DPs: 2nd#(mark(X)) -> c_1(2nd#(X)) 2nd#(ok(X)) -> c_2(2nd#(X)) active#(2nd(X)) -> 2nd#(active(X)) active#(2nd(X)) -> active#(X) active#(2nd(cons(X,X1))) -> c_4(2nd#(cons1(X,X1)),cons1#(X,X1)) active#(cons(X1,X2)) -> active#(X1) active#(cons(X1,X2)) -> cons#(active(X1),X2) active#(cons1(X1,X2)) -> active#(X1) active#(cons1(X1,X2)) -> active#(X2) active#(cons1(X1,X2)) -> cons1#(X1,active(X2)) active#(cons1(X1,X2)) -> cons1#(active(X1),X2) active#(from(X)) -> active#(X) active#(from(X)) -> from#(active(X)) active#(from(X)) -> c_10(cons#(X,from(s(X))),from#(s(X)),s#(X)) active#(s(X)) -> active#(X) active#(s(X)) -> s#(active(X)) cons#(mark(X1),X2) -> c_12(cons#(X1,X2)) cons#(ok(X1),ok(X2)) -> c_13(cons#(X1,X2)) cons1#(X1,mark(X2)) -> c_14(cons1#(X1,X2)) cons1#(mark(X1),X2) -> c_15(cons1#(X1,X2)) cons1#(ok(X1),ok(X2)) -> c_16(cons1#(X1,X2)) from#(mark(X)) -> c_17(from#(X)) from#(ok(X)) -> c_18(from#(X)) proper#(2nd(X)) -> 2nd#(proper(X)) proper#(2nd(X)) -> proper#(X) proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) proper#(cons(X1,X2)) -> proper#(X1) proper#(cons(X1,X2)) -> proper#(X2) proper#(cons1(X1,X2)) -> cons1#(proper(X1),proper(X2)) proper#(cons1(X1,X2)) -> proper#(X1) proper#(cons1(X1,X2)) -> proper#(X2) proper#(from(X)) -> from#(proper(X)) proper#(from(X)) -> proper#(X) proper#(s(X)) -> proper#(X) proper#(s(X)) -> s#(proper(X)) s#(mark(X)) -> c_24(s#(X)) s#(ok(X)) -> c_25(s#(X)) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) - Weak TRS: 2nd(mark(X)) -> mark(2nd(X)) 2nd(ok(X)) -> ok(2nd(X)) active(2nd(X)) -> 2nd(active(X)) active(2nd(cons(X,X1))) -> mark(2nd(cons1(X,X1))) active(2nd(cons1(X,cons(Y,Z)))) -> mark(Y) active(cons(X1,X2)) -> cons(active(X1),X2) active(cons1(X1,X2)) -> cons1(X1,active(X2)) active(cons1(X1,X2)) -> cons1(active(X1),X2) active(from(X)) -> from(active(X)) active(from(X)) -> mark(cons(X,from(s(X)))) active(s(X)) -> s(active(X)) cons(mark(X1),X2) -> mark(cons(X1,X2)) cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) cons1(X1,mark(X2)) -> mark(cons1(X1,X2)) cons1(mark(X1),X2) -> mark(cons1(X1,X2)) cons1(ok(X1),ok(X2)) -> ok(cons1(X1,X2)) from(mark(X)) -> mark(from(X)) from(ok(X)) -> ok(from(X)) proper(2nd(X)) -> 2nd(proper(X)) proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) proper(cons1(X1,X2)) -> cons1(proper(X1),proper(X2)) proper(from(X)) -> from(proper(X)) proper(s(X)) -> s(proper(X)) s(mark(X)) -> mark(s(X)) s(ok(X)) -> ok(s(X)) - Signature: {2nd/1,active/1,cons/2,cons1/2,from/1,proper/1,s/1,top/1,2nd#/1,active#/1,cons#/2,cons1#/2,from#/1,proper#/1 ,s#/1,top#/1} / {mark/1,ok/1,c_1/1,c_2/1,c_3/2,c_4/2,c_5/0,c_6/2,c_7/2,c_8/2,c_9/2,c_10/3,c_11/2,c_12/1 ,c_13/1,c_14/1,c_15/1,c_16/1,c_17/1,c_18/1,c_19/2,c_20/3,c_21/3,c_22/2,c_23/2,c_24/1,c_25/1,c_26/2,c_27/2} - Obligation: innermost runtime complexity wrt. defined symbols {2nd#,active#,cons#,cons1#,from#,proper#,s# ,top#} and constructors {mark,ok} + Applied Processor: EmptyProcessor + Details: The problem is already closed. The intended complexity is O(1). WORST_CASE(?,O(n^6))