MAYBE We are left with following problem, upon which TcT provides the certificate MAYBE. Strict Trs: { active(from(X)) -> from(active(X)) , active(from(X)) -> mark(cons(X, from(s(X)))) , active(cons(X1, X2)) -> cons(active(X1), X2) , active(s(X)) -> s(active(X)) , active(sel(X1, X2)) -> sel(X1, active(X2)) , active(sel(X1, X2)) -> sel(active(X1), X2) , active(sel(s(N), cons(X, XS))) -> mark(sel(N, XS)) , active(sel(0(), cons(X, XS))) -> mark(X) , active(minus(X1, X2)) -> minus(X1, active(X2)) , active(minus(X1, X2)) -> minus(active(X1), X2) , active(minus(X, 0())) -> mark(0()) , active(minus(s(X), s(Y))) -> mark(minus(X, Y)) , active(quot(X1, X2)) -> quot(X1, active(X2)) , active(quot(X1, X2)) -> quot(active(X1), X2) , active(quot(s(X), s(Y))) -> mark(s(quot(minus(X, Y), s(Y)))) , active(quot(0(), s(Y))) -> mark(0()) , active(zWquot(X1, X2)) -> zWquot(X1, active(X2)) , active(zWquot(X1, X2)) -> zWquot(active(X1), X2) , active(zWquot(XS, nil())) -> mark(nil()) , active(zWquot(cons(X, XS), cons(Y, YS))) -> mark(cons(quot(X, Y), zWquot(XS, YS))) , active(zWquot(nil(), XS)) -> mark(nil()) , from(mark(X)) -> mark(from(X)) , from(ok(X)) -> ok(from(X)) , cons(mark(X1), X2) -> mark(cons(X1, X2)) , cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) , s(mark(X)) -> mark(s(X)) , s(ok(X)) -> ok(s(X)) , sel(X1, mark(X2)) -> mark(sel(X1, X2)) , sel(mark(X1), X2) -> mark(sel(X1, X2)) , sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) , minus(X1, mark(X2)) -> mark(minus(X1, X2)) , minus(mark(X1), X2) -> mark(minus(X1, X2)) , minus(ok(X1), ok(X2)) -> ok(minus(X1, X2)) , quot(X1, mark(X2)) -> mark(quot(X1, X2)) , quot(mark(X1), X2) -> mark(quot(X1, X2)) , quot(ok(X1), ok(X2)) -> ok(quot(X1, X2)) , zWquot(X1, mark(X2)) -> mark(zWquot(X1, X2)) , zWquot(mark(X1), X2) -> mark(zWquot(X1, X2)) , zWquot(ok(X1), ok(X2)) -> ok(zWquot(X1, X2)) , proper(from(X)) -> from(proper(X)) , proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) , proper(s(X)) -> s(proper(X)) , proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) , proper(0()) -> ok(0()) , proper(minus(X1, X2)) -> minus(proper(X1), proper(X2)) , proper(quot(X1, X2)) -> quot(proper(X1), proper(X2)) , proper(zWquot(X1, X2)) -> zWquot(proper(X1), proper(X2)) , proper(nil()) -> ok(nil()) , top(mark(X)) -> top(proper(X)) , top(ok(X)) -> top(active(X)) } Obligation: runtime complexity Answer: MAYBE None of the processors succeeded. Details of failed attempt(s): ----------------------------- 1) 'WithProblem (timeout of 60 seconds)' failed due to the following reason: Computation stopped due to timeout after 60.0 seconds. 2) 'Best' failed due to the following reason: None of the processors succeeded. Details of failed attempt(s): ----------------------------- 1) 'WithProblem (timeout of 30 seconds) (timeout of 60 seconds)' failed due to the following reason: Computation stopped due to timeout after 30.0 seconds. 2) 'Best' failed due to the following reason: None of the processors succeeded. Details of failed attempt(s): ----------------------------- 1) 'Polynomial Path Order (PS) (timeout of 60 seconds)' failed due to the following reason: The processor is inapplicable, reason: Processor only applicable for innermost runtime complexity analysis 2) 'bsearch-popstar (timeout of 60 seconds)' failed due to the following reason: The processor is inapplicable, reason: Processor only applicable for innermost runtime complexity analysis 3) 'Fastest (timeout of 5 seconds) (timeout of 60 seconds)' failed due to the following reason: None of the processors succeeded. Details of failed attempt(s): ----------------------------- 1) 'Bounds with minimal-enrichment and initial automaton 'match'' failed due to the following reason: match-boundness of the problem could not be verified. 2) 'Bounds with perSymbol-enrichment and initial automaton 'match'' failed due to the following reason: match-boundness of the problem could not be verified. 3) 'Innermost Weak Dependency Pairs (timeout of 60 seconds)' failed due to the following reason: We add the following weak dependency pairs: Strict DPs: { active^#(from(X)) -> c_1(from^#(active(X))) , active^#(from(X)) -> c_2(cons^#(X, from(s(X)))) , active^#(cons(X1, X2)) -> c_3(cons^#(active(X1), X2)) , active^#(s(X)) -> c_4(s^#(active(X))) , active^#(sel(X1, X2)) -> c_5(sel^#(X1, active(X2))) , active^#(sel(X1, X2)) -> c_6(sel^#(active(X1), X2)) , active^#(sel(s(N), cons(X, XS))) -> c_7(sel^#(N, XS)) , active^#(sel(0(), cons(X, XS))) -> c_8(X) , active^#(minus(X1, X2)) -> c_9(minus^#(X1, active(X2))) , active^#(minus(X1, X2)) -> c_10(minus^#(active(X1), X2)) , active^#(minus(X, 0())) -> c_11() , active^#(minus(s(X), s(Y))) -> c_12(minus^#(X, Y)) , active^#(quot(X1, X2)) -> c_13(quot^#(X1, active(X2))) , active^#(quot(X1, X2)) -> c_14(quot^#(active(X1), X2)) , active^#(quot(s(X), s(Y))) -> c_15(s^#(quot(minus(X, Y), s(Y)))) , active^#(quot(0(), s(Y))) -> c_16() , active^#(zWquot(X1, X2)) -> c_17(zWquot^#(X1, active(X2))) , active^#(zWquot(X1, X2)) -> c_18(zWquot^#(active(X1), X2)) , active^#(zWquot(XS, nil())) -> c_19() , active^#(zWquot(cons(X, XS), cons(Y, YS))) -> c_20(cons^#(quot(X, Y), zWquot(XS, YS))) , active^#(zWquot(nil(), XS)) -> c_21() , from^#(mark(X)) -> c_22(from^#(X)) , from^#(ok(X)) -> c_23(from^#(X)) , cons^#(mark(X1), X2) -> c_24(cons^#(X1, X2)) , cons^#(ok(X1), ok(X2)) -> c_25(cons^#(X1, X2)) , s^#(mark(X)) -> c_26(s^#(X)) , s^#(ok(X)) -> c_27(s^#(X)) , sel^#(X1, mark(X2)) -> c_28(sel^#(X1, X2)) , sel^#(mark(X1), X2) -> c_29(sel^#(X1, X2)) , sel^#(ok(X1), ok(X2)) -> c_30(sel^#(X1, X2)) , minus^#(X1, mark(X2)) -> c_31(minus^#(X1, X2)) , minus^#(mark(X1), X2) -> c_32(minus^#(X1, X2)) , minus^#(ok(X1), ok(X2)) -> c_33(minus^#(X1, X2)) , quot^#(X1, mark(X2)) -> c_34(quot^#(X1, X2)) , quot^#(mark(X1), X2) -> c_35(quot^#(X1, X2)) , quot^#(ok(X1), ok(X2)) -> c_36(quot^#(X1, X2)) , zWquot^#(X1, mark(X2)) -> c_37(zWquot^#(X1, X2)) , zWquot^#(mark(X1), X2) -> c_38(zWquot^#(X1, X2)) , zWquot^#(ok(X1), ok(X2)) -> c_39(zWquot^#(X1, X2)) , proper^#(from(X)) -> c_40(from^#(proper(X))) , proper^#(cons(X1, X2)) -> c_41(cons^#(proper(X1), proper(X2))) , proper^#(s(X)) -> c_42(s^#(proper(X))) , proper^#(sel(X1, X2)) -> c_43(sel^#(proper(X1), proper(X2))) , proper^#(0()) -> c_44() , proper^#(minus(X1, X2)) -> c_45(minus^#(proper(X1), proper(X2))) , proper^#(quot(X1, X2)) -> c_46(quot^#(proper(X1), proper(X2))) , proper^#(zWquot(X1, X2)) -> c_47(zWquot^#(proper(X1), proper(X2))) , proper^#(nil()) -> c_48() , top^#(mark(X)) -> c_49(top^#(proper(X))) , top^#(ok(X)) -> c_50(top^#(active(X))) } and mark the set of starting terms. We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { active^#(from(X)) -> c_1(from^#(active(X))) , active^#(from(X)) -> c_2(cons^#(X, from(s(X)))) , active^#(cons(X1, X2)) -> c_3(cons^#(active(X1), X2)) , active^#(s(X)) -> c_4(s^#(active(X))) , active^#(sel(X1, X2)) -> c_5(sel^#(X1, active(X2))) , active^#(sel(X1, X2)) -> c_6(sel^#(active(X1), X2)) , active^#(sel(s(N), cons(X, XS))) -> c_7(sel^#(N, XS)) , active^#(sel(0(), cons(X, XS))) -> c_8(X) , active^#(minus(X1, X2)) -> c_9(minus^#(X1, active(X2))) , active^#(minus(X1, X2)) -> c_10(minus^#(active(X1), X2)) , active^#(minus(X, 0())) -> c_11() , active^#(minus(s(X), s(Y))) -> c_12(minus^#(X, Y)) , active^#(quot(X1, X2)) -> c_13(quot^#(X1, active(X2))) , active^#(quot(X1, X2)) -> c_14(quot^#(active(X1), X2)) , active^#(quot(s(X), s(Y))) -> c_15(s^#(quot(minus(X, Y), s(Y)))) , active^#(quot(0(), s(Y))) -> c_16() , active^#(zWquot(X1, X2)) -> c_17(zWquot^#(X1, active(X2))) , active^#(zWquot(X1, X2)) -> c_18(zWquot^#(active(X1), X2)) , active^#(zWquot(XS, nil())) -> c_19() , active^#(zWquot(cons(X, XS), cons(Y, YS))) -> c_20(cons^#(quot(X, Y), zWquot(XS, YS))) , active^#(zWquot(nil(), XS)) -> c_21() , from^#(mark(X)) -> c_22(from^#(X)) , from^#(ok(X)) -> c_23(from^#(X)) , cons^#(mark(X1), X2) -> c_24(cons^#(X1, X2)) , cons^#(ok(X1), ok(X2)) -> c_25(cons^#(X1, X2)) , s^#(mark(X)) -> c_26(s^#(X)) , s^#(ok(X)) -> c_27(s^#(X)) , sel^#(X1, mark(X2)) -> c_28(sel^#(X1, X2)) , sel^#(mark(X1), X2) -> c_29(sel^#(X1, X2)) , sel^#(ok(X1), ok(X2)) -> c_30(sel^#(X1, X2)) , minus^#(X1, mark(X2)) -> c_31(minus^#(X1, X2)) , minus^#(mark(X1), X2) -> c_32(minus^#(X1, X2)) , minus^#(ok(X1), ok(X2)) -> c_33(minus^#(X1, X2)) , quot^#(X1, mark(X2)) -> c_34(quot^#(X1, X2)) , quot^#(mark(X1), X2) -> c_35(quot^#(X1, X2)) , quot^#(ok(X1), ok(X2)) -> c_36(quot^#(X1, X2)) , zWquot^#(X1, mark(X2)) -> c_37(zWquot^#(X1, X2)) , zWquot^#(mark(X1), X2) -> c_38(zWquot^#(X1, X2)) , zWquot^#(ok(X1), ok(X2)) -> c_39(zWquot^#(X1, X2)) , proper^#(from(X)) -> c_40(from^#(proper(X))) , proper^#(cons(X1, X2)) -> c_41(cons^#(proper(X1), proper(X2))) , proper^#(s(X)) -> c_42(s^#(proper(X))) , proper^#(sel(X1, X2)) -> c_43(sel^#(proper(X1), proper(X2))) , proper^#(0()) -> c_44() , proper^#(minus(X1, X2)) -> c_45(minus^#(proper(X1), proper(X2))) , proper^#(quot(X1, X2)) -> c_46(quot^#(proper(X1), proper(X2))) , proper^#(zWquot(X1, X2)) -> c_47(zWquot^#(proper(X1), proper(X2))) , proper^#(nil()) -> c_48() , top^#(mark(X)) -> c_49(top^#(proper(X))) , top^#(ok(X)) -> c_50(top^#(active(X))) } Strict Trs: { active(from(X)) -> from(active(X)) , active(from(X)) -> mark(cons(X, from(s(X)))) , active(cons(X1, X2)) -> cons(active(X1), X2) , active(s(X)) -> s(active(X)) , active(sel(X1, X2)) -> sel(X1, active(X2)) , active(sel(X1, X2)) -> sel(active(X1), X2) , active(sel(s(N), cons(X, XS))) -> mark(sel(N, XS)) , active(sel(0(), cons(X, XS))) -> mark(X) , active(minus(X1, X2)) -> minus(X1, active(X2)) , active(minus(X1, X2)) -> minus(active(X1), X2) , active(minus(X, 0())) -> mark(0()) , active(minus(s(X), s(Y))) -> mark(minus(X, Y)) , active(quot(X1, X2)) -> quot(X1, active(X2)) , active(quot(X1, X2)) -> quot(active(X1), X2) , active(quot(s(X), s(Y))) -> mark(s(quot(minus(X, Y), s(Y)))) , active(quot(0(), s(Y))) -> mark(0()) , active(zWquot(X1, X2)) -> zWquot(X1, active(X2)) , active(zWquot(X1, X2)) -> zWquot(active(X1), X2) , active(zWquot(XS, nil())) -> mark(nil()) , active(zWquot(cons(X, XS), cons(Y, YS))) -> mark(cons(quot(X, Y), zWquot(XS, YS))) , active(zWquot(nil(), XS)) -> mark(nil()) , from(mark(X)) -> mark(from(X)) , from(ok(X)) -> ok(from(X)) , cons(mark(X1), X2) -> mark(cons(X1, X2)) , cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) , s(mark(X)) -> mark(s(X)) , s(ok(X)) -> ok(s(X)) , sel(X1, mark(X2)) -> mark(sel(X1, X2)) , sel(mark(X1), X2) -> mark(sel(X1, X2)) , sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) , minus(X1, mark(X2)) -> mark(minus(X1, X2)) , minus(mark(X1), X2) -> mark(minus(X1, X2)) , minus(ok(X1), ok(X2)) -> ok(minus(X1, X2)) , quot(X1, mark(X2)) -> mark(quot(X1, X2)) , quot(mark(X1), X2) -> mark(quot(X1, X2)) , quot(ok(X1), ok(X2)) -> ok(quot(X1, X2)) , zWquot(X1, mark(X2)) -> mark(zWquot(X1, X2)) , zWquot(mark(X1), X2) -> mark(zWquot(X1, X2)) , zWquot(ok(X1), ok(X2)) -> ok(zWquot(X1, X2)) , proper(from(X)) -> from(proper(X)) , proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) , proper(s(X)) -> s(proper(X)) , proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) , proper(0()) -> ok(0()) , proper(minus(X1, X2)) -> minus(proper(X1), proper(X2)) , proper(quot(X1, X2)) -> quot(proper(X1), proper(X2)) , proper(zWquot(X1, X2)) -> zWquot(proper(X1), proper(X2)) , proper(nil()) -> ok(nil()) , top(mark(X)) -> top(proper(X)) , top(ok(X)) -> top(active(X)) } Obligation: runtime complexity Answer: MAYBE Consider the dependency graph: 1: active^#(from(X)) -> c_1(from^#(active(X))) -->_1 from^#(ok(X)) -> c_23(from^#(X)) :23 -->_1 from^#(mark(X)) -> c_22(from^#(X)) :22 2: active^#(from(X)) -> c_2(cons^#(X, from(s(X)))) -->_1 cons^#(ok(X1), ok(X2)) -> c_25(cons^#(X1, X2)) :25 -->_1 cons^#(mark(X1), X2) -> c_24(cons^#(X1, X2)) :24 3: active^#(cons(X1, X2)) -> c_3(cons^#(active(X1), X2)) -->_1 cons^#(ok(X1), ok(X2)) -> c_25(cons^#(X1, X2)) :25 -->_1 cons^#(mark(X1), X2) -> c_24(cons^#(X1, X2)) :24 4: active^#(s(X)) -> c_4(s^#(active(X))) -->_1 s^#(ok(X)) -> c_27(s^#(X)) :27 -->_1 s^#(mark(X)) -> c_26(s^#(X)) :26 5: active^#(sel(X1, X2)) -> c_5(sel^#(X1, active(X2))) -->_1 sel^#(ok(X1), ok(X2)) -> c_30(sel^#(X1, X2)) :30 -->_1 sel^#(mark(X1), X2) -> c_29(sel^#(X1, X2)) :29 -->_1 sel^#(X1, mark(X2)) -> c_28(sel^#(X1, X2)) :28 6: active^#(sel(X1, X2)) -> c_6(sel^#(active(X1), X2)) -->_1 sel^#(ok(X1), ok(X2)) -> c_30(sel^#(X1, X2)) :30 -->_1 sel^#(mark(X1), X2) -> c_29(sel^#(X1, X2)) :29 -->_1 sel^#(X1, mark(X2)) -> c_28(sel^#(X1, X2)) :28 7: active^#(sel(s(N), cons(X, XS))) -> c_7(sel^#(N, XS)) -->_1 sel^#(ok(X1), ok(X2)) -> c_30(sel^#(X1, X2)) :30 -->_1 sel^#(mark(X1), X2) -> c_29(sel^#(X1, X2)) :29 -->_1 sel^#(X1, mark(X2)) -> c_28(sel^#(X1, X2)) :28 8: active^#(sel(0(), cons(X, XS))) -> c_8(X) -->_1 top^#(ok(X)) -> c_50(top^#(active(X))) :50 -->_1 top^#(mark(X)) -> c_49(top^#(proper(X))) :49 -->_1 proper^#(zWquot(X1, X2)) -> c_47(zWquot^#(proper(X1), proper(X2))) :47 -->_1 proper^#(quot(X1, X2)) -> c_46(quot^#(proper(X1), proper(X2))) :46 -->_1 proper^#(minus(X1, X2)) -> c_45(minus^#(proper(X1), proper(X2))) :45 -->_1 proper^#(sel(X1, X2)) -> c_43(sel^#(proper(X1), proper(X2))) :43 -->_1 proper^#(s(X)) -> c_42(s^#(proper(X))) :42 -->_1 proper^#(cons(X1, X2)) -> c_41(cons^#(proper(X1), proper(X2))) :41 -->_1 proper^#(from(X)) -> c_40(from^#(proper(X))) :40 -->_1 zWquot^#(ok(X1), ok(X2)) -> c_39(zWquot^#(X1, X2)) :39 -->_1 zWquot^#(mark(X1), X2) -> c_38(zWquot^#(X1, X2)) :38 -->_1 zWquot^#(X1, mark(X2)) -> c_37(zWquot^#(X1, X2)) :37 -->_1 quot^#(ok(X1), ok(X2)) -> c_36(quot^#(X1, X2)) :36 -->_1 quot^#(mark(X1), X2) -> c_35(quot^#(X1, X2)) :35 -->_1 quot^#(X1, mark(X2)) -> c_34(quot^#(X1, X2)) :34 -->_1 minus^#(ok(X1), ok(X2)) -> c_33(minus^#(X1, X2)) :33 -->_1 minus^#(mark(X1), X2) -> c_32(minus^#(X1, X2)) :32 -->_1 minus^#(X1, mark(X2)) -> c_31(minus^#(X1, X2)) :31 -->_1 sel^#(ok(X1), ok(X2)) -> c_30(sel^#(X1, X2)) :30 -->_1 sel^#(mark(X1), X2) -> c_29(sel^#(X1, X2)) :29 -->_1 sel^#(X1, mark(X2)) -> c_28(sel^#(X1, X2)) :28 -->_1 s^#(ok(X)) -> c_27(s^#(X)) :27 -->_1 s^#(mark(X)) -> c_26(s^#(X)) :26 -->_1 cons^#(ok(X1), ok(X2)) -> c_25(cons^#(X1, X2)) :25 -->_1 cons^#(mark(X1), X2) -> c_24(cons^#(X1, X2)) :24 -->_1 from^#(ok(X)) -> c_23(from^#(X)) :23 -->_1 from^#(mark(X)) -> c_22(from^#(X)) :22 -->_1 active^#(zWquot(cons(X, XS), cons(Y, YS))) -> c_20(cons^#(quot(X, Y), zWquot(XS, YS))) :20 -->_1 active^#(zWquot(X1, X2)) -> c_18(zWquot^#(active(X1), X2)) :18 -->_1 active^#(zWquot(X1, X2)) -> c_17(zWquot^#(X1, active(X2))) :17 -->_1 active^#(quot(s(X), s(Y))) -> c_15(s^#(quot(minus(X, Y), s(Y)))) :15 -->_1 active^#(quot(X1, X2)) -> c_14(quot^#(active(X1), X2)) :14 -->_1 active^#(quot(X1, X2)) -> c_13(quot^#(X1, active(X2))) :13 -->_1 active^#(minus(s(X), s(Y))) -> c_12(minus^#(X, Y)) :12 -->_1 active^#(minus(X1, X2)) -> c_10(minus^#(active(X1), X2)) :10 -->_1 active^#(minus(X1, X2)) -> c_9(minus^#(X1, active(X2))) :9 -->_1 proper^#(nil()) -> c_48() :48 -->_1 proper^#(0()) -> c_44() :44 -->_1 active^#(zWquot(nil(), XS)) -> c_21() :21 -->_1 active^#(zWquot(XS, nil())) -> c_19() :19 -->_1 active^#(quot(0(), s(Y))) -> c_16() :16 -->_1 active^#(minus(X, 0())) -> c_11() :11 -->_1 active^#(sel(0(), cons(X, XS))) -> c_8(X) :8 -->_1 active^#(sel(s(N), cons(X, XS))) -> c_7(sel^#(N, XS)) :7 -->_1 active^#(sel(X1, X2)) -> c_6(sel^#(active(X1), X2)) :6 -->_1 active^#(sel(X1, X2)) -> c_5(sel^#(X1, active(X2))) :5 -->_1 active^#(s(X)) -> c_4(s^#(active(X))) :4 -->_1 active^#(cons(X1, X2)) -> c_3(cons^#(active(X1), X2)) :3 -->_1 active^#(from(X)) -> c_2(cons^#(X, from(s(X)))) :2 -->_1 active^#(from(X)) -> c_1(from^#(active(X))) :1 9: active^#(minus(X1, X2)) -> c_9(minus^#(X1, active(X2))) -->_1 minus^#(ok(X1), ok(X2)) -> c_33(minus^#(X1, X2)) :33 -->_1 minus^#(mark(X1), X2) -> c_32(minus^#(X1, X2)) :32 -->_1 minus^#(X1, mark(X2)) -> c_31(minus^#(X1, X2)) :31 10: active^#(minus(X1, X2)) -> c_10(minus^#(active(X1), X2)) -->_1 minus^#(ok(X1), ok(X2)) -> c_33(minus^#(X1, X2)) :33 -->_1 minus^#(mark(X1), X2) -> c_32(minus^#(X1, X2)) :32 -->_1 minus^#(X1, mark(X2)) -> c_31(minus^#(X1, X2)) :31 11: active^#(minus(X, 0())) -> c_11() 12: active^#(minus(s(X), s(Y))) -> c_12(minus^#(X, Y)) -->_1 minus^#(ok(X1), ok(X2)) -> c_33(minus^#(X1, X2)) :33 -->_1 minus^#(mark(X1), X2) -> c_32(minus^#(X1, X2)) :32 -->_1 minus^#(X1, mark(X2)) -> c_31(minus^#(X1, X2)) :31 13: active^#(quot(X1, X2)) -> c_13(quot^#(X1, active(X2))) -->_1 quot^#(ok(X1), ok(X2)) -> c_36(quot^#(X1, X2)) :36 -->_1 quot^#(mark(X1), X2) -> c_35(quot^#(X1, X2)) :35 -->_1 quot^#(X1, mark(X2)) -> c_34(quot^#(X1, X2)) :34 14: active^#(quot(X1, X2)) -> c_14(quot^#(active(X1), X2)) -->_1 quot^#(ok(X1), ok(X2)) -> c_36(quot^#(X1, X2)) :36 -->_1 quot^#(mark(X1), X2) -> c_35(quot^#(X1, X2)) :35 -->_1 quot^#(X1, mark(X2)) -> c_34(quot^#(X1, X2)) :34 15: active^#(quot(s(X), s(Y))) -> c_15(s^#(quot(minus(X, Y), s(Y)))) -->_1 s^#(ok(X)) -> c_27(s^#(X)) :27 -->_1 s^#(mark(X)) -> c_26(s^#(X)) :26 16: active^#(quot(0(), s(Y))) -> c_16() 17: active^#(zWquot(X1, X2)) -> c_17(zWquot^#(X1, active(X2))) -->_1 zWquot^#(ok(X1), ok(X2)) -> c_39(zWquot^#(X1, X2)) :39 -->_1 zWquot^#(mark(X1), X2) -> c_38(zWquot^#(X1, X2)) :38 -->_1 zWquot^#(X1, mark(X2)) -> c_37(zWquot^#(X1, X2)) :37 18: active^#(zWquot(X1, X2)) -> c_18(zWquot^#(active(X1), X2)) -->_1 zWquot^#(ok(X1), ok(X2)) -> c_39(zWquot^#(X1, X2)) :39 -->_1 zWquot^#(mark(X1), X2) -> c_38(zWquot^#(X1, X2)) :38 -->_1 zWquot^#(X1, mark(X2)) -> c_37(zWquot^#(X1, X2)) :37 19: active^#(zWquot(XS, nil())) -> c_19() 20: active^#(zWquot(cons(X, XS), cons(Y, YS))) -> c_20(cons^#(quot(X, Y), zWquot(XS, YS))) -->_1 cons^#(ok(X1), ok(X2)) -> c_25(cons^#(X1, X2)) :25 -->_1 cons^#(mark(X1), X2) -> c_24(cons^#(X1, X2)) :24 21: active^#(zWquot(nil(), XS)) -> c_21() 22: from^#(mark(X)) -> c_22(from^#(X)) -->_1 from^#(ok(X)) -> c_23(from^#(X)) :23 -->_1 from^#(mark(X)) -> c_22(from^#(X)) :22 23: from^#(ok(X)) -> c_23(from^#(X)) -->_1 from^#(ok(X)) -> c_23(from^#(X)) :23 -->_1 from^#(mark(X)) -> c_22(from^#(X)) :22 24: cons^#(mark(X1), X2) -> c_24(cons^#(X1, X2)) -->_1 cons^#(ok(X1), ok(X2)) -> c_25(cons^#(X1, X2)) :25 -->_1 cons^#(mark(X1), X2) -> c_24(cons^#(X1, X2)) :24 25: cons^#(ok(X1), ok(X2)) -> c_25(cons^#(X1, X2)) -->_1 cons^#(ok(X1), ok(X2)) -> c_25(cons^#(X1, X2)) :25 -->_1 cons^#(mark(X1), X2) -> c_24(cons^#(X1, X2)) :24 26: s^#(mark(X)) -> c_26(s^#(X)) -->_1 s^#(ok(X)) -> c_27(s^#(X)) :27 -->_1 s^#(mark(X)) -> c_26(s^#(X)) :26 27: s^#(ok(X)) -> c_27(s^#(X)) -->_1 s^#(ok(X)) -> c_27(s^#(X)) :27 -->_1 s^#(mark(X)) -> c_26(s^#(X)) :26 28: sel^#(X1, mark(X2)) -> c_28(sel^#(X1, X2)) -->_1 sel^#(ok(X1), ok(X2)) -> c_30(sel^#(X1, X2)) :30 -->_1 sel^#(mark(X1), X2) -> c_29(sel^#(X1, X2)) :29 -->_1 sel^#(X1, mark(X2)) -> c_28(sel^#(X1, X2)) :28 29: sel^#(mark(X1), X2) -> c_29(sel^#(X1, X2)) -->_1 sel^#(ok(X1), ok(X2)) -> c_30(sel^#(X1, X2)) :30 -->_1 sel^#(mark(X1), X2) -> c_29(sel^#(X1, X2)) :29 -->_1 sel^#(X1, mark(X2)) -> c_28(sel^#(X1, X2)) :28 30: sel^#(ok(X1), ok(X2)) -> c_30(sel^#(X1, X2)) -->_1 sel^#(ok(X1), ok(X2)) -> c_30(sel^#(X1, X2)) :30 -->_1 sel^#(mark(X1), X2) -> c_29(sel^#(X1, X2)) :29 -->_1 sel^#(X1, mark(X2)) -> c_28(sel^#(X1, X2)) :28 31: minus^#(X1, mark(X2)) -> c_31(minus^#(X1, X2)) -->_1 minus^#(ok(X1), ok(X2)) -> c_33(minus^#(X1, X2)) :33 -->_1 minus^#(mark(X1), X2) -> c_32(minus^#(X1, X2)) :32 -->_1 minus^#(X1, mark(X2)) -> c_31(minus^#(X1, X2)) :31 32: minus^#(mark(X1), X2) -> c_32(minus^#(X1, X2)) -->_1 minus^#(ok(X1), ok(X2)) -> c_33(minus^#(X1, X2)) :33 -->_1 minus^#(mark(X1), X2) -> c_32(minus^#(X1, X2)) :32 -->_1 minus^#(X1, mark(X2)) -> c_31(minus^#(X1, X2)) :31 33: minus^#(ok(X1), ok(X2)) -> c_33(minus^#(X1, X2)) -->_1 minus^#(ok(X1), ok(X2)) -> c_33(minus^#(X1, X2)) :33 -->_1 minus^#(mark(X1), X2) -> c_32(minus^#(X1, X2)) :32 -->_1 minus^#(X1, mark(X2)) -> c_31(minus^#(X1, X2)) :31 34: quot^#(X1, mark(X2)) -> c_34(quot^#(X1, X2)) -->_1 quot^#(ok(X1), ok(X2)) -> c_36(quot^#(X1, X2)) :36 -->_1 quot^#(mark(X1), X2) -> c_35(quot^#(X1, X2)) :35 -->_1 quot^#(X1, mark(X2)) -> c_34(quot^#(X1, X2)) :34 35: quot^#(mark(X1), X2) -> c_35(quot^#(X1, X2)) -->_1 quot^#(ok(X1), ok(X2)) -> c_36(quot^#(X1, X2)) :36 -->_1 quot^#(mark(X1), X2) -> c_35(quot^#(X1, X2)) :35 -->_1 quot^#(X1, mark(X2)) -> c_34(quot^#(X1, X2)) :34 36: quot^#(ok(X1), ok(X2)) -> c_36(quot^#(X1, X2)) -->_1 quot^#(ok(X1), ok(X2)) -> c_36(quot^#(X1, X2)) :36 -->_1 quot^#(mark(X1), X2) -> c_35(quot^#(X1, X2)) :35 -->_1 quot^#(X1, mark(X2)) -> c_34(quot^#(X1, X2)) :34 37: zWquot^#(X1, mark(X2)) -> c_37(zWquot^#(X1, X2)) -->_1 zWquot^#(ok(X1), ok(X2)) -> c_39(zWquot^#(X1, X2)) :39 -->_1 zWquot^#(mark(X1), X2) -> c_38(zWquot^#(X1, X2)) :38 -->_1 zWquot^#(X1, mark(X2)) -> c_37(zWquot^#(X1, X2)) :37 38: zWquot^#(mark(X1), X2) -> c_38(zWquot^#(X1, X2)) -->_1 zWquot^#(ok(X1), ok(X2)) -> c_39(zWquot^#(X1, X2)) :39 -->_1 zWquot^#(mark(X1), X2) -> c_38(zWquot^#(X1, X2)) :38 -->_1 zWquot^#(X1, mark(X2)) -> c_37(zWquot^#(X1, X2)) :37 39: zWquot^#(ok(X1), ok(X2)) -> c_39(zWquot^#(X1, X2)) -->_1 zWquot^#(ok(X1), ok(X2)) -> c_39(zWquot^#(X1, X2)) :39 -->_1 zWquot^#(mark(X1), X2) -> c_38(zWquot^#(X1, X2)) :38 -->_1 zWquot^#(X1, mark(X2)) -> c_37(zWquot^#(X1, X2)) :37 40: proper^#(from(X)) -> c_40(from^#(proper(X))) -->_1 from^#(ok(X)) -> c_23(from^#(X)) :23 -->_1 from^#(mark(X)) -> c_22(from^#(X)) :22 41: proper^#(cons(X1, X2)) -> c_41(cons^#(proper(X1), proper(X2))) -->_1 cons^#(ok(X1), ok(X2)) -> c_25(cons^#(X1, X2)) :25 -->_1 cons^#(mark(X1), X2) -> c_24(cons^#(X1, X2)) :24 42: proper^#(s(X)) -> c_42(s^#(proper(X))) -->_1 s^#(ok(X)) -> c_27(s^#(X)) :27 -->_1 s^#(mark(X)) -> c_26(s^#(X)) :26 43: proper^#(sel(X1, X2)) -> c_43(sel^#(proper(X1), proper(X2))) -->_1 sel^#(ok(X1), ok(X2)) -> c_30(sel^#(X1, X2)) :30 -->_1 sel^#(mark(X1), X2) -> c_29(sel^#(X1, X2)) :29 -->_1 sel^#(X1, mark(X2)) -> c_28(sel^#(X1, X2)) :28 44: proper^#(0()) -> c_44() 45: proper^#(minus(X1, X2)) -> c_45(minus^#(proper(X1), proper(X2))) -->_1 minus^#(ok(X1), ok(X2)) -> c_33(minus^#(X1, X2)) :33 -->_1 minus^#(mark(X1), X2) -> c_32(minus^#(X1, X2)) :32 -->_1 minus^#(X1, mark(X2)) -> c_31(minus^#(X1, X2)) :31 46: proper^#(quot(X1, X2)) -> c_46(quot^#(proper(X1), proper(X2))) -->_1 quot^#(ok(X1), ok(X2)) -> c_36(quot^#(X1, X2)) :36 -->_1 quot^#(mark(X1), X2) -> c_35(quot^#(X1, X2)) :35 -->_1 quot^#(X1, mark(X2)) -> c_34(quot^#(X1, X2)) :34 47: proper^#(zWquot(X1, X2)) -> c_47(zWquot^#(proper(X1), proper(X2))) -->_1 zWquot^#(ok(X1), ok(X2)) -> c_39(zWquot^#(X1, X2)) :39 -->_1 zWquot^#(mark(X1), X2) -> c_38(zWquot^#(X1, X2)) :38 -->_1 zWquot^#(X1, mark(X2)) -> c_37(zWquot^#(X1, X2)) :37 48: proper^#(nil()) -> c_48() 49: top^#(mark(X)) -> c_49(top^#(proper(X))) -->_1 top^#(ok(X)) -> c_50(top^#(active(X))) :50 -->_1 top^#(mark(X)) -> c_49(top^#(proper(X))) :49 50: top^#(ok(X)) -> c_50(top^#(active(X))) -->_1 top^#(ok(X)) -> c_50(top^#(active(X))) :50 -->_1 top^#(mark(X)) -> c_49(top^#(proper(X))) :49 Only the nodes {22,23,24,25,26,27,28,30,29,31,33,32,34,36,35,37,39,38,44,48,49,50} are reachable from nodes {22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,44,48,49,50} that start derivation from marked basic terms. The nodes not reachable are removed from the problem. We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { from^#(mark(X)) -> c_22(from^#(X)) , from^#(ok(X)) -> c_23(from^#(X)) , cons^#(mark(X1), X2) -> c_24(cons^#(X1, X2)) , cons^#(ok(X1), ok(X2)) -> c_25(cons^#(X1, X2)) , s^#(mark(X)) -> c_26(s^#(X)) , s^#(ok(X)) -> c_27(s^#(X)) , sel^#(X1, mark(X2)) -> c_28(sel^#(X1, X2)) , sel^#(mark(X1), X2) -> c_29(sel^#(X1, X2)) , sel^#(ok(X1), ok(X2)) -> c_30(sel^#(X1, X2)) , minus^#(X1, mark(X2)) -> c_31(minus^#(X1, X2)) , minus^#(mark(X1), X2) -> c_32(minus^#(X1, X2)) , minus^#(ok(X1), ok(X2)) -> c_33(minus^#(X1, X2)) , quot^#(X1, mark(X2)) -> c_34(quot^#(X1, X2)) , quot^#(mark(X1), X2) -> c_35(quot^#(X1, X2)) , quot^#(ok(X1), ok(X2)) -> c_36(quot^#(X1, X2)) , zWquot^#(X1, mark(X2)) -> c_37(zWquot^#(X1, X2)) , zWquot^#(mark(X1), X2) -> c_38(zWquot^#(X1, X2)) , zWquot^#(ok(X1), ok(X2)) -> c_39(zWquot^#(X1, X2)) , proper^#(0()) -> c_44() , proper^#(nil()) -> c_48() , top^#(mark(X)) -> c_49(top^#(proper(X))) , top^#(ok(X)) -> c_50(top^#(active(X))) } Strict Trs: { active(from(X)) -> from(active(X)) , active(from(X)) -> mark(cons(X, from(s(X)))) , active(cons(X1, X2)) -> cons(active(X1), X2) , active(s(X)) -> s(active(X)) , active(sel(X1, X2)) -> sel(X1, active(X2)) , active(sel(X1, X2)) -> sel(active(X1), X2) , active(sel(s(N), cons(X, XS))) -> mark(sel(N, XS)) , active(sel(0(), cons(X, XS))) -> mark(X) , active(minus(X1, X2)) -> minus(X1, active(X2)) , active(minus(X1, X2)) -> minus(active(X1), X2) , active(minus(X, 0())) -> mark(0()) , active(minus(s(X), s(Y))) -> mark(minus(X, Y)) , active(quot(X1, X2)) -> quot(X1, active(X2)) , active(quot(X1, X2)) -> quot(active(X1), X2) , active(quot(s(X), s(Y))) -> mark(s(quot(minus(X, Y), s(Y)))) , active(quot(0(), s(Y))) -> mark(0()) , active(zWquot(X1, X2)) -> zWquot(X1, active(X2)) , active(zWquot(X1, X2)) -> zWquot(active(X1), X2) , active(zWquot(XS, nil())) -> mark(nil()) , active(zWquot(cons(X, XS), cons(Y, YS))) -> mark(cons(quot(X, Y), zWquot(XS, YS))) , active(zWquot(nil(), XS)) -> mark(nil()) , from(mark(X)) -> mark(from(X)) , from(ok(X)) -> ok(from(X)) , cons(mark(X1), X2) -> mark(cons(X1, X2)) , cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) , s(mark(X)) -> mark(s(X)) , s(ok(X)) -> ok(s(X)) , sel(X1, mark(X2)) -> mark(sel(X1, X2)) , sel(mark(X1), X2) -> mark(sel(X1, X2)) , sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) , minus(X1, mark(X2)) -> mark(minus(X1, X2)) , minus(mark(X1), X2) -> mark(minus(X1, X2)) , minus(ok(X1), ok(X2)) -> ok(minus(X1, X2)) , quot(X1, mark(X2)) -> mark(quot(X1, X2)) , quot(mark(X1), X2) -> mark(quot(X1, X2)) , quot(ok(X1), ok(X2)) -> ok(quot(X1, X2)) , zWquot(X1, mark(X2)) -> mark(zWquot(X1, X2)) , zWquot(mark(X1), X2) -> mark(zWquot(X1, X2)) , zWquot(ok(X1), ok(X2)) -> ok(zWquot(X1, X2)) , proper(from(X)) -> from(proper(X)) , proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) , proper(s(X)) -> s(proper(X)) , proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) , proper(0()) -> ok(0()) , proper(minus(X1, X2)) -> minus(proper(X1), proper(X2)) , proper(quot(X1, X2)) -> quot(proper(X1), proper(X2)) , proper(zWquot(X1, X2)) -> zWquot(proper(X1), proper(X2)) , proper(nil()) -> ok(nil()) , top(mark(X)) -> top(proper(X)) , top(ok(X)) -> top(active(X)) } Obligation: runtime complexity Answer: MAYBE We estimate the number of application of {19,20} by applications of Pre({19,20}) = {}. Here rules are labeled as follows: DPs: { 1: from^#(mark(X)) -> c_22(from^#(X)) , 2: from^#(ok(X)) -> c_23(from^#(X)) , 3: cons^#(mark(X1), X2) -> c_24(cons^#(X1, X2)) , 4: cons^#(ok(X1), ok(X2)) -> c_25(cons^#(X1, X2)) , 5: s^#(mark(X)) -> c_26(s^#(X)) , 6: s^#(ok(X)) -> c_27(s^#(X)) , 7: sel^#(X1, mark(X2)) -> c_28(sel^#(X1, X2)) , 8: sel^#(mark(X1), X2) -> c_29(sel^#(X1, X2)) , 9: sel^#(ok(X1), ok(X2)) -> c_30(sel^#(X1, X2)) , 10: minus^#(X1, mark(X2)) -> c_31(minus^#(X1, X2)) , 11: minus^#(mark(X1), X2) -> c_32(minus^#(X1, X2)) , 12: minus^#(ok(X1), ok(X2)) -> c_33(minus^#(X1, X2)) , 13: quot^#(X1, mark(X2)) -> c_34(quot^#(X1, X2)) , 14: quot^#(mark(X1), X2) -> c_35(quot^#(X1, X2)) , 15: quot^#(ok(X1), ok(X2)) -> c_36(quot^#(X1, X2)) , 16: zWquot^#(X1, mark(X2)) -> c_37(zWquot^#(X1, X2)) , 17: zWquot^#(mark(X1), X2) -> c_38(zWquot^#(X1, X2)) , 18: zWquot^#(ok(X1), ok(X2)) -> c_39(zWquot^#(X1, X2)) , 19: proper^#(0()) -> c_44() , 20: proper^#(nil()) -> c_48() , 21: top^#(mark(X)) -> c_49(top^#(proper(X))) , 22: top^#(ok(X)) -> c_50(top^#(active(X))) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { from^#(mark(X)) -> c_22(from^#(X)) , from^#(ok(X)) -> c_23(from^#(X)) , cons^#(mark(X1), X2) -> c_24(cons^#(X1, X2)) , cons^#(ok(X1), ok(X2)) -> c_25(cons^#(X1, X2)) , s^#(mark(X)) -> c_26(s^#(X)) , s^#(ok(X)) -> c_27(s^#(X)) , sel^#(X1, mark(X2)) -> c_28(sel^#(X1, X2)) , sel^#(mark(X1), X2) -> c_29(sel^#(X1, X2)) , sel^#(ok(X1), ok(X2)) -> c_30(sel^#(X1, X2)) , minus^#(X1, mark(X2)) -> c_31(minus^#(X1, X2)) , minus^#(mark(X1), X2) -> c_32(minus^#(X1, X2)) , minus^#(ok(X1), ok(X2)) -> c_33(minus^#(X1, X2)) , quot^#(X1, mark(X2)) -> c_34(quot^#(X1, X2)) , quot^#(mark(X1), X2) -> c_35(quot^#(X1, X2)) , quot^#(ok(X1), ok(X2)) -> c_36(quot^#(X1, X2)) , zWquot^#(X1, mark(X2)) -> c_37(zWquot^#(X1, X2)) , zWquot^#(mark(X1), X2) -> c_38(zWquot^#(X1, X2)) , zWquot^#(ok(X1), ok(X2)) -> c_39(zWquot^#(X1, X2)) , top^#(mark(X)) -> c_49(top^#(proper(X))) , top^#(ok(X)) -> c_50(top^#(active(X))) } Strict Trs: { active(from(X)) -> from(active(X)) , active(from(X)) -> mark(cons(X, from(s(X)))) , active(cons(X1, X2)) -> cons(active(X1), X2) , active(s(X)) -> s(active(X)) , active(sel(X1, X2)) -> sel(X1, active(X2)) , active(sel(X1, X2)) -> sel(active(X1), X2) , active(sel(s(N), cons(X, XS))) -> mark(sel(N, XS)) , active(sel(0(), cons(X, XS))) -> mark(X) , active(minus(X1, X2)) -> minus(X1, active(X2)) , active(minus(X1, X2)) -> minus(active(X1), X2) , active(minus(X, 0())) -> mark(0()) , active(minus(s(X), s(Y))) -> mark(minus(X, Y)) , active(quot(X1, X2)) -> quot(X1, active(X2)) , active(quot(X1, X2)) -> quot(active(X1), X2) , active(quot(s(X), s(Y))) -> mark(s(quot(minus(X, Y), s(Y)))) , active(quot(0(), s(Y))) -> mark(0()) , active(zWquot(X1, X2)) -> zWquot(X1, active(X2)) , active(zWquot(X1, X2)) -> zWquot(active(X1), X2) , active(zWquot(XS, nil())) -> mark(nil()) , active(zWquot(cons(X, XS), cons(Y, YS))) -> mark(cons(quot(X, Y), zWquot(XS, YS))) , active(zWquot(nil(), XS)) -> mark(nil()) , from(mark(X)) -> mark(from(X)) , from(ok(X)) -> ok(from(X)) , cons(mark(X1), X2) -> mark(cons(X1, X2)) , cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) , s(mark(X)) -> mark(s(X)) , s(ok(X)) -> ok(s(X)) , sel(X1, mark(X2)) -> mark(sel(X1, X2)) , sel(mark(X1), X2) -> mark(sel(X1, X2)) , sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) , minus(X1, mark(X2)) -> mark(minus(X1, X2)) , minus(mark(X1), X2) -> mark(minus(X1, X2)) , minus(ok(X1), ok(X2)) -> ok(minus(X1, X2)) , quot(X1, mark(X2)) -> mark(quot(X1, X2)) , quot(mark(X1), X2) -> mark(quot(X1, X2)) , quot(ok(X1), ok(X2)) -> ok(quot(X1, X2)) , zWquot(X1, mark(X2)) -> mark(zWquot(X1, X2)) , zWquot(mark(X1), X2) -> mark(zWquot(X1, X2)) , zWquot(ok(X1), ok(X2)) -> ok(zWquot(X1, X2)) , proper(from(X)) -> from(proper(X)) , proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) , proper(s(X)) -> s(proper(X)) , proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) , proper(0()) -> ok(0()) , proper(minus(X1, X2)) -> minus(proper(X1), proper(X2)) , proper(quot(X1, X2)) -> quot(proper(X1), proper(X2)) , proper(zWquot(X1, X2)) -> zWquot(proper(X1), proper(X2)) , proper(nil()) -> ok(nil()) , top(mark(X)) -> top(proper(X)) , top(ok(X)) -> top(active(X)) } Weak DPs: { proper^#(0()) -> c_44() , proper^#(nil()) -> c_48() } Obligation: runtime complexity Answer: MAYBE Empty strict component of the problem is NOT empty. Arrrr..