MAYBE We are left with following problem, upon which TcT provides the certificate MAYBE. Strict Trs: { active(terms(X)) -> terms(active(X)) , active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))) , active(cons(X1, X2)) -> cons(active(X1), X2) , active(recip(X)) -> recip(active(X)) , active(sqr(X)) -> sqr(active(X)) , active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))) , active(sqr(0())) -> mark(0()) , active(s(X)) -> s(active(X)) , active(add(X1, X2)) -> add(X1, active(X2)) , active(add(X1, X2)) -> add(active(X1), X2) , active(add(s(X), Y)) -> mark(s(add(X, Y))) , active(add(0(), X)) -> mark(X) , active(dbl(X)) -> dbl(active(X)) , active(dbl(s(X))) -> mark(s(s(dbl(X)))) , active(dbl(0())) -> mark(0()) , active(first(X1, X2)) -> first(X1, active(X2)) , active(first(X1, X2)) -> first(active(X1), X2) , active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))) , active(first(0(), X)) -> mark(nil()) , terms(mark(X)) -> mark(terms(X)) , terms(ok(X)) -> ok(terms(X)) , cons(mark(X1), X2) -> mark(cons(X1, X2)) , cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) , recip(mark(X)) -> mark(recip(X)) , recip(ok(X)) -> ok(recip(X)) , sqr(mark(X)) -> mark(sqr(X)) , sqr(ok(X)) -> ok(sqr(X)) , s(mark(X)) -> mark(s(X)) , s(ok(X)) -> ok(s(X)) , add(X1, mark(X2)) -> mark(add(X1, X2)) , add(mark(X1), X2) -> mark(add(X1, X2)) , add(ok(X1), ok(X2)) -> ok(add(X1, X2)) , dbl(mark(X)) -> mark(dbl(X)) , dbl(ok(X)) -> ok(dbl(X)) , first(X1, mark(X2)) -> mark(first(X1, X2)) , first(mark(X1), X2) -> mark(first(X1, X2)) , first(ok(X1), ok(X2)) -> ok(first(X1, X2)) , proper(terms(X)) -> terms(proper(X)) , proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) , proper(recip(X)) -> recip(proper(X)) , proper(sqr(X)) -> sqr(proper(X)) , proper(s(X)) -> s(proper(X)) , proper(0()) -> ok(0()) , proper(add(X1, X2)) -> add(proper(X1), proper(X2)) , proper(dbl(X)) -> dbl(proper(X)) , proper(first(X1, X2)) -> first(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) '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 2) '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 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 perSymbol-enrichment and initial automaton 'match'' failed due to the following reason: match-boundness of the problem could not be verified. 2) 'Bounds with minimal-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^#(terms(X)) -> c_1(terms^#(active(X))) , active^#(terms(N)) -> c_2(cons^#(recip(sqr(N)), terms(s(N)))) , active^#(cons(X1, X2)) -> c_3(cons^#(active(X1), X2)) , active^#(recip(X)) -> c_4(recip^#(active(X))) , active^#(sqr(X)) -> c_5(sqr^#(active(X))) , active^#(sqr(s(X))) -> c_6(s^#(add(sqr(X), dbl(X)))) , active^#(sqr(0())) -> c_7() , active^#(s(X)) -> c_8(s^#(active(X))) , active^#(add(X1, X2)) -> c_9(add^#(X1, active(X2))) , active^#(add(X1, X2)) -> c_10(add^#(active(X1), X2)) , active^#(add(s(X), Y)) -> c_11(s^#(add(X, Y))) , active^#(add(0(), X)) -> c_12(X) , active^#(dbl(X)) -> c_13(dbl^#(active(X))) , active^#(dbl(s(X))) -> c_14(s^#(s(dbl(X)))) , active^#(dbl(0())) -> c_15() , active^#(first(X1, X2)) -> c_16(first^#(X1, active(X2))) , active^#(first(X1, X2)) -> c_17(first^#(active(X1), X2)) , active^#(first(s(X), cons(Y, Z))) -> c_18(cons^#(Y, first(X, Z))) , active^#(first(0(), X)) -> c_19() , terms^#(mark(X)) -> c_20(terms^#(X)) , terms^#(ok(X)) -> c_21(terms^#(X)) , cons^#(mark(X1), X2) -> c_22(cons^#(X1, X2)) , cons^#(ok(X1), ok(X2)) -> c_23(cons^#(X1, X2)) , recip^#(mark(X)) -> c_24(recip^#(X)) , recip^#(ok(X)) -> c_25(recip^#(X)) , sqr^#(mark(X)) -> c_26(sqr^#(X)) , sqr^#(ok(X)) -> c_27(sqr^#(X)) , s^#(mark(X)) -> c_28(s^#(X)) , s^#(ok(X)) -> c_29(s^#(X)) , add^#(X1, mark(X2)) -> c_30(add^#(X1, X2)) , add^#(mark(X1), X2) -> c_31(add^#(X1, X2)) , add^#(ok(X1), ok(X2)) -> c_32(add^#(X1, X2)) , dbl^#(mark(X)) -> c_33(dbl^#(X)) , dbl^#(ok(X)) -> c_34(dbl^#(X)) , first^#(X1, mark(X2)) -> c_35(first^#(X1, X2)) , first^#(mark(X1), X2) -> c_36(first^#(X1, X2)) , first^#(ok(X1), ok(X2)) -> c_37(first^#(X1, X2)) , proper^#(terms(X)) -> c_38(terms^#(proper(X))) , proper^#(cons(X1, X2)) -> c_39(cons^#(proper(X1), proper(X2))) , proper^#(recip(X)) -> c_40(recip^#(proper(X))) , proper^#(sqr(X)) -> c_41(sqr^#(proper(X))) , proper^#(s(X)) -> c_42(s^#(proper(X))) , proper^#(0()) -> c_43() , proper^#(add(X1, X2)) -> c_44(add^#(proper(X1), proper(X2))) , proper^#(dbl(X)) -> c_45(dbl^#(proper(X))) , proper^#(first(X1, X2)) -> c_46(first^#(proper(X1), proper(X2))) , proper^#(nil()) -> c_47() , top^#(mark(X)) -> c_48(top^#(proper(X))) , top^#(ok(X)) -> c_49(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^#(terms(X)) -> c_1(terms^#(active(X))) , active^#(terms(N)) -> c_2(cons^#(recip(sqr(N)), terms(s(N)))) , active^#(cons(X1, X2)) -> c_3(cons^#(active(X1), X2)) , active^#(recip(X)) -> c_4(recip^#(active(X))) , active^#(sqr(X)) -> c_5(sqr^#(active(X))) , active^#(sqr(s(X))) -> c_6(s^#(add(sqr(X), dbl(X)))) , active^#(sqr(0())) -> c_7() , active^#(s(X)) -> c_8(s^#(active(X))) , active^#(add(X1, X2)) -> c_9(add^#(X1, active(X2))) , active^#(add(X1, X2)) -> c_10(add^#(active(X1), X2)) , active^#(add(s(X), Y)) -> c_11(s^#(add(X, Y))) , active^#(add(0(), X)) -> c_12(X) , active^#(dbl(X)) -> c_13(dbl^#(active(X))) , active^#(dbl(s(X))) -> c_14(s^#(s(dbl(X)))) , active^#(dbl(0())) -> c_15() , active^#(first(X1, X2)) -> c_16(first^#(X1, active(X2))) , active^#(first(X1, X2)) -> c_17(first^#(active(X1), X2)) , active^#(first(s(X), cons(Y, Z))) -> c_18(cons^#(Y, first(X, Z))) , active^#(first(0(), X)) -> c_19() , terms^#(mark(X)) -> c_20(terms^#(X)) , terms^#(ok(X)) -> c_21(terms^#(X)) , cons^#(mark(X1), X2) -> c_22(cons^#(X1, X2)) , cons^#(ok(X1), ok(X2)) -> c_23(cons^#(X1, X2)) , recip^#(mark(X)) -> c_24(recip^#(X)) , recip^#(ok(X)) -> c_25(recip^#(X)) , sqr^#(mark(X)) -> c_26(sqr^#(X)) , sqr^#(ok(X)) -> c_27(sqr^#(X)) , s^#(mark(X)) -> c_28(s^#(X)) , s^#(ok(X)) -> c_29(s^#(X)) , add^#(X1, mark(X2)) -> c_30(add^#(X1, X2)) , add^#(mark(X1), X2) -> c_31(add^#(X1, X2)) , add^#(ok(X1), ok(X2)) -> c_32(add^#(X1, X2)) , dbl^#(mark(X)) -> c_33(dbl^#(X)) , dbl^#(ok(X)) -> c_34(dbl^#(X)) , first^#(X1, mark(X2)) -> c_35(first^#(X1, X2)) , first^#(mark(X1), X2) -> c_36(first^#(X1, X2)) , first^#(ok(X1), ok(X2)) -> c_37(first^#(X1, X2)) , proper^#(terms(X)) -> c_38(terms^#(proper(X))) , proper^#(cons(X1, X2)) -> c_39(cons^#(proper(X1), proper(X2))) , proper^#(recip(X)) -> c_40(recip^#(proper(X))) , proper^#(sqr(X)) -> c_41(sqr^#(proper(X))) , proper^#(s(X)) -> c_42(s^#(proper(X))) , proper^#(0()) -> c_43() , proper^#(add(X1, X2)) -> c_44(add^#(proper(X1), proper(X2))) , proper^#(dbl(X)) -> c_45(dbl^#(proper(X))) , proper^#(first(X1, X2)) -> c_46(first^#(proper(X1), proper(X2))) , proper^#(nil()) -> c_47() , top^#(mark(X)) -> c_48(top^#(proper(X))) , top^#(ok(X)) -> c_49(top^#(active(X))) } Strict Trs: { active(terms(X)) -> terms(active(X)) , active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))) , active(cons(X1, X2)) -> cons(active(X1), X2) , active(recip(X)) -> recip(active(X)) , active(sqr(X)) -> sqr(active(X)) , active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))) , active(sqr(0())) -> mark(0()) , active(s(X)) -> s(active(X)) , active(add(X1, X2)) -> add(X1, active(X2)) , active(add(X1, X2)) -> add(active(X1), X2) , active(add(s(X), Y)) -> mark(s(add(X, Y))) , active(add(0(), X)) -> mark(X) , active(dbl(X)) -> dbl(active(X)) , active(dbl(s(X))) -> mark(s(s(dbl(X)))) , active(dbl(0())) -> mark(0()) , active(first(X1, X2)) -> first(X1, active(X2)) , active(first(X1, X2)) -> first(active(X1), X2) , active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))) , active(first(0(), X)) -> mark(nil()) , terms(mark(X)) -> mark(terms(X)) , terms(ok(X)) -> ok(terms(X)) , cons(mark(X1), X2) -> mark(cons(X1, X2)) , cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) , recip(mark(X)) -> mark(recip(X)) , recip(ok(X)) -> ok(recip(X)) , sqr(mark(X)) -> mark(sqr(X)) , sqr(ok(X)) -> ok(sqr(X)) , s(mark(X)) -> mark(s(X)) , s(ok(X)) -> ok(s(X)) , add(X1, mark(X2)) -> mark(add(X1, X2)) , add(mark(X1), X2) -> mark(add(X1, X2)) , add(ok(X1), ok(X2)) -> ok(add(X1, X2)) , dbl(mark(X)) -> mark(dbl(X)) , dbl(ok(X)) -> ok(dbl(X)) , first(X1, mark(X2)) -> mark(first(X1, X2)) , first(mark(X1), X2) -> mark(first(X1, X2)) , first(ok(X1), ok(X2)) -> ok(first(X1, X2)) , proper(terms(X)) -> terms(proper(X)) , proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) , proper(recip(X)) -> recip(proper(X)) , proper(sqr(X)) -> sqr(proper(X)) , proper(s(X)) -> s(proper(X)) , proper(0()) -> ok(0()) , proper(add(X1, X2)) -> add(proper(X1), proper(X2)) , proper(dbl(X)) -> dbl(proper(X)) , proper(first(X1, X2)) -> first(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^#(terms(X)) -> c_1(terms^#(active(X))) -->_1 terms^#(ok(X)) -> c_21(terms^#(X)) :21 -->_1 terms^#(mark(X)) -> c_20(terms^#(X)) :20 2: active^#(terms(N)) -> c_2(cons^#(recip(sqr(N)), terms(s(N)))) -->_1 cons^#(ok(X1), ok(X2)) -> c_23(cons^#(X1, X2)) :23 -->_1 cons^#(mark(X1), X2) -> c_22(cons^#(X1, X2)) :22 3: active^#(cons(X1, X2)) -> c_3(cons^#(active(X1), X2)) -->_1 cons^#(ok(X1), ok(X2)) -> c_23(cons^#(X1, X2)) :23 -->_1 cons^#(mark(X1), X2) -> c_22(cons^#(X1, X2)) :22 4: active^#(recip(X)) -> c_4(recip^#(active(X))) -->_1 recip^#(ok(X)) -> c_25(recip^#(X)) :25 -->_1 recip^#(mark(X)) -> c_24(recip^#(X)) :24 5: active^#(sqr(X)) -> c_5(sqr^#(active(X))) -->_1 sqr^#(ok(X)) -> c_27(sqr^#(X)) :27 -->_1 sqr^#(mark(X)) -> c_26(sqr^#(X)) :26 6: active^#(sqr(s(X))) -> c_6(s^#(add(sqr(X), dbl(X)))) -->_1 s^#(ok(X)) -> c_29(s^#(X)) :29 -->_1 s^#(mark(X)) -> c_28(s^#(X)) :28 7: active^#(sqr(0())) -> c_7() 8: active^#(s(X)) -> c_8(s^#(active(X))) -->_1 s^#(ok(X)) -> c_29(s^#(X)) :29 -->_1 s^#(mark(X)) -> c_28(s^#(X)) :28 9: active^#(add(X1, X2)) -> c_9(add^#(X1, active(X2))) -->_1 add^#(ok(X1), ok(X2)) -> c_32(add^#(X1, X2)) :32 -->_1 add^#(mark(X1), X2) -> c_31(add^#(X1, X2)) :31 -->_1 add^#(X1, mark(X2)) -> c_30(add^#(X1, X2)) :30 10: active^#(add(X1, X2)) -> c_10(add^#(active(X1), X2)) -->_1 add^#(ok(X1), ok(X2)) -> c_32(add^#(X1, X2)) :32 -->_1 add^#(mark(X1), X2) -> c_31(add^#(X1, X2)) :31 -->_1 add^#(X1, mark(X2)) -> c_30(add^#(X1, X2)) :30 11: active^#(add(s(X), Y)) -> c_11(s^#(add(X, Y))) -->_1 s^#(ok(X)) -> c_29(s^#(X)) :29 -->_1 s^#(mark(X)) -> c_28(s^#(X)) :28 12: active^#(add(0(), X)) -> c_12(X) -->_1 top^#(ok(X)) -> c_49(top^#(active(X))) :49 -->_1 top^#(mark(X)) -> c_48(top^#(proper(X))) :48 -->_1 proper^#(first(X1, X2)) -> c_46(first^#(proper(X1), proper(X2))) :46 -->_1 proper^#(dbl(X)) -> c_45(dbl^#(proper(X))) :45 -->_1 proper^#(add(X1, X2)) -> c_44(add^#(proper(X1), proper(X2))) :44 -->_1 proper^#(s(X)) -> c_42(s^#(proper(X))) :42 -->_1 proper^#(sqr(X)) -> c_41(sqr^#(proper(X))) :41 -->_1 proper^#(recip(X)) -> c_40(recip^#(proper(X))) :40 -->_1 proper^#(cons(X1, X2)) -> c_39(cons^#(proper(X1), proper(X2))) :39 -->_1 proper^#(terms(X)) -> c_38(terms^#(proper(X))) :38 -->_1 first^#(ok(X1), ok(X2)) -> c_37(first^#(X1, X2)) :37 -->_1 first^#(mark(X1), X2) -> c_36(first^#(X1, X2)) :36 -->_1 first^#(X1, mark(X2)) -> c_35(first^#(X1, X2)) :35 -->_1 dbl^#(ok(X)) -> c_34(dbl^#(X)) :34 -->_1 dbl^#(mark(X)) -> c_33(dbl^#(X)) :33 -->_1 add^#(ok(X1), ok(X2)) -> c_32(add^#(X1, X2)) :32 -->_1 add^#(mark(X1), X2) -> c_31(add^#(X1, X2)) :31 -->_1 add^#(X1, mark(X2)) -> c_30(add^#(X1, X2)) :30 -->_1 s^#(ok(X)) -> c_29(s^#(X)) :29 -->_1 s^#(mark(X)) -> c_28(s^#(X)) :28 -->_1 sqr^#(ok(X)) -> c_27(sqr^#(X)) :27 -->_1 sqr^#(mark(X)) -> c_26(sqr^#(X)) :26 -->_1 recip^#(ok(X)) -> c_25(recip^#(X)) :25 -->_1 recip^#(mark(X)) -> c_24(recip^#(X)) :24 -->_1 cons^#(ok(X1), ok(X2)) -> c_23(cons^#(X1, X2)) :23 -->_1 cons^#(mark(X1), X2) -> c_22(cons^#(X1, X2)) :22 -->_1 terms^#(ok(X)) -> c_21(terms^#(X)) :21 -->_1 terms^#(mark(X)) -> c_20(terms^#(X)) :20 -->_1 active^#(first(s(X), cons(Y, Z))) -> c_18(cons^#(Y, first(X, Z))) :18 -->_1 active^#(first(X1, X2)) -> c_17(first^#(active(X1), X2)) :17 -->_1 active^#(first(X1, X2)) -> c_16(first^#(X1, active(X2))) :16 -->_1 active^#(dbl(s(X))) -> c_14(s^#(s(dbl(X)))) :14 -->_1 active^#(dbl(X)) -> c_13(dbl^#(active(X))) :13 -->_1 proper^#(nil()) -> c_47() :47 -->_1 proper^#(0()) -> c_43() :43 -->_1 active^#(first(0(), X)) -> c_19() :19 -->_1 active^#(dbl(0())) -> c_15() :15 -->_1 active^#(add(0(), X)) -> c_12(X) :12 -->_1 active^#(add(s(X), Y)) -> c_11(s^#(add(X, Y))) :11 -->_1 active^#(add(X1, X2)) -> c_10(add^#(active(X1), X2)) :10 -->_1 active^#(add(X1, X2)) -> c_9(add^#(X1, active(X2))) :9 -->_1 active^#(s(X)) -> c_8(s^#(active(X))) :8 -->_1 active^#(sqr(0())) -> c_7() :7 -->_1 active^#(sqr(s(X))) -> c_6(s^#(add(sqr(X), dbl(X)))) :6 -->_1 active^#(sqr(X)) -> c_5(sqr^#(active(X))) :5 -->_1 active^#(recip(X)) -> c_4(recip^#(active(X))) :4 -->_1 active^#(cons(X1, X2)) -> c_3(cons^#(active(X1), X2)) :3 -->_1 active^#(terms(N)) -> c_2(cons^#(recip(sqr(N)), terms(s(N)))) :2 -->_1 active^#(terms(X)) -> c_1(terms^#(active(X))) :1 13: active^#(dbl(X)) -> c_13(dbl^#(active(X))) -->_1 dbl^#(ok(X)) -> c_34(dbl^#(X)) :34 -->_1 dbl^#(mark(X)) -> c_33(dbl^#(X)) :33 14: active^#(dbl(s(X))) -> c_14(s^#(s(dbl(X)))) -->_1 s^#(ok(X)) -> c_29(s^#(X)) :29 -->_1 s^#(mark(X)) -> c_28(s^#(X)) :28 15: active^#(dbl(0())) -> c_15() 16: active^#(first(X1, X2)) -> c_16(first^#(X1, active(X2))) -->_1 first^#(ok(X1), ok(X2)) -> c_37(first^#(X1, X2)) :37 -->_1 first^#(mark(X1), X2) -> c_36(first^#(X1, X2)) :36 -->_1 first^#(X1, mark(X2)) -> c_35(first^#(X1, X2)) :35 17: active^#(first(X1, X2)) -> c_17(first^#(active(X1), X2)) -->_1 first^#(ok(X1), ok(X2)) -> c_37(first^#(X1, X2)) :37 -->_1 first^#(mark(X1), X2) -> c_36(first^#(X1, X2)) :36 -->_1 first^#(X1, mark(X2)) -> c_35(first^#(X1, X2)) :35 18: active^#(first(s(X), cons(Y, Z))) -> c_18(cons^#(Y, first(X, Z))) -->_1 cons^#(ok(X1), ok(X2)) -> c_23(cons^#(X1, X2)) :23 -->_1 cons^#(mark(X1), X2) -> c_22(cons^#(X1, X2)) :22 19: active^#(first(0(), X)) -> c_19() 20: terms^#(mark(X)) -> c_20(terms^#(X)) -->_1 terms^#(ok(X)) -> c_21(terms^#(X)) :21 -->_1 terms^#(mark(X)) -> c_20(terms^#(X)) :20 21: terms^#(ok(X)) -> c_21(terms^#(X)) -->_1 terms^#(ok(X)) -> c_21(terms^#(X)) :21 -->_1 terms^#(mark(X)) -> c_20(terms^#(X)) :20 22: cons^#(mark(X1), X2) -> c_22(cons^#(X1, X2)) -->_1 cons^#(ok(X1), ok(X2)) -> c_23(cons^#(X1, X2)) :23 -->_1 cons^#(mark(X1), X2) -> c_22(cons^#(X1, X2)) :22 23: cons^#(ok(X1), ok(X2)) -> c_23(cons^#(X1, X2)) -->_1 cons^#(ok(X1), ok(X2)) -> c_23(cons^#(X1, X2)) :23 -->_1 cons^#(mark(X1), X2) -> c_22(cons^#(X1, X2)) :22 24: recip^#(mark(X)) -> c_24(recip^#(X)) -->_1 recip^#(ok(X)) -> c_25(recip^#(X)) :25 -->_1 recip^#(mark(X)) -> c_24(recip^#(X)) :24 25: recip^#(ok(X)) -> c_25(recip^#(X)) -->_1 recip^#(ok(X)) -> c_25(recip^#(X)) :25 -->_1 recip^#(mark(X)) -> c_24(recip^#(X)) :24 26: sqr^#(mark(X)) -> c_26(sqr^#(X)) -->_1 sqr^#(ok(X)) -> c_27(sqr^#(X)) :27 -->_1 sqr^#(mark(X)) -> c_26(sqr^#(X)) :26 27: sqr^#(ok(X)) -> c_27(sqr^#(X)) -->_1 sqr^#(ok(X)) -> c_27(sqr^#(X)) :27 -->_1 sqr^#(mark(X)) -> c_26(sqr^#(X)) :26 28: s^#(mark(X)) -> c_28(s^#(X)) -->_1 s^#(ok(X)) -> c_29(s^#(X)) :29 -->_1 s^#(mark(X)) -> c_28(s^#(X)) :28 29: s^#(ok(X)) -> c_29(s^#(X)) -->_1 s^#(ok(X)) -> c_29(s^#(X)) :29 -->_1 s^#(mark(X)) -> c_28(s^#(X)) :28 30: add^#(X1, mark(X2)) -> c_30(add^#(X1, X2)) -->_1 add^#(ok(X1), ok(X2)) -> c_32(add^#(X1, X2)) :32 -->_1 add^#(mark(X1), X2) -> c_31(add^#(X1, X2)) :31 -->_1 add^#(X1, mark(X2)) -> c_30(add^#(X1, X2)) :30 31: add^#(mark(X1), X2) -> c_31(add^#(X1, X2)) -->_1 add^#(ok(X1), ok(X2)) -> c_32(add^#(X1, X2)) :32 -->_1 add^#(mark(X1), X2) -> c_31(add^#(X1, X2)) :31 -->_1 add^#(X1, mark(X2)) -> c_30(add^#(X1, X2)) :30 32: add^#(ok(X1), ok(X2)) -> c_32(add^#(X1, X2)) -->_1 add^#(ok(X1), ok(X2)) -> c_32(add^#(X1, X2)) :32 -->_1 add^#(mark(X1), X2) -> c_31(add^#(X1, X2)) :31 -->_1 add^#(X1, mark(X2)) -> c_30(add^#(X1, X2)) :30 33: dbl^#(mark(X)) -> c_33(dbl^#(X)) -->_1 dbl^#(ok(X)) -> c_34(dbl^#(X)) :34 -->_1 dbl^#(mark(X)) -> c_33(dbl^#(X)) :33 34: dbl^#(ok(X)) -> c_34(dbl^#(X)) -->_1 dbl^#(ok(X)) -> c_34(dbl^#(X)) :34 -->_1 dbl^#(mark(X)) -> c_33(dbl^#(X)) :33 35: first^#(X1, mark(X2)) -> c_35(first^#(X1, X2)) -->_1 first^#(ok(X1), ok(X2)) -> c_37(first^#(X1, X2)) :37 -->_1 first^#(mark(X1), X2) -> c_36(first^#(X1, X2)) :36 -->_1 first^#(X1, mark(X2)) -> c_35(first^#(X1, X2)) :35 36: first^#(mark(X1), X2) -> c_36(first^#(X1, X2)) -->_1 first^#(ok(X1), ok(X2)) -> c_37(first^#(X1, X2)) :37 -->_1 first^#(mark(X1), X2) -> c_36(first^#(X1, X2)) :36 -->_1 first^#(X1, mark(X2)) -> c_35(first^#(X1, X2)) :35 37: first^#(ok(X1), ok(X2)) -> c_37(first^#(X1, X2)) -->_1 first^#(ok(X1), ok(X2)) -> c_37(first^#(X1, X2)) :37 -->_1 first^#(mark(X1), X2) -> c_36(first^#(X1, X2)) :36 -->_1 first^#(X1, mark(X2)) -> c_35(first^#(X1, X2)) :35 38: proper^#(terms(X)) -> c_38(terms^#(proper(X))) -->_1 terms^#(ok(X)) -> c_21(terms^#(X)) :21 -->_1 terms^#(mark(X)) -> c_20(terms^#(X)) :20 39: proper^#(cons(X1, X2)) -> c_39(cons^#(proper(X1), proper(X2))) -->_1 cons^#(ok(X1), ok(X2)) -> c_23(cons^#(X1, X2)) :23 -->_1 cons^#(mark(X1), X2) -> c_22(cons^#(X1, X2)) :22 40: proper^#(recip(X)) -> c_40(recip^#(proper(X))) -->_1 recip^#(ok(X)) -> c_25(recip^#(X)) :25 -->_1 recip^#(mark(X)) -> c_24(recip^#(X)) :24 41: proper^#(sqr(X)) -> c_41(sqr^#(proper(X))) -->_1 sqr^#(ok(X)) -> c_27(sqr^#(X)) :27 -->_1 sqr^#(mark(X)) -> c_26(sqr^#(X)) :26 42: proper^#(s(X)) -> c_42(s^#(proper(X))) -->_1 s^#(ok(X)) -> c_29(s^#(X)) :29 -->_1 s^#(mark(X)) -> c_28(s^#(X)) :28 43: proper^#(0()) -> c_43() 44: proper^#(add(X1, X2)) -> c_44(add^#(proper(X1), proper(X2))) -->_1 add^#(ok(X1), ok(X2)) -> c_32(add^#(X1, X2)) :32 -->_1 add^#(mark(X1), X2) -> c_31(add^#(X1, X2)) :31 -->_1 add^#(X1, mark(X2)) -> c_30(add^#(X1, X2)) :30 45: proper^#(dbl(X)) -> c_45(dbl^#(proper(X))) -->_1 dbl^#(ok(X)) -> c_34(dbl^#(X)) :34 -->_1 dbl^#(mark(X)) -> c_33(dbl^#(X)) :33 46: proper^#(first(X1, X2)) -> c_46(first^#(proper(X1), proper(X2))) -->_1 first^#(ok(X1), ok(X2)) -> c_37(first^#(X1, X2)) :37 -->_1 first^#(mark(X1), X2) -> c_36(first^#(X1, X2)) :36 -->_1 first^#(X1, mark(X2)) -> c_35(first^#(X1, X2)) :35 47: proper^#(nil()) -> c_47() 48: top^#(mark(X)) -> c_48(top^#(proper(X))) -->_1 top^#(ok(X)) -> c_49(top^#(active(X))) :49 -->_1 top^#(mark(X)) -> c_48(top^#(proper(X))) :48 49: top^#(ok(X)) -> c_49(top^#(active(X))) -->_1 top^#(ok(X)) -> c_49(top^#(active(X))) :49 -->_1 top^#(mark(X)) -> c_48(top^#(proper(X))) :48 Only the nodes {20,21,22,23,24,25,26,27,28,29,30,32,31,33,34,35,37,36,43,47,48,49} are reachable from nodes {20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,43,47,48,49} 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: { terms^#(mark(X)) -> c_20(terms^#(X)) , terms^#(ok(X)) -> c_21(terms^#(X)) , cons^#(mark(X1), X2) -> c_22(cons^#(X1, X2)) , cons^#(ok(X1), ok(X2)) -> c_23(cons^#(X1, X2)) , recip^#(mark(X)) -> c_24(recip^#(X)) , recip^#(ok(X)) -> c_25(recip^#(X)) , sqr^#(mark(X)) -> c_26(sqr^#(X)) , sqr^#(ok(X)) -> c_27(sqr^#(X)) , s^#(mark(X)) -> c_28(s^#(X)) , s^#(ok(X)) -> c_29(s^#(X)) , add^#(X1, mark(X2)) -> c_30(add^#(X1, X2)) , add^#(mark(X1), X2) -> c_31(add^#(X1, X2)) , add^#(ok(X1), ok(X2)) -> c_32(add^#(X1, X2)) , dbl^#(mark(X)) -> c_33(dbl^#(X)) , dbl^#(ok(X)) -> c_34(dbl^#(X)) , first^#(X1, mark(X2)) -> c_35(first^#(X1, X2)) , first^#(mark(X1), X2) -> c_36(first^#(X1, X2)) , first^#(ok(X1), ok(X2)) -> c_37(first^#(X1, X2)) , proper^#(0()) -> c_43() , proper^#(nil()) -> c_47() , top^#(mark(X)) -> c_48(top^#(proper(X))) , top^#(ok(X)) -> c_49(top^#(active(X))) } Strict Trs: { active(terms(X)) -> terms(active(X)) , active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))) , active(cons(X1, X2)) -> cons(active(X1), X2) , active(recip(X)) -> recip(active(X)) , active(sqr(X)) -> sqr(active(X)) , active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))) , active(sqr(0())) -> mark(0()) , active(s(X)) -> s(active(X)) , active(add(X1, X2)) -> add(X1, active(X2)) , active(add(X1, X2)) -> add(active(X1), X2) , active(add(s(X), Y)) -> mark(s(add(X, Y))) , active(add(0(), X)) -> mark(X) , active(dbl(X)) -> dbl(active(X)) , active(dbl(s(X))) -> mark(s(s(dbl(X)))) , active(dbl(0())) -> mark(0()) , active(first(X1, X2)) -> first(X1, active(X2)) , active(first(X1, X2)) -> first(active(X1), X2) , active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))) , active(first(0(), X)) -> mark(nil()) , terms(mark(X)) -> mark(terms(X)) , terms(ok(X)) -> ok(terms(X)) , cons(mark(X1), X2) -> mark(cons(X1, X2)) , cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) , recip(mark(X)) -> mark(recip(X)) , recip(ok(X)) -> ok(recip(X)) , sqr(mark(X)) -> mark(sqr(X)) , sqr(ok(X)) -> ok(sqr(X)) , s(mark(X)) -> mark(s(X)) , s(ok(X)) -> ok(s(X)) , add(X1, mark(X2)) -> mark(add(X1, X2)) , add(mark(X1), X2) -> mark(add(X1, X2)) , add(ok(X1), ok(X2)) -> ok(add(X1, X2)) , dbl(mark(X)) -> mark(dbl(X)) , dbl(ok(X)) -> ok(dbl(X)) , first(X1, mark(X2)) -> mark(first(X1, X2)) , first(mark(X1), X2) -> mark(first(X1, X2)) , first(ok(X1), ok(X2)) -> ok(first(X1, X2)) , proper(terms(X)) -> terms(proper(X)) , proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) , proper(recip(X)) -> recip(proper(X)) , proper(sqr(X)) -> sqr(proper(X)) , proper(s(X)) -> s(proper(X)) , proper(0()) -> ok(0()) , proper(add(X1, X2)) -> add(proper(X1), proper(X2)) , proper(dbl(X)) -> dbl(proper(X)) , proper(first(X1, X2)) -> first(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: terms^#(mark(X)) -> c_20(terms^#(X)) , 2: terms^#(ok(X)) -> c_21(terms^#(X)) , 3: cons^#(mark(X1), X2) -> c_22(cons^#(X1, X2)) , 4: cons^#(ok(X1), ok(X2)) -> c_23(cons^#(X1, X2)) , 5: recip^#(mark(X)) -> c_24(recip^#(X)) , 6: recip^#(ok(X)) -> c_25(recip^#(X)) , 7: sqr^#(mark(X)) -> c_26(sqr^#(X)) , 8: sqr^#(ok(X)) -> c_27(sqr^#(X)) , 9: s^#(mark(X)) -> c_28(s^#(X)) , 10: s^#(ok(X)) -> c_29(s^#(X)) , 11: add^#(X1, mark(X2)) -> c_30(add^#(X1, X2)) , 12: add^#(mark(X1), X2) -> c_31(add^#(X1, X2)) , 13: add^#(ok(X1), ok(X2)) -> c_32(add^#(X1, X2)) , 14: dbl^#(mark(X)) -> c_33(dbl^#(X)) , 15: dbl^#(ok(X)) -> c_34(dbl^#(X)) , 16: first^#(X1, mark(X2)) -> c_35(first^#(X1, X2)) , 17: first^#(mark(X1), X2) -> c_36(first^#(X1, X2)) , 18: first^#(ok(X1), ok(X2)) -> c_37(first^#(X1, X2)) , 19: proper^#(0()) -> c_43() , 20: proper^#(nil()) -> c_47() , 21: top^#(mark(X)) -> c_48(top^#(proper(X))) , 22: top^#(ok(X)) -> c_49(top^#(active(X))) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { terms^#(mark(X)) -> c_20(terms^#(X)) , terms^#(ok(X)) -> c_21(terms^#(X)) , cons^#(mark(X1), X2) -> c_22(cons^#(X1, X2)) , cons^#(ok(X1), ok(X2)) -> c_23(cons^#(X1, X2)) , recip^#(mark(X)) -> c_24(recip^#(X)) , recip^#(ok(X)) -> c_25(recip^#(X)) , sqr^#(mark(X)) -> c_26(sqr^#(X)) , sqr^#(ok(X)) -> c_27(sqr^#(X)) , s^#(mark(X)) -> c_28(s^#(X)) , s^#(ok(X)) -> c_29(s^#(X)) , add^#(X1, mark(X2)) -> c_30(add^#(X1, X2)) , add^#(mark(X1), X2) -> c_31(add^#(X1, X2)) , add^#(ok(X1), ok(X2)) -> c_32(add^#(X1, X2)) , dbl^#(mark(X)) -> c_33(dbl^#(X)) , dbl^#(ok(X)) -> c_34(dbl^#(X)) , first^#(X1, mark(X2)) -> c_35(first^#(X1, X2)) , first^#(mark(X1), X2) -> c_36(first^#(X1, X2)) , first^#(ok(X1), ok(X2)) -> c_37(first^#(X1, X2)) , top^#(mark(X)) -> c_48(top^#(proper(X))) , top^#(ok(X)) -> c_49(top^#(active(X))) } Strict Trs: { active(terms(X)) -> terms(active(X)) , active(terms(N)) -> mark(cons(recip(sqr(N)), terms(s(N)))) , active(cons(X1, X2)) -> cons(active(X1), X2) , active(recip(X)) -> recip(active(X)) , active(sqr(X)) -> sqr(active(X)) , active(sqr(s(X))) -> mark(s(add(sqr(X), dbl(X)))) , active(sqr(0())) -> mark(0()) , active(s(X)) -> s(active(X)) , active(add(X1, X2)) -> add(X1, active(X2)) , active(add(X1, X2)) -> add(active(X1), X2) , active(add(s(X), Y)) -> mark(s(add(X, Y))) , active(add(0(), X)) -> mark(X) , active(dbl(X)) -> dbl(active(X)) , active(dbl(s(X))) -> mark(s(s(dbl(X)))) , active(dbl(0())) -> mark(0()) , active(first(X1, X2)) -> first(X1, active(X2)) , active(first(X1, X2)) -> first(active(X1), X2) , active(first(s(X), cons(Y, Z))) -> mark(cons(Y, first(X, Z))) , active(first(0(), X)) -> mark(nil()) , terms(mark(X)) -> mark(terms(X)) , terms(ok(X)) -> ok(terms(X)) , cons(mark(X1), X2) -> mark(cons(X1, X2)) , cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) , recip(mark(X)) -> mark(recip(X)) , recip(ok(X)) -> ok(recip(X)) , sqr(mark(X)) -> mark(sqr(X)) , sqr(ok(X)) -> ok(sqr(X)) , s(mark(X)) -> mark(s(X)) , s(ok(X)) -> ok(s(X)) , add(X1, mark(X2)) -> mark(add(X1, X2)) , add(mark(X1), X2) -> mark(add(X1, X2)) , add(ok(X1), ok(X2)) -> ok(add(X1, X2)) , dbl(mark(X)) -> mark(dbl(X)) , dbl(ok(X)) -> ok(dbl(X)) , first(X1, mark(X2)) -> mark(first(X1, X2)) , first(mark(X1), X2) -> mark(first(X1, X2)) , first(ok(X1), ok(X2)) -> ok(first(X1, X2)) , proper(terms(X)) -> terms(proper(X)) , proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) , proper(recip(X)) -> recip(proper(X)) , proper(sqr(X)) -> sqr(proper(X)) , proper(s(X)) -> s(proper(X)) , proper(0()) -> ok(0()) , proper(add(X1, X2)) -> add(proper(X1), proper(X2)) , proper(dbl(X)) -> dbl(proper(X)) , proper(first(X1, X2)) -> first(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_43() , proper^#(nil()) -> c_47() } Obligation: runtime complexity Answer: MAYBE Empty strict component of the problem is NOT empty. Arrrr..