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