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(2ndspos(X1, X2)) -> 2ndspos(X1, active(X2)) , active(2ndspos(X1, X2)) -> 2ndspos(active(X1), X2) , active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) , active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) , active(2ndspos(0(), Z)) -> mark(rnil()) , active(cons2(X1, X2)) -> cons2(X1, active(X2)) , active(rcons(X1, X2)) -> rcons(X1, active(X2)) , active(rcons(X1, X2)) -> rcons(active(X1), X2) , active(posrecip(X)) -> posrecip(active(X)) , active(2ndsneg(X1, X2)) -> 2ndsneg(X1, active(X2)) , active(2ndsneg(X1, X2)) -> 2ndsneg(active(X1), X2) , active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) , active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) , active(2ndsneg(0(), Z)) -> mark(rnil()) , active(negrecip(X)) -> negrecip(active(X)) , active(pi(X)) -> mark(2ndspos(X, from(0()))) , active(pi(X)) -> pi(active(X)) , active(plus(X1, X2)) -> plus(X1, active(X2)) , active(plus(X1, X2)) -> plus(active(X1), X2) , active(plus(s(X), Y)) -> mark(s(plus(X, Y))) , active(plus(0(), Y)) -> mark(Y) , active(times(X1, X2)) -> times(X1, active(X2)) , active(times(X1, X2)) -> times(active(X1), X2) , active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) , active(times(0(), Y)) -> mark(0()) , active(square(X)) -> mark(times(X, X)) , active(square(X)) -> square(active(X)) , 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)) , 2ndspos(X1, mark(X2)) -> mark(2ndspos(X1, X2)) , 2ndspos(mark(X1), X2) -> mark(2ndspos(X1, X2)) , 2ndspos(ok(X1), ok(X2)) -> ok(2ndspos(X1, X2)) , cons2(X1, mark(X2)) -> mark(cons2(X1, X2)) , cons2(ok(X1), ok(X2)) -> ok(cons2(X1, X2)) , rcons(X1, mark(X2)) -> mark(rcons(X1, X2)) , rcons(mark(X1), X2) -> mark(rcons(X1, X2)) , rcons(ok(X1), ok(X2)) -> ok(rcons(X1, X2)) , posrecip(mark(X)) -> mark(posrecip(X)) , posrecip(ok(X)) -> ok(posrecip(X)) , 2ndsneg(X1, mark(X2)) -> mark(2ndsneg(X1, X2)) , 2ndsneg(mark(X1), X2) -> mark(2ndsneg(X1, X2)) , 2ndsneg(ok(X1), ok(X2)) -> ok(2ndsneg(X1, X2)) , negrecip(mark(X)) -> mark(negrecip(X)) , negrecip(ok(X)) -> ok(negrecip(X)) , pi(mark(X)) -> mark(pi(X)) , pi(ok(X)) -> ok(pi(X)) , plus(X1, mark(X2)) -> mark(plus(X1, X2)) , plus(mark(X1), X2) -> mark(plus(X1, X2)) , plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)) , times(X1, mark(X2)) -> mark(times(X1, X2)) , times(mark(X1), X2) -> mark(times(X1, X2)) , times(ok(X1), ok(X2)) -> ok(times(X1, X2)) , square(mark(X)) -> mark(square(X)) , square(ok(X)) -> ok(square(X)) , proper(from(X)) -> from(proper(X)) , proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) , proper(s(X)) -> s(proper(X)) , proper(2ndspos(X1, X2)) -> 2ndspos(proper(X1), proper(X2)) , proper(0()) -> ok(0()) , proper(rnil()) -> ok(rnil()) , proper(cons2(X1, X2)) -> cons2(proper(X1), proper(X2)) , proper(rcons(X1, X2)) -> rcons(proper(X1), proper(X2)) , proper(posrecip(X)) -> posrecip(proper(X)) , proper(2ndsneg(X1, X2)) -> 2ndsneg(proper(X1), proper(X2)) , proper(negrecip(X)) -> negrecip(proper(X)) , proper(pi(X)) -> pi(proper(X)) , proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)) , proper(times(X1, X2)) -> times(proper(X1), proper(X2)) , proper(square(X)) -> square(proper(X)) , 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^#(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^#(2ndspos(X1, X2)) -> c_5(2ndspos^#(X1, active(X2))) , active^#(2ndspos(X1, X2)) -> c_6(2ndspos^#(active(X1), X2)) , active^#(2ndspos(s(N), cons(X, Z))) -> c_7(2ndspos^#(s(N), cons2(X, Z))) , active^#(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> c_8(rcons^#(posrecip(Y), 2ndsneg(N, Z))) , active^#(2ndspos(0(), Z)) -> c_9() , active^#(cons2(X1, X2)) -> c_10(cons2^#(X1, active(X2))) , active^#(rcons(X1, X2)) -> c_11(rcons^#(X1, active(X2))) , active^#(rcons(X1, X2)) -> c_12(rcons^#(active(X1), X2)) , active^#(posrecip(X)) -> c_13(posrecip^#(active(X))) , active^#(2ndsneg(X1, X2)) -> c_14(2ndsneg^#(X1, active(X2))) , active^#(2ndsneg(X1, X2)) -> c_15(2ndsneg^#(active(X1), X2)) , active^#(2ndsneg(s(N), cons(X, Z))) -> c_16(2ndsneg^#(s(N), cons2(X, Z))) , active^#(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> c_17(rcons^#(negrecip(Y), 2ndspos(N, Z))) , active^#(2ndsneg(0(), Z)) -> c_18() , active^#(negrecip(X)) -> c_19(negrecip^#(active(X))) , active^#(pi(X)) -> c_20(2ndspos^#(X, from(0()))) , active^#(pi(X)) -> c_21(pi^#(active(X))) , active^#(plus(X1, X2)) -> c_22(plus^#(X1, active(X2))) , active^#(plus(X1, X2)) -> c_23(plus^#(active(X1), X2)) , active^#(plus(s(X), Y)) -> c_24(s^#(plus(X, Y))) , active^#(plus(0(), Y)) -> c_25(Y) , active^#(times(X1, X2)) -> c_26(times^#(X1, active(X2))) , active^#(times(X1, X2)) -> c_27(times^#(active(X1), X2)) , active^#(times(s(X), Y)) -> c_28(plus^#(Y, times(X, Y))) , active^#(times(0(), Y)) -> c_29() , active^#(square(X)) -> c_30(times^#(X, X)) , active^#(square(X)) -> c_31(square^#(active(X))) , from^#(mark(X)) -> c_32(from^#(X)) , from^#(ok(X)) -> c_33(from^#(X)) , cons^#(mark(X1), X2) -> c_34(cons^#(X1, X2)) , cons^#(ok(X1), ok(X2)) -> c_35(cons^#(X1, X2)) , s^#(mark(X)) -> c_36(s^#(X)) , s^#(ok(X)) -> c_37(s^#(X)) , 2ndspos^#(X1, mark(X2)) -> c_38(2ndspos^#(X1, X2)) , 2ndspos^#(mark(X1), X2) -> c_39(2ndspos^#(X1, X2)) , 2ndspos^#(ok(X1), ok(X2)) -> c_40(2ndspos^#(X1, X2)) , rcons^#(X1, mark(X2)) -> c_43(rcons^#(X1, X2)) , rcons^#(mark(X1), X2) -> c_44(rcons^#(X1, X2)) , rcons^#(ok(X1), ok(X2)) -> c_45(rcons^#(X1, X2)) , cons2^#(X1, mark(X2)) -> c_41(cons2^#(X1, X2)) , cons2^#(ok(X1), ok(X2)) -> c_42(cons2^#(X1, X2)) , posrecip^#(mark(X)) -> c_46(posrecip^#(X)) , posrecip^#(ok(X)) -> c_47(posrecip^#(X)) , 2ndsneg^#(X1, mark(X2)) -> c_48(2ndsneg^#(X1, X2)) , 2ndsneg^#(mark(X1), X2) -> c_49(2ndsneg^#(X1, X2)) , 2ndsneg^#(ok(X1), ok(X2)) -> c_50(2ndsneg^#(X1, X2)) , negrecip^#(mark(X)) -> c_51(negrecip^#(X)) , negrecip^#(ok(X)) -> c_52(negrecip^#(X)) , pi^#(mark(X)) -> c_53(pi^#(X)) , pi^#(ok(X)) -> c_54(pi^#(X)) , plus^#(X1, mark(X2)) -> c_55(plus^#(X1, X2)) , plus^#(mark(X1), X2) -> c_56(plus^#(X1, X2)) , plus^#(ok(X1), ok(X2)) -> c_57(plus^#(X1, X2)) , times^#(X1, mark(X2)) -> c_58(times^#(X1, X2)) , times^#(mark(X1), X2) -> c_59(times^#(X1, X2)) , times^#(ok(X1), ok(X2)) -> c_60(times^#(X1, X2)) , square^#(mark(X)) -> c_61(square^#(X)) , square^#(ok(X)) -> c_62(square^#(X)) , proper^#(from(X)) -> c_63(from^#(proper(X))) , proper^#(cons(X1, X2)) -> c_64(cons^#(proper(X1), proper(X2))) , proper^#(s(X)) -> c_65(s^#(proper(X))) , proper^#(2ndspos(X1, X2)) -> c_66(2ndspos^#(proper(X1), proper(X2))) , proper^#(0()) -> c_67() , proper^#(rnil()) -> c_68() , proper^#(cons2(X1, X2)) -> c_69(cons2^#(proper(X1), proper(X2))) , proper^#(rcons(X1, X2)) -> c_70(rcons^#(proper(X1), proper(X2))) , proper^#(posrecip(X)) -> c_71(posrecip^#(proper(X))) , proper^#(2ndsneg(X1, X2)) -> c_72(2ndsneg^#(proper(X1), proper(X2))) , proper^#(negrecip(X)) -> c_73(negrecip^#(proper(X))) , proper^#(pi(X)) -> c_74(pi^#(proper(X))) , proper^#(plus(X1, X2)) -> c_75(plus^#(proper(X1), proper(X2))) , proper^#(times(X1, X2)) -> c_76(times^#(proper(X1), proper(X2))) , proper^#(square(X)) -> c_77(square^#(proper(X))) , proper^#(nil()) -> c_78() , top^#(mark(X)) -> c_79(top^#(proper(X))) , top^#(ok(X)) -> c_80(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^#(2ndspos(X1, X2)) -> c_5(2ndspos^#(X1, active(X2))) , active^#(2ndspos(X1, X2)) -> c_6(2ndspos^#(active(X1), X2)) , active^#(2ndspos(s(N), cons(X, Z))) -> c_7(2ndspos^#(s(N), cons2(X, Z))) , active^#(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> c_8(rcons^#(posrecip(Y), 2ndsneg(N, Z))) , active^#(2ndspos(0(), Z)) -> c_9() , active^#(cons2(X1, X2)) -> c_10(cons2^#(X1, active(X2))) , active^#(rcons(X1, X2)) -> c_11(rcons^#(X1, active(X2))) , active^#(rcons(X1, X2)) -> c_12(rcons^#(active(X1), X2)) , active^#(posrecip(X)) -> c_13(posrecip^#(active(X))) , active^#(2ndsneg(X1, X2)) -> c_14(2ndsneg^#(X1, active(X2))) , active^#(2ndsneg(X1, X2)) -> c_15(2ndsneg^#(active(X1), X2)) , active^#(2ndsneg(s(N), cons(X, Z))) -> c_16(2ndsneg^#(s(N), cons2(X, Z))) , active^#(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> c_17(rcons^#(negrecip(Y), 2ndspos(N, Z))) , active^#(2ndsneg(0(), Z)) -> c_18() , active^#(negrecip(X)) -> c_19(negrecip^#(active(X))) , active^#(pi(X)) -> c_20(2ndspos^#(X, from(0()))) , active^#(pi(X)) -> c_21(pi^#(active(X))) , active^#(plus(X1, X2)) -> c_22(plus^#(X1, active(X2))) , active^#(plus(X1, X2)) -> c_23(plus^#(active(X1), X2)) , active^#(plus(s(X), Y)) -> c_24(s^#(plus(X, Y))) , active^#(plus(0(), Y)) -> c_25(Y) , active^#(times(X1, X2)) -> c_26(times^#(X1, active(X2))) , active^#(times(X1, X2)) -> c_27(times^#(active(X1), X2)) , active^#(times(s(X), Y)) -> c_28(plus^#(Y, times(X, Y))) , active^#(times(0(), Y)) -> c_29() , active^#(square(X)) -> c_30(times^#(X, X)) , active^#(square(X)) -> c_31(square^#(active(X))) , from^#(mark(X)) -> c_32(from^#(X)) , from^#(ok(X)) -> c_33(from^#(X)) , cons^#(mark(X1), X2) -> c_34(cons^#(X1, X2)) , cons^#(ok(X1), ok(X2)) -> c_35(cons^#(X1, X2)) , s^#(mark(X)) -> c_36(s^#(X)) , s^#(ok(X)) -> c_37(s^#(X)) , 2ndspos^#(X1, mark(X2)) -> c_38(2ndspos^#(X1, X2)) , 2ndspos^#(mark(X1), X2) -> c_39(2ndspos^#(X1, X2)) , 2ndspos^#(ok(X1), ok(X2)) -> c_40(2ndspos^#(X1, X2)) , rcons^#(X1, mark(X2)) -> c_43(rcons^#(X1, X2)) , rcons^#(mark(X1), X2) -> c_44(rcons^#(X1, X2)) , rcons^#(ok(X1), ok(X2)) -> c_45(rcons^#(X1, X2)) , cons2^#(X1, mark(X2)) -> c_41(cons2^#(X1, X2)) , cons2^#(ok(X1), ok(X2)) -> c_42(cons2^#(X1, X2)) , posrecip^#(mark(X)) -> c_46(posrecip^#(X)) , posrecip^#(ok(X)) -> c_47(posrecip^#(X)) , 2ndsneg^#(X1, mark(X2)) -> c_48(2ndsneg^#(X1, X2)) , 2ndsneg^#(mark(X1), X2) -> c_49(2ndsneg^#(X1, X2)) , 2ndsneg^#(ok(X1), ok(X2)) -> c_50(2ndsneg^#(X1, X2)) , negrecip^#(mark(X)) -> c_51(negrecip^#(X)) , negrecip^#(ok(X)) -> c_52(negrecip^#(X)) , pi^#(mark(X)) -> c_53(pi^#(X)) , pi^#(ok(X)) -> c_54(pi^#(X)) , plus^#(X1, mark(X2)) -> c_55(plus^#(X1, X2)) , plus^#(mark(X1), X2) -> c_56(plus^#(X1, X2)) , plus^#(ok(X1), ok(X2)) -> c_57(plus^#(X1, X2)) , times^#(X1, mark(X2)) -> c_58(times^#(X1, X2)) , times^#(mark(X1), X2) -> c_59(times^#(X1, X2)) , times^#(ok(X1), ok(X2)) -> c_60(times^#(X1, X2)) , square^#(mark(X)) -> c_61(square^#(X)) , square^#(ok(X)) -> c_62(square^#(X)) , proper^#(from(X)) -> c_63(from^#(proper(X))) , proper^#(cons(X1, X2)) -> c_64(cons^#(proper(X1), proper(X2))) , proper^#(s(X)) -> c_65(s^#(proper(X))) , proper^#(2ndspos(X1, X2)) -> c_66(2ndspos^#(proper(X1), proper(X2))) , proper^#(0()) -> c_67() , proper^#(rnil()) -> c_68() , proper^#(cons2(X1, X2)) -> c_69(cons2^#(proper(X1), proper(X2))) , proper^#(rcons(X1, X2)) -> c_70(rcons^#(proper(X1), proper(X2))) , proper^#(posrecip(X)) -> c_71(posrecip^#(proper(X))) , proper^#(2ndsneg(X1, X2)) -> c_72(2ndsneg^#(proper(X1), proper(X2))) , proper^#(negrecip(X)) -> c_73(negrecip^#(proper(X))) , proper^#(pi(X)) -> c_74(pi^#(proper(X))) , proper^#(plus(X1, X2)) -> c_75(plus^#(proper(X1), proper(X2))) , proper^#(times(X1, X2)) -> c_76(times^#(proper(X1), proper(X2))) , proper^#(square(X)) -> c_77(square^#(proper(X))) , proper^#(nil()) -> c_78() , top^#(mark(X)) -> c_79(top^#(proper(X))) , top^#(ok(X)) -> c_80(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(2ndspos(X1, X2)) -> 2ndspos(X1, active(X2)) , active(2ndspos(X1, X2)) -> 2ndspos(active(X1), X2) , active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) , active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) , active(2ndspos(0(), Z)) -> mark(rnil()) , active(cons2(X1, X2)) -> cons2(X1, active(X2)) , active(rcons(X1, X2)) -> rcons(X1, active(X2)) , active(rcons(X1, X2)) -> rcons(active(X1), X2) , active(posrecip(X)) -> posrecip(active(X)) , active(2ndsneg(X1, X2)) -> 2ndsneg(X1, active(X2)) , active(2ndsneg(X1, X2)) -> 2ndsneg(active(X1), X2) , active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) , active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) , active(2ndsneg(0(), Z)) -> mark(rnil()) , active(negrecip(X)) -> negrecip(active(X)) , active(pi(X)) -> mark(2ndspos(X, from(0()))) , active(pi(X)) -> pi(active(X)) , active(plus(X1, X2)) -> plus(X1, active(X2)) , active(plus(X1, X2)) -> plus(active(X1), X2) , active(plus(s(X), Y)) -> mark(s(plus(X, Y))) , active(plus(0(), Y)) -> mark(Y) , active(times(X1, X2)) -> times(X1, active(X2)) , active(times(X1, X2)) -> times(active(X1), X2) , active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) , active(times(0(), Y)) -> mark(0()) , active(square(X)) -> mark(times(X, X)) , active(square(X)) -> square(active(X)) , 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)) , 2ndspos(X1, mark(X2)) -> mark(2ndspos(X1, X2)) , 2ndspos(mark(X1), X2) -> mark(2ndspos(X1, X2)) , 2ndspos(ok(X1), ok(X2)) -> ok(2ndspos(X1, X2)) , cons2(X1, mark(X2)) -> mark(cons2(X1, X2)) , cons2(ok(X1), ok(X2)) -> ok(cons2(X1, X2)) , rcons(X1, mark(X2)) -> mark(rcons(X1, X2)) , rcons(mark(X1), X2) -> mark(rcons(X1, X2)) , rcons(ok(X1), ok(X2)) -> ok(rcons(X1, X2)) , posrecip(mark(X)) -> mark(posrecip(X)) , posrecip(ok(X)) -> ok(posrecip(X)) , 2ndsneg(X1, mark(X2)) -> mark(2ndsneg(X1, X2)) , 2ndsneg(mark(X1), X2) -> mark(2ndsneg(X1, X2)) , 2ndsneg(ok(X1), ok(X2)) -> ok(2ndsneg(X1, X2)) , negrecip(mark(X)) -> mark(negrecip(X)) , negrecip(ok(X)) -> ok(negrecip(X)) , pi(mark(X)) -> mark(pi(X)) , pi(ok(X)) -> ok(pi(X)) , plus(X1, mark(X2)) -> mark(plus(X1, X2)) , plus(mark(X1), X2) -> mark(plus(X1, X2)) , plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)) , times(X1, mark(X2)) -> mark(times(X1, X2)) , times(mark(X1), X2) -> mark(times(X1, X2)) , times(ok(X1), ok(X2)) -> ok(times(X1, X2)) , square(mark(X)) -> mark(square(X)) , square(ok(X)) -> ok(square(X)) , proper(from(X)) -> from(proper(X)) , proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) , proper(s(X)) -> s(proper(X)) , proper(2ndspos(X1, X2)) -> 2ndspos(proper(X1), proper(X2)) , proper(0()) -> ok(0()) , proper(rnil()) -> ok(rnil()) , proper(cons2(X1, X2)) -> cons2(proper(X1), proper(X2)) , proper(rcons(X1, X2)) -> rcons(proper(X1), proper(X2)) , proper(posrecip(X)) -> posrecip(proper(X)) , proper(2ndsneg(X1, X2)) -> 2ndsneg(proper(X1), proper(X2)) , proper(negrecip(X)) -> negrecip(proper(X)) , proper(pi(X)) -> pi(proper(X)) , proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)) , proper(times(X1, X2)) -> times(proper(X1), proper(X2)) , proper(square(X)) -> square(proper(X)) , 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_33(from^#(X)) :33 -->_1 from^#(mark(X)) -> c_32(from^#(X)) :32 2: active^#(from(X)) -> c_2(cons^#(X, from(s(X)))) -->_1 cons^#(ok(X1), ok(X2)) -> c_35(cons^#(X1, X2)) :35 -->_1 cons^#(mark(X1), X2) -> c_34(cons^#(X1, X2)) :34 3: active^#(cons(X1, X2)) -> c_3(cons^#(active(X1), X2)) -->_1 cons^#(ok(X1), ok(X2)) -> c_35(cons^#(X1, X2)) :35 -->_1 cons^#(mark(X1), X2) -> c_34(cons^#(X1, X2)) :34 4: active^#(s(X)) -> c_4(s^#(active(X))) -->_1 s^#(ok(X)) -> c_37(s^#(X)) :37 -->_1 s^#(mark(X)) -> c_36(s^#(X)) :36 5: active^#(2ndspos(X1, X2)) -> c_5(2ndspos^#(X1, active(X2))) -->_1 2ndspos^#(ok(X1), ok(X2)) -> c_40(2ndspos^#(X1, X2)) :40 -->_1 2ndspos^#(mark(X1), X2) -> c_39(2ndspos^#(X1, X2)) :39 -->_1 2ndspos^#(X1, mark(X2)) -> c_38(2ndspos^#(X1, X2)) :38 6: active^#(2ndspos(X1, X2)) -> c_6(2ndspos^#(active(X1), X2)) -->_1 2ndspos^#(ok(X1), ok(X2)) -> c_40(2ndspos^#(X1, X2)) :40 -->_1 2ndspos^#(mark(X1), X2) -> c_39(2ndspos^#(X1, X2)) :39 -->_1 2ndspos^#(X1, mark(X2)) -> c_38(2ndspos^#(X1, X2)) :38 7: active^#(2ndspos(s(N), cons(X, Z))) -> c_7(2ndspos^#(s(N), cons2(X, Z))) -->_1 2ndspos^#(ok(X1), ok(X2)) -> c_40(2ndspos^#(X1, X2)) :40 -->_1 2ndspos^#(mark(X1), X2) -> c_39(2ndspos^#(X1, X2)) :39 -->_1 2ndspos^#(X1, mark(X2)) -> c_38(2ndspos^#(X1, X2)) :38 8: active^#(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> c_8(rcons^#(posrecip(Y), 2ndsneg(N, Z))) -->_1 rcons^#(ok(X1), ok(X2)) -> c_45(rcons^#(X1, X2)) :43 -->_1 rcons^#(mark(X1), X2) -> c_44(rcons^#(X1, X2)) :42 -->_1 rcons^#(X1, mark(X2)) -> c_43(rcons^#(X1, X2)) :41 9: active^#(2ndspos(0(), Z)) -> c_9() 10: active^#(cons2(X1, X2)) -> c_10(cons2^#(X1, active(X2))) -->_1 cons2^#(ok(X1), ok(X2)) -> c_42(cons2^#(X1, X2)) :45 -->_1 cons2^#(X1, mark(X2)) -> c_41(cons2^#(X1, X2)) :44 11: active^#(rcons(X1, X2)) -> c_11(rcons^#(X1, active(X2))) -->_1 rcons^#(ok(X1), ok(X2)) -> c_45(rcons^#(X1, X2)) :43 -->_1 rcons^#(mark(X1), X2) -> c_44(rcons^#(X1, X2)) :42 -->_1 rcons^#(X1, mark(X2)) -> c_43(rcons^#(X1, X2)) :41 12: active^#(rcons(X1, X2)) -> c_12(rcons^#(active(X1), X2)) -->_1 rcons^#(ok(X1), ok(X2)) -> c_45(rcons^#(X1, X2)) :43 -->_1 rcons^#(mark(X1), X2) -> c_44(rcons^#(X1, X2)) :42 -->_1 rcons^#(X1, mark(X2)) -> c_43(rcons^#(X1, X2)) :41 13: active^#(posrecip(X)) -> c_13(posrecip^#(active(X))) -->_1 posrecip^#(ok(X)) -> c_47(posrecip^#(X)) :47 -->_1 posrecip^#(mark(X)) -> c_46(posrecip^#(X)) :46 14: active^#(2ndsneg(X1, X2)) -> c_14(2ndsneg^#(X1, active(X2))) -->_1 2ndsneg^#(ok(X1), ok(X2)) -> c_50(2ndsneg^#(X1, X2)) :50 -->_1 2ndsneg^#(mark(X1), X2) -> c_49(2ndsneg^#(X1, X2)) :49 -->_1 2ndsneg^#(X1, mark(X2)) -> c_48(2ndsneg^#(X1, X2)) :48 15: active^#(2ndsneg(X1, X2)) -> c_15(2ndsneg^#(active(X1), X2)) -->_1 2ndsneg^#(ok(X1), ok(X2)) -> c_50(2ndsneg^#(X1, X2)) :50 -->_1 2ndsneg^#(mark(X1), X2) -> c_49(2ndsneg^#(X1, X2)) :49 -->_1 2ndsneg^#(X1, mark(X2)) -> c_48(2ndsneg^#(X1, X2)) :48 16: active^#(2ndsneg(s(N), cons(X, Z))) -> c_16(2ndsneg^#(s(N), cons2(X, Z))) -->_1 2ndsneg^#(ok(X1), ok(X2)) -> c_50(2ndsneg^#(X1, X2)) :50 -->_1 2ndsneg^#(mark(X1), X2) -> c_49(2ndsneg^#(X1, X2)) :49 -->_1 2ndsneg^#(X1, mark(X2)) -> c_48(2ndsneg^#(X1, X2)) :48 17: active^#(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> c_17(rcons^#(negrecip(Y), 2ndspos(N, Z))) -->_1 rcons^#(ok(X1), ok(X2)) -> c_45(rcons^#(X1, X2)) :43 -->_1 rcons^#(mark(X1), X2) -> c_44(rcons^#(X1, X2)) :42 -->_1 rcons^#(X1, mark(X2)) -> c_43(rcons^#(X1, X2)) :41 18: active^#(2ndsneg(0(), Z)) -> c_18() 19: active^#(negrecip(X)) -> c_19(negrecip^#(active(X))) -->_1 negrecip^#(ok(X)) -> c_52(negrecip^#(X)) :52 -->_1 negrecip^#(mark(X)) -> c_51(negrecip^#(X)) :51 20: active^#(pi(X)) -> c_20(2ndspos^#(X, from(0()))) -->_1 2ndspos^#(mark(X1), X2) -> c_39(2ndspos^#(X1, X2)) :39 21: active^#(pi(X)) -> c_21(pi^#(active(X))) -->_1 pi^#(ok(X)) -> c_54(pi^#(X)) :54 -->_1 pi^#(mark(X)) -> c_53(pi^#(X)) :53 22: active^#(plus(X1, X2)) -> c_22(plus^#(X1, active(X2))) -->_1 plus^#(ok(X1), ok(X2)) -> c_57(plus^#(X1, X2)) :57 -->_1 plus^#(mark(X1), X2) -> c_56(plus^#(X1, X2)) :56 -->_1 plus^#(X1, mark(X2)) -> c_55(plus^#(X1, X2)) :55 23: active^#(plus(X1, X2)) -> c_23(plus^#(active(X1), X2)) -->_1 plus^#(ok(X1), ok(X2)) -> c_57(plus^#(X1, X2)) :57 -->_1 plus^#(mark(X1), X2) -> c_56(plus^#(X1, X2)) :56 -->_1 plus^#(X1, mark(X2)) -> c_55(plus^#(X1, X2)) :55 24: active^#(plus(s(X), Y)) -> c_24(s^#(plus(X, Y))) -->_1 s^#(ok(X)) -> c_37(s^#(X)) :37 -->_1 s^#(mark(X)) -> c_36(s^#(X)) :36 25: active^#(plus(0(), Y)) -> c_25(Y) -->_1 top^#(ok(X)) -> c_80(top^#(active(X))) :80 -->_1 top^#(mark(X)) -> c_79(top^#(proper(X))) :79 -->_1 proper^#(square(X)) -> c_77(square^#(proper(X))) :77 -->_1 proper^#(times(X1, X2)) -> c_76(times^#(proper(X1), proper(X2))) :76 -->_1 proper^#(plus(X1, X2)) -> c_75(plus^#(proper(X1), proper(X2))) :75 -->_1 proper^#(pi(X)) -> c_74(pi^#(proper(X))) :74 -->_1 proper^#(negrecip(X)) -> c_73(negrecip^#(proper(X))) :73 -->_1 proper^#(2ndsneg(X1, X2)) -> c_72(2ndsneg^#(proper(X1), proper(X2))) :72 -->_1 proper^#(posrecip(X)) -> c_71(posrecip^#(proper(X))) :71 -->_1 proper^#(rcons(X1, X2)) -> c_70(rcons^#(proper(X1), proper(X2))) :70 -->_1 proper^#(cons2(X1, X2)) -> c_69(cons2^#(proper(X1), proper(X2))) :69 -->_1 proper^#(2ndspos(X1, X2)) -> c_66(2ndspos^#(proper(X1), proper(X2))) :66 -->_1 proper^#(s(X)) -> c_65(s^#(proper(X))) :65 -->_1 proper^#(cons(X1, X2)) -> c_64(cons^#(proper(X1), proper(X2))) :64 -->_1 proper^#(from(X)) -> c_63(from^#(proper(X))) :63 -->_1 square^#(ok(X)) -> c_62(square^#(X)) :62 -->_1 square^#(mark(X)) -> c_61(square^#(X)) :61 -->_1 times^#(ok(X1), ok(X2)) -> c_60(times^#(X1, X2)) :60 -->_1 times^#(mark(X1), X2) -> c_59(times^#(X1, X2)) :59 -->_1 times^#(X1, mark(X2)) -> c_58(times^#(X1, X2)) :58 -->_1 plus^#(ok(X1), ok(X2)) -> c_57(plus^#(X1, X2)) :57 -->_1 plus^#(mark(X1), X2) -> c_56(plus^#(X1, X2)) :56 -->_1 plus^#(X1, mark(X2)) -> c_55(plus^#(X1, X2)) :55 -->_1 pi^#(ok(X)) -> c_54(pi^#(X)) :54 -->_1 pi^#(mark(X)) -> c_53(pi^#(X)) :53 -->_1 negrecip^#(ok(X)) -> c_52(negrecip^#(X)) :52 -->_1 negrecip^#(mark(X)) -> c_51(negrecip^#(X)) :51 -->_1 2ndsneg^#(ok(X1), ok(X2)) -> c_50(2ndsneg^#(X1, X2)) :50 -->_1 2ndsneg^#(mark(X1), X2) -> c_49(2ndsneg^#(X1, X2)) :49 -->_1 2ndsneg^#(X1, mark(X2)) -> c_48(2ndsneg^#(X1, X2)) :48 -->_1 posrecip^#(ok(X)) -> c_47(posrecip^#(X)) :47 -->_1 posrecip^#(mark(X)) -> c_46(posrecip^#(X)) :46 -->_1 cons2^#(ok(X1), ok(X2)) -> c_42(cons2^#(X1, X2)) :45 -->_1 cons2^#(X1, mark(X2)) -> c_41(cons2^#(X1, X2)) :44 -->_1 rcons^#(ok(X1), ok(X2)) -> c_45(rcons^#(X1, X2)) :43 -->_1 rcons^#(mark(X1), X2) -> c_44(rcons^#(X1, X2)) :42 -->_1 rcons^#(X1, mark(X2)) -> c_43(rcons^#(X1, X2)) :41 -->_1 2ndspos^#(ok(X1), ok(X2)) -> c_40(2ndspos^#(X1, X2)) :40 -->_1 2ndspos^#(mark(X1), X2) -> c_39(2ndspos^#(X1, X2)) :39 -->_1 2ndspos^#(X1, mark(X2)) -> c_38(2ndspos^#(X1, X2)) :38 -->_1 s^#(ok(X)) -> c_37(s^#(X)) :37 -->_1 s^#(mark(X)) -> c_36(s^#(X)) :36 -->_1 cons^#(ok(X1), ok(X2)) -> c_35(cons^#(X1, X2)) :35 -->_1 cons^#(mark(X1), X2) -> c_34(cons^#(X1, X2)) :34 -->_1 from^#(ok(X)) -> c_33(from^#(X)) :33 -->_1 from^#(mark(X)) -> c_32(from^#(X)) :32 -->_1 active^#(square(X)) -> c_31(square^#(active(X))) :31 -->_1 active^#(square(X)) -> c_30(times^#(X, X)) :30 -->_1 active^#(times(s(X), Y)) -> c_28(plus^#(Y, times(X, Y))) :28 -->_1 active^#(times(X1, X2)) -> c_27(times^#(active(X1), X2)) :27 -->_1 active^#(times(X1, X2)) -> c_26(times^#(X1, active(X2))) :26 -->_1 proper^#(nil()) -> c_78() :78 -->_1 proper^#(rnil()) -> c_68() :68 -->_1 proper^#(0()) -> c_67() :67 -->_1 active^#(times(0(), Y)) -> c_29() :29 -->_1 active^#(plus(0(), Y)) -> c_25(Y) :25 -->_1 active^#(plus(s(X), Y)) -> c_24(s^#(plus(X, Y))) :24 -->_1 active^#(plus(X1, X2)) -> c_23(plus^#(active(X1), X2)) :23 -->_1 active^#(plus(X1, X2)) -> c_22(plus^#(X1, active(X2))) :22 -->_1 active^#(pi(X)) -> c_21(pi^#(active(X))) :21 -->_1 active^#(pi(X)) -> c_20(2ndspos^#(X, from(0()))) :20 -->_1 active^#(negrecip(X)) -> c_19(negrecip^#(active(X))) :19 -->_1 active^#(2ndsneg(0(), Z)) -> c_18() :18 -->_1 active^#(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> c_17(rcons^#(negrecip(Y), 2ndspos(N, Z))) :17 -->_1 active^#(2ndsneg(s(N), cons(X, Z))) -> c_16(2ndsneg^#(s(N), cons2(X, Z))) :16 -->_1 active^#(2ndsneg(X1, X2)) -> c_15(2ndsneg^#(active(X1), X2)) :15 -->_1 active^#(2ndsneg(X1, X2)) -> c_14(2ndsneg^#(X1, active(X2))) :14 -->_1 active^#(posrecip(X)) -> c_13(posrecip^#(active(X))) :13 -->_1 active^#(rcons(X1, X2)) -> c_12(rcons^#(active(X1), X2)) :12 -->_1 active^#(rcons(X1, X2)) -> c_11(rcons^#(X1, active(X2))) :11 -->_1 active^#(cons2(X1, X2)) -> c_10(cons2^#(X1, active(X2))) :10 -->_1 active^#(2ndspos(0(), Z)) -> c_9() :9 -->_1 active^#(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> c_8(rcons^#(posrecip(Y), 2ndsneg(N, Z))) :8 -->_1 active^#(2ndspos(s(N), cons(X, Z))) -> c_7(2ndspos^#(s(N), cons2(X, Z))) :7 -->_1 active^#(2ndspos(X1, X2)) -> c_6(2ndspos^#(active(X1), X2)) :6 -->_1 active^#(2ndspos(X1, X2)) -> c_5(2ndspos^#(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 26: active^#(times(X1, X2)) -> c_26(times^#(X1, active(X2))) -->_1 times^#(ok(X1), ok(X2)) -> c_60(times^#(X1, X2)) :60 -->_1 times^#(mark(X1), X2) -> c_59(times^#(X1, X2)) :59 -->_1 times^#(X1, mark(X2)) -> c_58(times^#(X1, X2)) :58 27: active^#(times(X1, X2)) -> c_27(times^#(active(X1), X2)) -->_1 times^#(ok(X1), ok(X2)) -> c_60(times^#(X1, X2)) :60 -->_1 times^#(mark(X1), X2) -> c_59(times^#(X1, X2)) :59 -->_1 times^#(X1, mark(X2)) -> c_58(times^#(X1, X2)) :58 28: active^#(times(s(X), Y)) -> c_28(plus^#(Y, times(X, Y))) -->_1 plus^#(ok(X1), ok(X2)) -> c_57(plus^#(X1, X2)) :57 -->_1 plus^#(mark(X1), X2) -> c_56(plus^#(X1, X2)) :56 -->_1 plus^#(X1, mark(X2)) -> c_55(plus^#(X1, X2)) :55 29: active^#(times(0(), Y)) -> c_29() 30: active^#(square(X)) -> c_30(times^#(X, X)) -->_1 times^#(ok(X1), ok(X2)) -> c_60(times^#(X1, X2)) :60 -->_1 times^#(mark(X1), X2) -> c_59(times^#(X1, X2)) :59 -->_1 times^#(X1, mark(X2)) -> c_58(times^#(X1, X2)) :58 31: active^#(square(X)) -> c_31(square^#(active(X))) -->_1 square^#(ok(X)) -> c_62(square^#(X)) :62 -->_1 square^#(mark(X)) -> c_61(square^#(X)) :61 32: from^#(mark(X)) -> c_32(from^#(X)) -->_1 from^#(ok(X)) -> c_33(from^#(X)) :33 -->_1 from^#(mark(X)) -> c_32(from^#(X)) :32 33: from^#(ok(X)) -> c_33(from^#(X)) -->_1 from^#(ok(X)) -> c_33(from^#(X)) :33 -->_1 from^#(mark(X)) -> c_32(from^#(X)) :32 34: cons^#(mark(X1), X2) -> c_34(cons^#(X1, X2)) -->_1 cons^#(ok(X1), ok(X2)) -> c_35(cons^#(X1, X2)) :35 -->_1 cons^#(mark(X1), X2) -> c_34(cons^#(X1, X2)) :34 35: cons^#(ok(X1), ok(X2)) -> c_35(cons^#(X1, X2)) -->_1 cons^#(ok(X1), ok(X2)) -> c_35(cons^#(X1, X2)) :35 -->_1 cons^#(mark(X1), X2) -> c_34(cons^#(X1, X2)) :34 36: s^#(mark(X)) -> c_36(s^#(X)) -->_1 s^#(ok(X)) -> c_37(s^#(X)) :37 -->_1 s^#(mark(X)) -> c_36(s^#(X)) :36 37: s^#(ok(X)) -> c_37(s^#(X)) -->_1 s^#(ok(X)) -> c_37(s^#(X)) :37 -->_1 s^#(mark(X)) -> c_36(s^#(X)) :36 38: 2ndspos^#(X1, mark(X2)) -> c_38(2ndspos^#(X1, X2)) -->_1 2ndspos^#(ok(X1), ok(X2)) -> c_40(2ndspos^#(X1, X2)) :40 -->_1 2ndspos^#(mark(X1), X2) -> c_39(2ndspos^#(X1, X2)) :39 -->_1 2ndspos^#(X1, mark(X2)) -> c_38(2ndspos^#(X1, X2)) :38 39: 2ndspos^#(mark(X1), X2) -> c_39(2ndspos^#(X1, X2)) -->_1 2ndspos^#(ok(X1), ok(X2)) -> c_40(2ndspos^#(X1, X2)) :40 -->_1 2ndspos^#(mark(X1), X2) -> c_39(2ndspos^#(X1, X2)) :39 -->_1 2ndspos^#(X1, mark(X2)) -> c_38(2ndspos^#(X1, X2)) :38 40: 2ndspos^#(ok(X1), ok(X2)) -> c_40(2ndspos^#(X1, X2)) -->_1 2ndspos^#(ok(X1), ok(X2)) -> c_40(2ndspos^#(X1, X2)) :40 -->_1 2ndspos^#(mark(X1), X2) -> c_39(2ndspos^#(X1, X2)) :39 -->_1 2ndspos^#(X1, mark(X2)) -> c_38(2ndspos^#(X1, X2)) :38 41: rcons^#(X1, mark(X2)) -> c_43(rcons^#(X1, X2)) -->_1 rcons^#(ok(X1), ok(X2)) -> c_45(rcons^#(X1, X2)) :43 -->_1 rcons^#(mark(X1), X2) -> c_44(rcons^#(X1, X2)) :42 -->_1 rcons^#(X1, mark(X2)) -> c_43(rcons^#(X1, X2)) :41 42: rcons^#(mark(X1), X2) -> c_44(rcons^#(X1, X2)) -->_1 rcons^#(ok(X1), ok(X2)) -> c_45(rcons^#(X1, X2)) :43 -->_1 rcons^#(mark(X1), X2) -> c_44(rcons^#(X1, X2)) :42 -->_1 rcons^#(X1, mark(X2)) -> c_43(rcons^#(X1, X2)) :41 43: rcons^#(ok(X1), ok(X2)) -> c_45(rcons^#(X1, X2)) -->_1 rcons^#(ok(X1), ok(X2)) -> c_45(rcons^#(X1, X2)) :43 -->_1 rcons^#(mark(X1), X2) -> c_44(rcons^#(X1, X2)) :42 -->_1 rcons^#(X1, mark(X2)) -> c_43(rcons^#(X1, X2)) :41 44: cons2^#(X1, mark(X2)) -> c_41(cons2^#(X1, X2)) -->_1 cons2^#(ok(X1), ok(X2)) -> c_42(cons2^#(X1, X2)) :45 -->_1 cons2^#(X1, mark(X2)) -> c_41(cons2^#(X1, X2)) :44 45: cons2^#(ok(X1), ok(X2)) -> c_42(cons2^#(X1, X2)) -->_1 cons2^#(ok(X1), ok(X2)) -> c_42(cons2^#(X1, X2)) :45 -->_1 cons2^#(X1, mark(X2)) -> c_41(cons2^#(X1, X2)) :44 46: posrecip^#(mark(X)) -> c_46(posrecip^#(X)) -->_1 posrecip^#(ok(X)) -> c_47(posrecip^#(X)) :47 -->_1 posrecip^#(mark(X)) -> c_46(posrecip^#(X)) :46 47: posrecip^#(ok(X)) -> c_47(posrecip^#(X)) -->_1 posrecip^#(ok(X)) -> c_47(posrecip^#(X)) :47 -->_1 posrecip^#(mark(X)) -> c_46(posrecip^#(X)) :46 48: 2ndsneg^#(X1, mark(X2)) -> c_48(2ndsneg^#(X1, X2)) -->_1 2ndsneg^#(ok(X1), ok(X2)) -> c_50(2ndsneg^#(X1, X2)) :50 -->_1 2ndsneg^#(mark(X1), X2) -> c_49(2ndsneg^#(X1, X2)) :49 -->_1 2ndsneg^#(X1, mark(X2)) -> c_48(2ndsneg^#(X1, X2)) :48 49: 2ndsneg^#(mark(X1), X2) -> c_49(2ndsneg^#(X1, X2)) -->_1 2ndsneg^#(ok(X1), ok(X2)) -> c_50(2ndsneg^#(X1, X2)) :50 -->_1 2ndsneg^#(mark(X1), X2) -> c_49(2ndsneg^#(X1, X2)) :49 -->_1 2ndsneg^#(X1, mark(X2)) -> c_48(2ndsneg^#(X1, X2)) :48 50: 2ndsneg^#(ok(X1), ok(X2)) -> c_50(2ndsneg^#(X1, X2)) -->_1 2ndsneg^#(ok(X1), ok(X2)) -> c_50(2ndsneg^#(X1, X2)) :50 -->_1 2ndsneg^#(mark(X1), X2) -> c_49(2ndsneg^#(X1, X2)) :49 -->_1 2ndsneg^#(X1, mark(X2)) -> c_48(2ndsneg^#(X1, X2)) :48 51: negrecip^#(mark(X)) -> c_51(negrecip^#(X)) -->_1 negrecip^#(ok(X)) -> c_52(negrecip^#(X)) :52 -->_1 negrecip^#(mark(X)) -> c_51(negrecip^#(X)) :51 52: negrecip^#(ok(X)) -> c_52(negrecip^#(X)) -->_1 negrecip^#(ok(X)) -> c_52(negrecip^#(X)) :52 -->_1 negrecip^#(mark(X)) -> c_51(negrecip^#(X)) :51 53: pi^#(mark(X)) -> c_53(pi^#(X)) -->_1 pi^#(ok(X)) -> c_54(pi^#(X)) :54 -->_1 pi^#(mark(X)) -> c_53(pi^#(X)) :53 54: pi^#(ok(X)) -> c_54(pi^#(X)) -->_1 pi^#(ok(X)) -> c_54(pi^#(X)) :54 -->_1 pi^#(mark(X)) -> c_53(pi^#(X)) :53 55: plus^#(X1, mark(X2)) -> c_55(plus^#(X1, X2)) -->_1 plus^#(ok(X1), ok(X2)) -> c_57(plus^#(X1, X2)) :57 -->_1 plus^#(mark(X1), X2) -> c_56(plus^#(X1, X2)) :56 -->_1 plus^#(X1, mark(X2)) -> c_55(plus^#(X1, X2)) :55 56: plus^#(mark(X1), X2) -> c_56(plus^#(X1, X2)) -->_1 plus^#(ok(X1), ok(X2)) -> c_57(plus^#(X1, X2)) :57 -->_1 plus^#(mark(X1), X2) -> c_56(plus^#(X1, X2)) :56 -->_1 plus^#(X1, mark(X2)) -> c_55(plus^#(X1, X2)) :55 57: plus^#(ok(X1), ok(X2)) -> c_57(plus^#(X1, X2)) -->_1 plus^#(ok(X1), ok(X2)) -> c_57(plus^#(X1, X2)) :57 -->_1 plus^#(mark(X1), X2) -> c_56(plus^#(X1, X2)) :56 -->_1 plus^#(X1, mark(X2)) -> c_55(plus^#(X1, X2)) :55 58: times^#(X1, mark(X2)) -> c_58(times^#(X1, X2)) -->_1 times^#(ok(X1), ok(X2)) -> c_60(times^#(X1, X2)) :60 -->_1 times^#(mark(X1), X2) -> c_59(times^#(X1, X2)) :59 -->_1 times^#(X1, mark(X2)) -> c_58(times^#(X1, X2)) :58 59: times^#(mark(X1), X2) -> c_59(times^#(X1, X2)) -->_1 times^#(ok(X1), ok(X2)) -> c_60(times^#(X1, X2)) :60 -->_1 times^#(mark(X1), X2) -> c_59(times^#(X1, X2)) :59 -->_1 times^#(X1, mark(X2)) -> c_58(times^#(X1, X2)) :58 60: times^#(ok(X1), ok(X2)) -> c_60(times^#(X1, X2)) -->_1 times^#(ok(X1), ok(X2)) -> c_60(times^#(X1, X2)) :60 -->_1 times^#(mark(X1), X2) -> c_59(times^#(X1, X2)) :59 -->_1 times^#(X1, mark(X2)) -> c_58(times^#(X1, X2)) :58 61: square^#(mark(X)) -> c_61(square^#(X)) -->_1 square^#(ok(X)) -> c_62(square^#(X)) :62 -->_1 square^#(mark(X)) -> c_61(square^#(X)) :61 62: square^#(ok(X)) -> c_62(square^#(X)) -->_1 square^#(ok(X)) -> c_62(square^#(X)) :62 -->_1 square^#(mark(X)) -> c_61(square^#(X)) :61 63: proper^#(from(X)) -> c_63(from^#(proper(X))) -->_1 from^#(ok(X)) -> c_33(from^#(X)) :33 -->_1 from^#(mark(X)) -> c_32(from^#(X)) :32 64: proper^#(cons(X1, X2)) -> c_64(cons^#(proper(X1), proper(X2))) -->_1 cons^#(ok(X1), ok(X2)) -> c_35(cons^#(X1, X2)) :35 -->_1 cons^#(mark(X1), X2) -> c_34(cons^#(X1, X2)) :34 65: proper^#(s(X)) -> c_65(s^#(proper(X))) -->_1 s^#(ok(X)) -> c_37(s^#(X)) :37 -->_1 s^#(mark(X)) -> c_36(s^#(X)) :36 66: proper^#(2ndspos(X1, X2)) -> c_66(2ndspos^#(proper(X1), proper(X2))) -->_1 2ndspos^#(ok(X1), ok(X2)) -> c_40(2ndspos^#(X1, X2)) :40 -->_1 2ndspos^#(mark(X1), X2) -> c_39(2ndspos^#(X1, X2)) :39 -->_1 2ndspos^#(X1, mark(X2)) -> c_38(2ndspos^#(X1, X2)) :38 67: proper^#(0()) -> c_67() 68: proper^#(rnil()) -> c_68() 69: proper^#(cons2(X1, X2)) -> c_69(cons2^#(proper(X1), proper(X2))) -->_1 cons2^#(ok(X1), ok(X2)) -> c_42(cons2^#(X1, X2)) :45 -->_1 cons2^#(X1, mark(X2)) -> c_41(cons2^#(X1, X2)) :44 70: proper^#(rcons(X1, X2)) -> c_70(rcons^#(proper(X1), proper(X2))) -->_1 rcons^#(ok(X1), ok(X2)) -> c_45(rcons^#(X1, X2)) :43 -->_1 rcons^#(mark(X1), X2) -> c_44(rcons^#(X1, X2)) :42 -->_1 rcons^#(X1, mark(X2)) -> c_43(rcons^#(X1, X2)) :41 71: proper^#(posrecip(X)) -> c_71(posrecip^#(proper(X))) -->_1 posrecip^#(ok(X)) -> c_47(posrecip^#(X)) :47 -->_1 posrecip^#(mark(X)) -> c_46(posrecip^#(X)) :46 72: proper^#(2ndsneg(X1, X2)) -> c_72(2ndsneg^#(proper(X1), proper(X2))) -->_1 2ndsneg^#(ok(X1), ok(X2)) -> c_50(2ndsneg^#(X1, X2)) :50 -->_1 2ndsneg^#(mark(X1), X2) -> c_49(2ndsneg^#(X1, X2)) :49 -->_1 2ndsneg^#(X1, mark(X2)) -> c_48(2ndsneg^#(X1, X2)) :48 73: proper^#(negrecip(X)) -> c_73(negrecip^#(proper(X))) -->_1 negrecip^#(ok(X)) -> c_52(negrecip^#(X)) :52 -->_1 negrecip^#(mark(X)) -> c_51(negrecip^#(X)) :51 74: proper^#(pi(X)) -> c_74(pi^#(proper(X))) -->_1 pi^#(ok(X)) -> c_54(pi^#(X)) :54 -->_1 pi^#(mark(X)) -> c_53(pi^#(X)) :53 75: proper^#(plus(X1, X2)) -> c_75(plus^#(proper(X1), proper(X2))) -->_1 plus^#(ok(X1), ok(X2)) -> c_57(plus^#(X1, X2)) :57 -->_1 plus^#(mark(X1), X2) -> c_56(plus^#(X1, X2)) :56 -->_1 plus^#(X1, mark(X2)) -> c_55(plus^#(X1, X2)) :55 76: proper^#(times(X1, X2)) -> c_76(times^#(proper(X1), proper(X2))) -->_1 times^#(ok(X1), ok(X2)) -> c_60(times^#(X1, X2)) :60 -->_1 times^#(mark(X1), X2) -> c_59(times^#(X1, X2)) :59 -->_1 times^#(X1, mark(X2)) -> c_58(times^#(X1, X2)) :58 77: proper^#(square(X)) -> c_77(square^#(proper(X))) -->_1 square^#(ok(X)) -> c_62(square^#(X)) :62 -->_1 square^#(mark(X)) -> c_61(square^#(X)) :61 78: proper^#(nil()) -> c_78() 79: top^#(mark(X)) -> c_79(top^#(proper(X))) -->_1 top^#(ok(X)) -> c_80(top^#(active(X))) :80 -->_1 top^#(mark(X)) -> c_79(top^#(proper(X))) :79 80: top^#(ok(X)) -> c_80(top^#(active(X))) -->_1 top^#(ok(X)) -> c_80(top^#(active(X))) :80 -->_1 top^#(mark(X)) -> c_79(top^#(proper(X))) :79 Only the nodes {32,33,34,35,36,37,38,40,39,41,43,42,44,45,46,47,48,50,49,51,52,53,54,55,57,56,58,60,59,61,62,67,68,78,79,80} are reachable from nodes {32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,67,68,78,79,80} 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_32(from^#(X)) , from^#(ok(X)) -> c_33(from^#(X)) , cons^#(mark(X1), X2) -> c_34(cons^#(X1, X2)) , cons^#(ok(X1), ok(X2)) -> c_35(cons^#(X1, X2)) , s^#(mark(X)) -> c_36(s^#(X)) , s^#(ok(X)) -> c_37(s^#(X)) , 2ndspos^#(X1, mark(X2)) -> c_38(2ndspos^#(X1, X2)) , 2ndspos^#(mark(X1), X2) -> c_39(2ndspos^#(X1, X2)) , 2ndspos^#(ok(X1), ok(X2)) -> c_40(2ndspos^#(X1, X2)) , rcons^#(X1, mark(X2)) -> c_43(rcons^#(X1, X2)) , rcons^#(mark(X1), X2) -> c_44(rcons^#(X1, X2)) , rcons^#(ok(X1), ok(X2)) -> c_45(rcons^#(X1, X2)) , cons2^#(X1, mark(X2)) -> c_41(cons2^#(X1, X2)) , cons2^#(ok(X1), ok(X2)) -> c_42(cons2^#(X1, X2)) , posrecip^#(mark(X)) -> c_46(posrecip^#(X)) , posrecip^#(ok(X)) -> c_47(posrecip^#(X)) , 2ndsneg^#(X1, mark(X2)) -> c_48(2ndsneg^#(X1, X2)) , 2ndsneg^#(mark(X1), X2) -> c_49(2ndsneg^#(X1, X2)) , 2ndsneg^#(ok(X1), ok(X2)) -> c_50(2ndsneg^#(X1, X2)) , negrecip^#(mark(X)) -> c_51(negrecip^#(X)) , negrecip^#(ok(X)) -> c_52(negrecip^#(X)) , pi^#(mark(X)) -> c_53(pi^#(X)) , pi^#(ok(X)) -> c_54(pi^#(X)) , plus^#(X1, mark(X2)) -> c_55(plus^#(X1, X2)) , plus^#(mark(X1), X2) -> c_56(plus^#(X1, X2)) , plus^#(ok(X1), ok(X2)) -> c_57(plus^#(X1, X2)) , times^#(X1, mark(X2)) -> c_58(times^#(X1, X2)) , times^#(mark(X1), X2) -> c_59(times^#(X1, X2)) , times^#(ok(X1), ok(X2)) -> c_60(times^#(X1, X2)) , square^#(mark(X)) -> c_61(square^#(X)) , square^#(ok(X)) -> c_62(square^#(X)) , proper^#(0()) -> c_67() , proper^#(rnil()) -> c_68() , proper^#(nil()) -> c_78() , top^#(mark(X)) -> c_79(top^#(proper(X))) , top^#(ok(X)) -> c_80(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(2ndspos(X1, X2)) -> 2ndspos(X1, active(X2)) , active(2ndspos(X1, X2)) -> 2ndspos(active(X1), X2) , active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) , active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) , active(2ndspos(0(), Z)) -> mark(rnil()) , active(cons2(X1, X2)) -> cons2(X1, active(X2)) , active(rcons(X1, X2)) -> rcons(X1, active(X2)) , active(rcons(X1, X2)) -> rcons(active(X1), X2) , active(posrecip(X)) -> posrecip(active(X)) , active(2ndsneg(X1, X2)) -> 2ndsneg(X1, active(X2)) , active(2ndsneg(X1, X2)) -> 2ndsneg(active(X1), X2) , active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) , active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) , active(2ndsneg(0(), Z)) -> mark(rnil()) , active(negrecip(X)) -> negrecip(active(X)) , active(pi(X)) -> mark(2ndspos(X, from(0()))) , active(pi(X)) -> pi(active(X)) , active(plus(X1, X2)) -> plus(X1, active(X2)) , active(plus(X1, X2)) -> plus(active(X1), X2) , active(plus(s(X), Y)) -> mark(s(plus(X, Y))) , active(plus(0(), Y)) -> mark(Y) , active(times(X1, X2)) -> times(X1, active(X2)) , active(times(X1, X2)) -> times(active(X1), X2) , active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) , active(times(0(), Y)) -> mark(0()) , active(square(X)) -> mark(times(X, X)) , active(square(X)) -> square(active(X)) , 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)) , 2ndspos(X1, mark(X2)) -> mark(2ndspos(X1, X2)) , 2ndspos(mark(X1), X2) -> mark(2ndspos(X1, X2)) , 2ndspos(ok(X1), ok(X2)) -> ok(2ndspos(X1, X2)) , cons2(X1, mark(X2)) -> mark(cons2(X1, X2)) , cons2(ok(X1), ok(X2)) -> ok(cons2(X1, X2)) , rcons(X1, mark(X2)) -> mark(rcons(X1, X2)) , rcons(mark(X1), X2) -> mark(rcons(X1, X2)) , rcons(ok(X1), ok(X2)) -> ok(rcons(X1, X2)) , posrecip(mark(X)) -> mark(posrecip(X)) , posrecip(ok(X)) -> ok(posrecip(X)) , 2ndsneg(X1, mark(X2)) -> mark(2ndsneg(X1, X2)) , 2ndsneg(mark(X1), X2) -> mark(2ndsneg(X1, X2)) , 2ndsneg(ok(X1), ok(X2)) -> ok(2ndsneg(X1, X2)) , negrecip(mark(X)) -> mark(negrecip(X)) , negrecip(ok(X)) -> ok(negrecip(X)) , pi(mark(X)) -> mark(pi(X)) , pi(ok(X)) -> ok(pi(X)) , plus(X1, mark(X2)) -> mark(plus(X1, X2)) , plus(mark(X1), X2) -> mark(plus(X1, X2)) , plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)) , times(X1, mark(X2)) -> mark(times(X1, X2)) , times(mark(X1), X2) -> mark(times(X1, X2)) , times(ok(X1), ok(X2)) -> ok(times(X1, X2)) , square(mark(X)) -> mark(square(X)) , square(ok(X)) -> ok(square(X)) , proper(from(X)) -> from(proper(X)) , proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) , proper(s(X)) -> s(proper(X)) , proper(2ndspos(X1, X2)) -> 2ndspos(proper(X1), proper(X2)) , proper(0()) -> ok(0()) , proper(rnil()) -> ok(rnil()) , proper(cons2(X1, X2)) -> cons2(proper(X1), proper(X2)) , proper(rcons(X1, X2)) -> rcons(proper(X1), proper(X2)) , proper(posrecip(X)) -> posrecip(proper(X)) , proper(2ndsneg(X1, X2)) -> 2ndsneg(proper(X1), proper(X2)) , proper(negrecip(X)) -> negrecip(proper(X)) , proper(pi(X)) -> pi(proper(X)) , proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)) , proper(times(X1, X2)) -> times(proper(X1), proper(X2)) , proper(square(X)) -> square(proper(X)) , 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 {32,33,34} by applications of Pre({32,33,34}) = {}. Here rules are labeled as follows: DPs: { 1: from^#(mark(X)) -> c_32(from^#(X)) , 2: from^#(ok(X)) -> c_33(from^#(X)) , 3: cons^#(mark(X1), X2) -> c_34(cons^#(X1, X2)) , 4: cons^#(ok(X1), ok(X2)) -> c_35(cons^#(X1, X2)) , 5: s^#(mark(X)) -> c_36(s^#(X)) , 6: s^#(ok(X)) -> c_37(s^#(X)) , 7: 2ndspos^#(X1, mark(X2)) -> c_38(2ndspos^#(X1, X2)) , 8: 2ndspos^#(mark(X1), X2) -> c_39(2ndspos^#(X1, X2)) , 9: 2ndspos^#(ok(X1), ok(X2)) -> c_40(2ndspos^#(X1, X2)) , 10: rcons^#(X1, mark(X2)) -> c_43(rcons^#(X1, X2)) , 11: rcons^#(mark(X1), X2) -> c_44(rcons^#(X1, X2)) , 12: rcons^#(ok(X1), ok(X2)) -> c_45(rcons^#(X1, X2)) , 13: cons2^#(X1, mark(X2)) -> c_41(cons2^#(X1, X2)) , 14: cons2^#(ok(X1), ok(X2)) -> c_42(cons2^#(X1, X2)) , 15: posrecip^#(mark(X)) -> c_46(posrecip^#(X)) , 16: posrecip^#(ok(X)) -> c_47(posrecip^#(X)) , 17: 2ndsneg^#(X1, mark(X2)) -> c_48(2ndsneg^#(X1, X2)) , 18: 2ndsneg^#(mark(X1), X2) -> c_49(2ndsneg^#(X1, X2)) , 19: 2ndsneg^#(ok(X1), ok(X2)) -> c_50(2ndsneg^#(X1, X2)) , 20: negrecip^#(mark(X)) -> c_51(negrecip^#(X)) , 21: negrecip^#(ok(X)) -> c_52(negrecip^#(X)) , 22: pi^#(mark(X)) -> c_53(pi^#(X)) , 23: pi^#(ok(X)) -> c_54(pi^#(X)) , 24: plus^#(X1, mark(X2)) -> c_55(plus^#(X1, X2)) , 25: plus^#(mark(X1), X2) -> c_56(plus^#(X1, X2)) , 26: plus^#(ok(X1), ok(X2)) -> c_57(plus^#(X1, X2)) , 27: times^#(X1, mark(X2)) -> c_58(times^#(X1, X2)) , 28: times^#(mark(X1), X2) -> c_59(times^#(X1, X2)) , 29: times^#(ok(X1), ok(X2)) -> c_60(times^#(X1, X2)) , 30: square^#(mark(X)) -> c_61(square^#(X)) , 31: square^#(ok(X)) -> c_62(square^#(X)) , 32: proper^#(0()) -> c_67() , 33: proper^#(rnil()) -> c_68() , 34: proper^#(nil()) -> c_78() , 35: top^#(mark(X)) -> c_79(top^#(proper(X))) , 36: top^#(ok(X)) -> c_80(top^#(active(X))) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { from^#(mark(X)) -> c_32(from^#(X)) , from^#(ok(X)) -> c_33(from^#(X)) , cons^#(mark(X1), X2) -> c_34(cons^#(X1, X2)) , cons^#(ok(X1), ok(X2)) -> c_35(cons^#(X1, X2)) , s^#(mark(X)) -> c_36(s^#(X)) , s^#(ok(X)) -> c_37(s^#(X)) , 2ndspos^#(X1, mark(X2)) -> c_38(2ndspos^#(X1, X2)) , 2ndspos^#(mark(X1), X2) -> c_39(2ndspos^#(X1, X2)) , 2ndspos^#(ok(X1), ok(X2)) -> c_40(2ndspos^#(X1, X2)) , rcons^#(X1, mark(X2)) -> c_43(rcons^#(X1, X2)) , rcons^#(mark(X1), X2) -> c_44(rcons^#(X1, X2)) , rcons^#(ok(X1), ok(X2)) -> c_45(rcons^#(X1, X2)) , cons2^#(X1, mark(X2)) -> c_41(cons2^#(X1, X2)) , cons2^#(ok(X1), ok(X2)) -> c_42(cons2^#(X1, X2)) , posrecip^#(mark(X)) -> c_46(posrecip^#(X)) , posrecip^#(ok(X)) -> c_47(posrecip^#(X)) , 2ndsneg^#(X1, mark(X2)) -> c_48(2ndsneg^#(X1, X2)) , 2ndsneg^#(mark(X1), X2) -> c_49(2ndsneg^#(X1, X2)) , 2ndsneg^#(ok(X1), ok(X2)) -> c_50(2ndsneg^#(X1, X2)) , negrecip^#(mark(X)) -> c_51(negrecip^#(X)) , negrecip^#(ok(X)) -> c_52(negrecip^#(X)) , pi^#(mark(X)) -> c_53(pi^#(X)) , pi^#(ok(X)) -> c_54(pi^#(X)) , plus^#(X1, mark(X2)) -> c_55(plus^#(X1, X2)) , plus^#(mark(X1), X2) -> c_56(plus^#(X1, X2)) , plus^#(ok(X1), ok(X2)) -> c_57(plus^#(X1, X2)) , times^#(X1, mark(X2)) -> c_58(times^#(X1, X2)) , times^#(mark(X1), X2) -> c_59(times^#(X1, X2)) , times^#(ok(X1), ok(X2)) -> c_60(times^#(X1, X2)) , square^#(mark(X)) -> c_61(square^#(X)) , square^#(ok(X)) -> c_62(square^#(X)) , top^#(mark(X)) -> c_79(top^#(proper(X))) , top^#(ok(X)) -> c_80(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(2ndspos(X1, X2)) -> 2ndspos(X1, active(X2)) , active(2ndspos(X1, X2)) -> 2ndspos(active(X1), X2) , active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) , active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) , active(2ndspos(0(), Z)) -> mark(rnil()) , active(cons2(X1, X2)) -> cons2(X1, active(X2)) , active(rcons(X1, X2)) -> rcons(X1, active(X2)) , active(rcons(X1, X2)) -> rcons(active(X1), X2) , active(posrecip(X)) -> posrecip(active(X)) , active(2ndsneg(X1, X2)) -> 2ndsneg(X1, active(X2)) , active(2ndsneg(X1, X2)) -> 2ndsneg(active(X1), X2) , active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) , active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) , active(2ndsneg(0(), Z)) -> mark(rnil()) , active(negrecip(X)) -> negrecip(active(X)) , active(pi(X)) -> mark(2ndspos(X, from(0()))) , active(pi(X)) -> pi(active(X)) , active(plus(X1, X2)) -> plus(X1, active(X2)) , active(plus(X1, X2)) -> plus(active(X1), X2) , active(plus(s(X), Y)) -> mark(s(plus(X, Y))) , active(plus(0(), Y)) -> mark(Y) , active(times(X1, X2)) -> times(X1, active(X2)) , active(times(X1, X2)) -> times(active(X1), X2) , active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) , active(times(0(), Y)) -> mark(0()) , active(square(X)) -> mark(times(X, X)) , active(square(X)) -> square(active(X)) , 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)) , 2ndspos(X1, mark(X2)) -> mark(2ndspos(X1, X2)) , 2ndspos(mark(X1), X2) -> mark(2ndspos(X1, X2)) , 2ndspos(ok(X1), ok(X2)) -> ok(2ndspos(X1, X2)) , cons2(X1, mark(X2)) -> mark(cons2(X1, X2)) , cons2(ok(X1), ok(X2)) -> ok(cons2(X1, X2)) , rcons(X1, mark(X2)) -> mark(rcons(X1, X2)) , rcons(mark(X1), X2) -> mark(rcons(X1, X2)) , rcons(ok(X1), ok(X2)) -> ok(rcons(X1, X2)) , posrecip(mark(X)) -> mark(posrecip(X)) , posrecip(ok(X)) -> ok(posrecip(X)) , 2ndsneg(X1, mark(X2)) -> mark(2ndsneg(X1, X2)) , 2ndsneg(mark(X1), X2) -> mark(2ndsneg(X1, X2)) , 2ndsneg(ok(X1), ok(X2)) -> ok(2ndsneg(X1, X2)) , negrecip(mark(X)) -> mark(negrecip(X)) , negrecip(ok(X)) -> ok(negrecip(X)) , pi(mark(X)) -> mark(pi(X)) , pi(ok(X)) -> ok(pi(X)) , plus(X1, mark(X2)) -> mark(plus(X1, X2)) , plus(mark(X1), X2) -> mark(plus(X1, X2)) , plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)) , times(X1, mark(X2)) -> mark(times(X1, X2)) , times(mark(X1), X2) -> mark(times(X1, X2)) , times(ok(X1), ok(X2)) -> ok(times(X1, X2)) , square(mark(X)) -> mark(square(X)) , square(ok(X)) -> ok(square(X)) , proper(from(X)) -> from(proper(X)) , proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) , proper(s(X)) -> s(proper(X)) , proper(2ndspos(X1, X2)) -> 2ndspos(proper(X1), proper(X2)) , proper(0()) -> ok(0()) , proper(rnil()) -> ok(rnil()) , proper(cons2(X1, X2)) -> cons2(proper(X1), proper(X2)) , proper(rcons(X1, X2)) -> rcons(proper(X1), proper(X2)) , proper(posrecip(X)) -> posrecip(proper(X)) , proper(2ndsneg(X1, X2)) -> 2ndsneg(proper(X1), proper(X2)) , proper(negrecip(X)) -> negrecip(proper(X)) , proper(pi(X)) -> pi(proper(X)) , proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)) , proper(times(X1, X2)) -> times(proper(X1), proper(X2)) , proper(square(X)) -> square(proper(X)) , proper(nil()) -> ok(nil()) , top(mark(X)) -> top(proper(X)) , top(ok(X)) -> top(active(X)) } Weak DPs: { proper^#(0()) -> c_67() , proper^#(rnil()) -> c_68() , proper^#(nil()) -> c_78() } Obligation: runtime complexity Answer: MAYBE Empty strict component of the problem is NOT empty. Arrrr..