MAYBE We are left with following problem, upon which TcT provides the certificate MAYBE. Strict Trs: { zeros() -> cons(0(), n__zeros()) , zeros() -> n__zeros() , cons(X1, X2) -> n__cons(X1, X2) , 0() -> n__0() , U11(tt()) -> tt() , U21(tt()) -> tt() , U31(tt()) -> tt() , U41(tt(), V2) -> U42(isNatIList(activate(V2))) , U42(tt()) -> tt() , isNatIList(V) -> U31(isNatList(activate(V))) , isNatIList(n__zeros()) -> tt() , isNatIList(n__cons(V1, V2)) -> U41(isNat(activate(V1)), activate(V2)) , activate(X) -> X , activate(n__zeros()) -> zeros() , activate(n__take(X1, X2)) -> take(activate(X1), activate(X2)) , activate(n__0()) -> 0() , activate(n__length(X)) -> length(activate(X)) , activate(n__s(X)) -> s(activate(X)) , activate(n__cons(X1, X2)) -> cons(activate(X1), X2) , activate(n__nil()) -> nil() , U51(tt(), V2) -> U52(isNatList(activate(V2))) , U52(tt()) -> tt() , isNatList(n__take(V1, V2)) -> U61(isNat(activate(V1)), activate(V2)) , isNatList(n__cons(V1, V2)) -> U51(isNat(activate(V1)), activate(V2)) , isNatList(n__nil()) -> tt() , U61(tt(), V2) -> U62(isNatIList(activate(V2))) , U62(tt()) -> tt() , U71(tt(), L, N) -> U72(isNat(activate(N)), activate(L)) , U72(tt(), L) -> s(length(activate(L))) , isNat(n__0()) -> tt() , isNat(n__length(V1)) -> U11(isNatList(activate(V1))) , isNat(n__s(V1)) -> U21(isNat(activate(V1))) , s(X) -> n__s(X) , length(X) -> n__length(X) , length(cons(N, L)) -> U71(isNatList(activate(L)), activate(L), N) , length(nil()) -> 0() , U81(tt()) -> nil() , nil() -> n__nil() , U91(tt(), IL, M, N) -> U92(isNat(activate(M)), activate(IL), activate(M), activate(N)) , U92(tt(), IL, M, N) -> U93(isNat(activate(N)), activate(IL), activate(M), activate(N)) , U93(tt(), IL, M, N) -> cons(activate(N), n__take(activate(M), activate(IL))) , take(X1, X2) -> n__take(X1, X2) , take(0(), IL) -> U81(isNatIList(IL)) , take(s(M), cons(N, IL)) -> U91(isNatIList(activate(IL)), activate(IL), M, N) } 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 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: { zeros^#() -> c_1(cons^#(0(), n__zeros())) , zeros^#() -> c_2() , cons^#(X1, X2) -> c_3(X1, X2) , 0^#() -> c_4() , U11^#(tt()) -> c_5() , U21^#(tt()) -> c_6() , U31^#(tt()) -> c_7() , U41^#(tt(), V2) -> c_8(U42^#(isNatIList(activate(V2)))) , U42^#(tt()) -> c_9() , isNatIList^#(V) -> c_10(U31^#(isNatList(activate(V)))) , isNatIList^#(n__zeros()) -> c_11() , isNatIList^#(n__cons(V1, V2)) -> c_12(U41^#(isNat(activate(V1)), activate(V2))) , activate^#(X) -> c_13(X) , activate^#(n__zeros()) -> c_14(zeros^#()) , activate^#(n__take(X1, X2)) -> c_15(take^#(activate(X1), activate(X2))) , activate^#(n__0()) -> c_16(0^#()) , activate^#(n__length(X)) -> c_17(length^#(activate(X))) , activate^#(n__s(X)) -> c_18(s^#(activate(X))) , activate^#(n__cons(X1, X2)) -> c_19(cons^#(activate(X1), X2)) , activate^#(n__nil()) -> c_20(nil^#()) , take^#(X1, X2) -> c_42(X1, X2) , take^#(0(), IL) -> c_43(U81^#(isNatIList(IL))) , take^#(s(M), cons(N, IL)) -> c_44(U91^#(isNatIList(activate(IL)), activate(IL), M, N)) , length^#(X) -> c_34(X) , length^#(cons(N, L)) -> c_35(U71^#(isNatList(activate(L)), activate(L), N)) , length^#(nil()) -> c_36(0^#()) , s^#(X) -> c_33(X) , nil^#() -> c_38() , U51^#(tt(), V2) -> c_21(U52^#(isNatList(activate(V2)))) , U52^#(tt()) -> c_22() , isNatList^#(n__take(V1, V2)) -> c_23(U61^#(isNat(activate(V1)), activate(V2))) , isNatList^#(n__cons(V1, V2)) -> c_24(U51^#(isNat(activate(V1)), activate(V2))) , isNatList^#(n__nil()) -> c_25() , U61^#(tt(), V2) -> c_26(U62^#(isNatIList(activate(V2)))) , U62^#(tt()) -> c_27() , U71^#(tt(), L, N) -> c_28(U72^#(isNat(activate(N)), activate(L))) , U72^#(tt(), L) -> c_29(s^#(length(activate(L)))) , isNat^#(n__0()) -> c_30() , isNat^#(n__length(V1)) -> c_31(U11^#(isNatList(activate(V1)))) , isNat^#(n__s(V1)) -> c_32(U21^#(isNat(activate(V1)))) , U81^#(tt()) -> c_37(nil^#()) , U91^#(tt(), IL, M, N) -> c_39(U92^#(isNat(activate(M)), activate(IL), activate(M), activate(N))) , U92^#(tt(), IL, M, N) -> c_40(U93^#(isNat(activate(N)), activate(IL), activate(M), activate(N))) , U93^#(tt(), IL, M, N) -> c_41(cons^#(activate(N), n__take(activate(M), activate(IL)))) } and mark the set of starting terms. We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { zeros^#() -> c_1(cons^#(0(), n__zeros())) , zeros^#() -> c_2() , cons^#(X1, X2) -> c_3(X1, X2) , 0^#() -> c_4() , U11^#(tt()) -> c_5() , U21^#(tt()) -> c_6() , U31^#(tt()) -> c_7() , U41^#(tt(), V2) -> c_8(U42^#(isNatIList(activate(V2)))) , U42^#(tt()) -> c_9() , isNatIList^#(V) -> c_10(U31^#(isNatList(activate(V)))) , isNatIList^#(n__zeros()) -> c_11() , isNatIList^#(n__cons(V1, V2)) -> c_12(U41^#(isNat(activate(V1)), activate(V2))) , activate^#(X) -> c_13(X) , activate^#(n__zeros()) -> c_14(zeros^#()) , activate^#(n__take(X1, X2)) -> c_15(take^#(activate(X1), activate(X2))) , activate^#(n__0()) -> c_16(0^#()) , activate^#(n__length(X)) -> c_17(length^#(activate(X))) , activate^#(n__s(X)) -> c_18(s^#(activate(X))) , activate^#(n__cons(X1, X2)) -> c_19(cons^#(activate(X1), X2)) , activate^#(n__nil()) -> c_20(nil^#()) , take^#(X1, X2) -> c_42(X1, X2) , take^#(0(), IL) -> c_43(U81^#(isNatIList(IL))) , take^#(s(M), cons(N, IL)) -> c_44(U91^#(isNatIList(activate(IL)), activate(IL), M, N)) , length^#(X) -> c_34(X) , length^#(cons(N, L)) -> c_35(U71^#(isNatList(activate(L)), activate(L), N)) , length^#(nil()) -> c_36(0^#()) , s^#(X) -> c_33(X) , nil^#() -> c_38() , U51^#(tt(), V2) -> c_21(U52^#(isNatList(activate(V2)))) , U52^#(tt()) -> c_22() , isNatList^#(n__take(V1, V2)) -> c_23(U61^#(isNat(activate(V1)), activate(V2))) , isNatList^#(n__cons(V1, V2)) -> c_24(U51^#(isNat(activate(V1)), activate(V2))) , isNatList^#(n__nil()) -> c_25() , U61^#(tt(), V2) -> c_26(U62^#(isNatIList(activate(V2)))) , U62^#(tt()) -> c_27() , U71^#(tt(), L, N) -> c_28(U72^#(isNat(activate(N)), activate(L))) , U72^#(tt(), L) -> c_29(s^#(length(activate(L)))) , isNat^#(n__0()) -> c_30() , isNat^#(n__length(V1)) -> c_31(U11^#(isNatList(activate(V1)))) , isNat^#(n__s(V1)) -> c_32(U21^#(isNat(activate(V1)))) , U81^#(tt()) -> c_37(nil^#()) , U91^#(tt(), IL, M, N) -> c_39(U92^#(isNat(activate(M)), activate(IL), activate(M), activate(N))) , U92^#(tt(), IL, M, N) -> c_40(U93^#(isNat(activate(N)), activate(IL), activate(M), activate(N))) , U93^#(tt(), IL, M, N) -> c_41(cons^#(activate(N), n__take(activate(M), activate(IL)))) } Strict Trs: { zeros() -> cons(0(), n__zeros()) , zeros() -> n__zeros() , cons(X1, X2) -> n__cons(X1, X2) , 0() -> n__0() , U11(tt()) -> tt() , U21(tt()) -> tt() , U31(tt()) -> tt() , U41(tt(), V2) -> U42(isNatIList(activate(V2))) , U42(tt()) -> tt() , isNatIList(V) -> U31(isNatList(activate(V))) , isNatIList(n__zeros()) -> tt() , isNatIList(n__cons(V1, V2)) -> U41(isNat(activate(V1)), activate(V2)) , activate(X) -> X , activate(n__zeros()) -> zeros() , activate(n__take(X1, X2)) -> take(activate(X1), activate(X2)) , activate(n__0()) -> 0() , activate(n__length(X)) -> length(activate(X)) , activate(n__s(X)) -> s(activate(X)) , activate(n__cons(X1, X2)) -> cons(activate(X1), X2) , activate(n__nil()) -> nil() , U51(tt(), V2) -> U52(isNatList(activate(V2))) , U52(tt()) -> tt() , isNatList(n__take(V1, V2)) -> U61(isNat(activate(V1)), activate(V2)) , isNatList(n__cons(V1, V2)) -> U51(isNat(activate(V1)), activate(V2)) , isNatList(n__nil()) -> tt() , U61(tt(), V2) -> U62(isNatIList(activate(V2))) , U62(tt()) -> tt() , U71(tt(), L, N) -> U72(isNat(activate(N)), activate(L)) , U72(tt(), L) -> s(length(activate(L))) , isNat(n__0()) -> tt() , isNat(n__length(V1)) -> U11(isNatList(activate(V1))) , isNat(n__s(V1)) -> U21(isNat(activate(V1))) , s(X) -> n__s(X) , length(X) -> n__length(X) , length(cons(N, L)) -> U71(isNatList(activate(L)), activate(L), N) , length(nil()) -> 0() , U81(tt()) -> nil() , nil() -> n__nil() , U91(tt(), IL, M, N) -> U92(isNat(activate(M)), activate(IL), activate(M), activate(N)) , U92(tt(), IL, M, N) -> U93(isNat(activate(N)), activate(IL), activate(M), activate(N)) , U93(tt(), IL, M, N) -> cons(activate(N), n__take(activate(M), activate(IL))) , take(X1, X2) -> n__take(X1, X2) , take(0(), IL) -> U81(isNatIList(IL)) , take(s(M), cons(N, IL)) -> U91(isNatIList(activate(IL)), activate(IL), M, N) } Obligation: runtime complexity Answer: MAYBE We estimate the number of application of {2,4,5,6,7,9,11,28,30,33,35,38} by applications of Pre({2,4,5,6,7,9,11,28,30,33,35,38}) = {3,8,10,13,14,16,20,21,24,26,27,29,34,39,40,41}. Here rules are labeled as follows: DPs: { 1: zeros^#() -> c_1(cons^#(0(), n__zeros())) , 2: zeros^#() -> c_2() , 3: cons^#(X1, X2) -> c_3(X1, X2) , 4: 0^#() -> c_4() , 5: U11^#(tt()) -> c_5() , 6: U21^#(tt()) -> c_6() , 7: U31^#(tt()) -> c_7() , 8: U41^#(tt(), V2) -> c_8(U42^#(isNatIList(activate(V2)))) , 9: U42^#(tt()) -> c_9() , 10: isNatIList^#(V) -> c_10(U31^#(isNatList(activate(V)))) , 11: isNatIList^#(n__zeros()) -> c_11() , 12: isNatIList^#(n__cons(V1, V2)) -> c_12(U41^#(isNat(activate(V1)), activate(V2))) , 13: activate^#(X) -> c_13(X) , 14: activate^#(n__zeros()) -> c_14(zeros^#()) , 15: activate^#(n__take(X1, X2)) -> c_15(take^#(activate(X1), activate(X2))) , 16: activate^#(n__0()) -> c_16(0^#()) , 17: activate^#(n__length(X)) -> c_17(length^#(activate(X))) , 18: activate^#(n__s(X)) -> c_18(s^#(activate(X))) , 19: activate^#(n__cons(X1, X2)) -> c_19(cons^#(activate(X1), X2)) , 20: activate^#(n__nil()) -> c_20(nil^#()) , 21: take^#(X1, X2) -> c_42(X1, X2) , 22: take^#(0(), IL) -> c_43(U81^#(isNatIList(IL))) , 23: take^#(s(M), cons(N, IL)) -> c_44(U91^#(isNatIList(activate(IL)), activate(IL), M, N)) , 24: length^#(X) -> c_34(X) , 25: length^#(cons(N, L)) -> c_35(U71^#(isNatList(activate(L)), activate(L), N)) , 26: length^#(nil()) -> c_36(0^#()) , 27: s^#(X) -> c_33(X) , 28: nil^#() -> c_38() , 29: U51^#(tt(), V2) -> c_21(U52^#(isNatList(activate(V2)))) , 30: U52^#(tt()) -> c_22() , 31: isNatList^#(n__take(V1, V2)) -> c_23(U61^#(isNat(activate(V1)), activate(V2))) , 32: isNatList^#(n__cons(V1, V2)) -> c_24(U51^#(isNat(activate(V1)), activate(V2))) , 33: isNatList^#(n__nil()) -> c_25() , 34: U61^#(tt(), V2) -> c_26(U62^#(isNatIList(activate(V2)))) , 35: U62^#(tt()) -> c_27() , 36: U71^#(tt(), L, N) -> c_28(U72^#(isNat(activate(N)), activate(L))) , 37: U72^#(tt(), L) -> c_29(s^#(length(activate(L)))) , 38: isNat^#(n__0()) -> c_30() , 39: isNat^#(n__length(V1)) -> c_31(U11^#(isNatList(activate(V1)))) , 40: isNat^#(n__s(V1)) -> c_32(U21^#(isNat(activate(V1)))) , 41: U81^#(tt()) -> c_37(nil^#()) , 42: U91^#(tt(), IL, M, N) -> c_39(U92^#(isNat(activate(M)), activate(IL), activate(M), activate(N))) , 43: U92^#(tt(), IL, M, N) -> c_40(U93^#(isNat(activate(N)), activate(IL), activate(M), activate(N))) , 44: U93^#(tt(), IL, M, N) -> c_41(cons^#(activate(N), n__take(activate(M), activate(IL)))) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { zeros^#() -> c_1(cons^#(0(), n__zeros())) , cons^#(X1, X2) -> c_3(X1, X2) , U41^#(tt(), V2) -> c_8(U42^#(isNatIList(activate(V2)))) , isNatIList^#(V) -> c_10(U31^#(isNatList(activate(V)))) , isNatIList^#(n__cons(V1, V2)) -> c_12(U41^#(isNat(activate(V1)), activate(V2))) , activate^#(X) -> c_13(X) , activate^#(n__zeros()) -> c_14(zeros^#()) , activate^#(n__take(X1, X2)) -> c_15(take^#(activate(X1), activate(X2))) , activate^#(n__0()) -> c_16(0^#()) , activate^#(n__length(X)) -> c_17(length^#(activate(X))) , activate^#(n__s(X)) -> c_18(s^#(activate(X))) , activate^#(n__cons(X1, X2)) -> c_19(cons^#(activate(X1), X2)) , activate^#(n__nil()) -> c_20(nil^#()) , take^#(X1, X2) -> c_42(X1, X2) , take^#(0(), IL) -> c_43(U81^#(isNatIList(IL))) , take^#(s(M), cons(N, IL)) -> c_44(U91^#(isNatIList(activate(IL)), activate(IL), M, N)) , length^#(X) -> c_34(X) , length^#(cons(N, L)) -> c_35(U71^#(isNatList(activate(L)), activate(L), N)) , length^#(nil()) -> c_36(0^#()) , s^#(X) -> c_33(X) , U51^#(tt(), V2) -> c_21(U52^#(isNatList(activate(V2)))) , isNatList^#(n__take(V1, V2)) -> c_23(U61^#(isNat(activate(V1)), activate(V2))) , isNatList^#(n__cons(V1, V2)) -> c_24(U51^#(isNat(activate(V1)), activate(V2))) , U61^#(tt(), V2) -> c_26(U62^#(isNatIList(activate(V2)))) , U71^#(tt(), L, N) -> c_28(U72^#(isNat(activate(N)), activate(L))) , U72^#(tt(), L) -> c_29(s^#(length(activate(L)))) , isNat^#(n__length(V1)) -> c_31(U11^#(isNatList(activate(V1)))) , isNat^#(n__s(V1)) -> c_32(U21^#(isNat(activate(V1)))) , U81^#(tt()) -> c_37(nil^#()) , U91^#(tt(), IL, M, N) -> c_39(U92^#(isNat(activate(M)), activate(IL), activate(M), activate(N))) , U92^#(tt(), IL, M, N) -> c_40(U93^#(isNat(activate(N)), activate(IL), activate(M), activate(N))) , U93^#(tt(), IL, M, N) -> c_41(cons^#(activate(N), n__take(activate(M), activate(IL)))) } Strict Trs: { zeros() -> cons(0(), n__zeros()) , zeros() -> n__zeros() , cons(X1, X2) -> n__cons(X1, X2) , 0() -> n__0() , U11(tt()) -> tt() , U21(tt()) -> tt() , U31(tt()) -> tt() , U41(tt(), V2) -> U42(isNatIList(activate(V2))) , U42(tt()) -> tt() , isNatIList(V) -> U31(isNatList(activate(V))) , isNatIList(n__zeros()) -> tt() , isNatIList(n__cons(V1, V2)) -> U41(isNat(activate(V1)), activate(V2)) , activate(X) -> X , activate(n__zeros()) -> zeros() , activate(n__take(X1, X2)) -> take(activate(X1), activate(X2)) , activate(n__0()) -> 0() , activate(n__length(X)) -> length(activate(X)) , activate(n__s(X)) -> s(activate(X)) , activate(n__cons(X1, X2)) -> cons(activate(X1), X2) , activate(n__nil()) -> nil() , U51(tt(), V2) -> U52(isNatList(activate(V2))) , U52(tt()) -> tt() , isNatList(n__take(V1, V2)) -> U61(isNat(activate(V1)), activate(V2)) , isNatList(n__cons(V1, V2)) -> U51(isNat(activate(V1)), activate(V2)) , isNatList(n__nil()) -> tt() , U61(tt(), V2) -> U62(isNatIList(activate(V2))) , U62(tt()) -> tt() , U71(tt(), L, N) -> U72(isNat(activate(N)), activate(L)) , U72(tt(), L) -> s(length(activate(L))) , isNat(n__0()) -> tt() , isNat(n__length(V1)) -> U11(isNatList(activate(V1))) , isNat(n__s(V1)) -> U21(isNat(activate(V1))) , s(X) -> n__s(X) , length(X) -> n__length(X) , length(cons(N, L)) -> U71(isNatList(activate(L)), activate(L), N) , length(nil()) -> 0() , U81(tt()) -> nil() , nil() -> n__nil() , U91(tt(), IL, M, N) -> U92(isNat(activate(M)), activate(IL), activate(M), activate(N)) , U92(tt(), IL, M, N) -> U93(isNat(activate(N)), activate(IL), activate(M), activate(N)) , U93(tt(), IL, M, N) -> cons(activate(N), n__take(activate(M), activate(IL))) , take(X1, X2) -> n__take(X1, X2) , take(0(), IL) -> U81(isNatIList(IL)) , take(s(M), cons(N, IL)) -> U91(isNatIList(activate(IL)), activate(IL), M, N) } Weak DPs: { zeros^#() -> c_2() , 0^#() -> c_4() , U11^#(tt()) -> c_5() , U21^#(tt()) -> c_6() , U31^#(tt()) -> c_7() , U42^#(tt()) -> c_9() , isNatIList^#(n__zeros()) -> c_11() , nil^#() -> c_38() , U52^#(tt()) -> c_22() , isNatList^#(n__nil()) -> c_25() , U62^#(tt()) -> c_27() , isNat^#(n__0()) -> c_30() } Obligation: runtime complexity Answer: MAYBE We estimate the number of application of {3,4,9,13,19,21,24,27,28,29} by applications of Pre({3,4,9,13,19,21,24,27,28,29}) = {2,5,6,10,14,15,17,20,22,23}. Here rules are labeled as follows: DPs: { 1: zeros^#() -> c_1(cons^#(0(), n__zeros())) , 2: cons^#(X1, X2) -> c_3(X1, X2) , 3: U41^#(tt(), V2) -> c_8(U42^#(isNatIList(activate(V2)))) , 4: isNatIList^#(V) -> c_10(U31^#(isNatList(activate(V)))) , 5: isNatIList^#(n__cons(V1, V2)) -> c_12(U41^#(isNat(activate(V1)), activate(V2))) , 6: activate^#(X) -> c_13(X) , 7: activate^#(n__zeros()) -> c_14(zeros^#()) , 8: activate^#(n__take(X1, X2)) -> c_15(take^#(activate(X1), activate(X2))) , 9: activate^#(n__0()) -> c_16(0^#()) , 10: activate^#(n__length(X)) -> c_17(length^#(activate(X))) , 11: activate^#(n__s(X)) -> c_18(s^#(activate(X))) , 12: activate^#(n__cons(X1, X2)) -> c_19(cons^#(activate(X1), X2)) , 13: activate^#(n__nil()) -> c_20(nil^#()) , 14: take^#(X1, X2) -> c_42(X1, X2) , 15: take^#(0(), IL) -> c_43(U81^#(isNatIList(IL))) , 16: take^#(s(M), cons(N, IL)) -> c_44(U91^#(isNatIList(activate(IL)), activate(IL), M, N)) , 17: length^#(X) -> c_34(X) , 18: length^#(cons(N, L)) -> c_35(U71^#(isNatList(activate(L)), activate(L), N)) , 19: length^#(nil()) -> c_36(0^#()) , 20: s^#(X) -> c_33(X) , 21: U51^#(tt(), V2) -> c_21(U52^#(isNatList(activate(V2)))) , 22: isNatList^#(n__take(V1, V2)) -> c_23(U61^#(isNat(activate(V1)), activate(V2))) , 23: isNatList^#(n__cons(V1, V2)) -> c_24(U51^#(isNat(activate(V1)), activate(V2))) , 24: U61^#(tt(), V2) -> c_26(U62^#(isNatIList(activate(V2)))) , 25: U71^#(tt(), L, N) -> c_28(U72^#(isNat(activate(N)), activate(L))) , 26: U72^#(tt(), L) -> c_29(s^#(length(activate(L)))) , 27: isNat^#(n__length(V1)) -> c_31(U11^#(isNatList(activate(V1)))) , 28: isNat^#(n__s(V1)) -> c_32(U21^#(isNat(activate(V1)))) , 29: U81^#(tt()) -> c_37(nil^#()) , 30: U91^#(tt(), IL, M, N) -> c_39(U92^#(isNat(activate(M)), activate(IL), activate(M), activate(N))) , 31: U92^#(tt(), IL, M, N) -> c_40(U93^#(isNat(activate(N)), activate(IL), activate(M), activate(N))) , 32: U93^#(tt(), IL, M, N) -> c_41(cons^#(activate(N), n__take(activate(M), activate(IL)))) , 33: zeros^#() -> c_2() , 34: 0^#() -> c_4() , 35: U11^#(tt()) -> c_5() , 36: U21^#(tt()) -> c_6() , 37: U31^#(tt()) -> c_7() , 38: U42^#(tt()) -> c_9() , 39: isNatIList^#(n__zeros()) -> c_11() , 40: nil^#() -> c_38() , 41: U52^#(tt()) -> c_22() , 42: isNatList^#(n__nil()) -> c_25() , 43: U62^#(tt()) -> c_27() , 44: isNat^#(n__0()) -> c_30() } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { zeros^#() -> c_1(cons^#(0(), n__zeros())) , cons^#(X1, X2) -> c_3(X1, X2) , isNatIList^#(n__cons(V1, V2)) -> c_12(U41^#(isNat(activate(V1)), activate(V2))) , activate^#(X) -> c_13(X) , activate^#(n__zeros()) -> c_14(zeros^#()) , activate^#(n__take(X1, X2)) -> c_15(take^#(activate(X1), activate(X2))) , activate^#(n__length(X)) -> c_17(length^#(activate(X))) , activate^#(n__s(X)) -> c_18(s^#(activate(X))) , activate^#(n__cons(X1, X2)) -> c_19(cons^#(activate(X1), X2)) , take^#(X1, X2) -> c_42(X1, X2) , take^#(0(), IL) -> c_43(U81^#(isNatIList(IL))) , take^#(s(M), cons(N, IL)) -> c_44(U91^#(isNatIList(activate(IL)), activate(IL), M, N)) , length^#(X) -> c_34(X) , length^#(cons(N, L)) -> c_35(U71^#(isNatList(activate(L)), activate(L), N)) , s^#(X) -> c_33(X) , isNatList^#(n__take(V1, V2)) -> c_23(U61^#(isNat(activate(V1)), activate(V2))) , isNatList^#(n__cons(V1, V2)) -> c_24(U51^#(isNat(activate(V1)), activate(V2))) , U71^#(tt(), L, N) -> c_28(U72^#(isNat(activate(N)), activate(L))) , U72^#(tt(), L) -> c_29(s^#(length(activate(L)))) , U91^#(tt(), IL, M, N) -> c_39(U92^#(isNat(activate(M)), activate(IL), activate(M), activate(N))) , U92^#(tt(), IL, M, N) -> c_40(U93^#(isNat(activate(N)), activate(IL), activate(M), activate(N))) , U93^#(tt(), IL, M, N) -> c_41(cons^#(activate(N), n__take(activate(M), activate(IL)))) } Strict Trs: { zeros() -> cons(0(), n__zeros()) , zeros() -> n__zeros() , cons(X1, X2) -> n__cons(X1, X2) , 0() -> n__0() , U11(tt()) -> tt() , U21(tt()) -> tt() , U31(tt()) -> tt() , U41(tt(), V2) -> U42(isNatIList(activate(V2))) , U42(tt()) -> tt() , isNatIList(V) -> U31(isNatList(activate(V))) , isNatIList(n__zeros()) -> tt() , isNatIList(n__cons(V1, V2)) -> U41(isNat(activate(V1)), activate(V2)) , activate(X) -> X , activate(n__zeros()) -> zeros() , activate(n__take(X1, X2)) -> take(activate(X1), activate(X2)) , activate(n__0()) -> 0() , activate(n__length(X)) -> length(activate(X)) , activate(n__s(X)) -> s(activate(X)) , activate(n__cons(X1, X2)) -> cons(activate(X1), X2) , activate(n__nil()) -> nil() , U51(tt(), V2) -> U52(isNatList(activate(V2))) , U52(tt()) -> tt() , isNatList(n__take(V1, V2)) -> U61(isNat(activate(V1)), activate(V2)) , isNatList(n__cons(V1, V2)) -> U51(isNat(activate(V1)), activate(V2)) , isNatList(n__nil()) -> tt() , U61(tt(), V2) -> U62(isNatIList(activate(V2))) , U62(tt()) -> tt() , U71(tt(), L, N) -> U72(isNat(activate(N)), activate(L)) , U72(tt(), L) -> s(length(activate(L))) , isNat(n__0()) -> tt() , isNat(n__length(V1)) -> U11(isNatList(activate(V1))) , isNat(n__s(V1)) -> U21(isNat(activate(V1))) , s(X) -> n__s(X) , length(X) -> n__length(X) , length(cons(N, L)) -> U71(isNatList(activate(L)), activate(L), N) , length(nil()) -> 0() , U81(tt()) -> nil() , nil() -> n__nil() , U91(tt(), IL, M, N) -> U92(isNat(activate(M)), activate(IL), activate(M), activate(N)) , U92(tt(), IL, M, N) -> U93(isNat(activate(N)), activate(IL), activate(M), activate(N)) , U93(tt(), IL, M, N) -> cons(activate(N), n__take(activate(M), activate(IL))) , take(X1, X2) -> n__take(X1, X2) , take(0(), IL) -> U81(isNatIList(IL)) , take(s(M), cons(N, IL)) -> U91(isNatIList(activate(IL)), activate(IL), M, N) } Weak DPs: { zeros^#() -> c_2() , 0^#() -> c_4() , U11^#(tt()) -> c_5() , U21^#(tt()) -> c_6() , U31^#(tt()) -> c_7() , U41^#(tt(), V2) -> c_8(U42^#(isNatIList(activate(V2)))) , U42^#(tt()) -> c_9() , isNatIList^#(V) -> c_10(U31^#(isNatList(activate(V)))) , isNatIList^#(n__zeros()) -> c_11() , activate^#(n__0()) -> c_16(0^#()) , activate^#(n__nil()) -> c_20(nil^#()) , length^#(nil()) -> c_36(0^#()) , nil^#() -> c_38() , U51^#(tt(), V2) -> c_21(U52^#(isNatList(activate(V2)))) , U52^#(tt()) -> c_22() , isNatList^#(n__nil()) -> c_25() , U61^#(tt(), V2) -> c_26(U62^#(isNatIList(activate(V2)))) , U62^#(tt()) -> c_27() , isNat^#(n__0()) -> c_30() , isNat^#(n__length(V1)) -> c_31(U11^#(isNatList(activate(V1)))) , isNat^#(n__s(V1)) -> c_32(U21^#(isNat(activate(V1)))) , U81^#(tt()) -> c_37(nil^#()) } Obligation: runtime complexity Answer: MAYBE We estimate the number of application of {3,11,16,17} by applications of Pre({3,11,16,17}) = {2,4,6,10,13,15}. Here rules are labeled as follows: DPs: { 1: zeros^#() -> c_1(cons^#(0(), n__zeros())) , 2: cons^#(X1, X2) -> c_3(X1, X2) , 3: isNatIList^#(n__cons(V1, V2)) -> c_12(U41^#(isNat(activate(V1)), activate(V2))) , 4: activate^#(X) -> c_13(X) , 5: activate^#(n__zeros()) -> c_14(zeros^#()) , 6: activate^#(n__take(X1, X2)) -> c_15(take^#(activate(X1), activate(X2))) , 7: activate^#(n__length(X)) -> c_17(length^#(activate(X))) , 8: activate^#(n__s(X)) -> c_18(s^#(activate(X))) , 9: activate^#(n__cons(X1, X2)) -> c_19(cons^#(activate(X1), X2)) , 10: take^#(X1, X2) -> c_42(X1, X2) , 11: take^#(0(), IL) -> c_43(U81^#(isNatIList(IL))) , 12: take^#(s(M), cons(N, IL)) -> c_44(U91^#(isNatIList(activate(IL)), activate(IL), M, N)) , 13: length^#(X) -> c_34(X) , 14: length^#(cons(N, L)) -> c_35(U71^#(isNatList(activate(L)), activate(L), N)) , 15: s^#(X) -> c_33(X) , 16: isNatList^#(n__take(V1, V2)) -> c_23(U61^#(isNat(activate(V1)), activate(V2))) , 17: isNatList^#(n__cons(V1, V2)) -> c_24(U51^#(isNat(activate(V1)), activate(V2))) , 18: U71^#(tt(), L, N) -> c_28(U72^#(isNat(activate(N)), activate(L))) , 19: U72^#(tt(), L) -> c_29(s^#(length(activate(L)))) , 20: U91^#(tt(), IL, M, N) -> c_39(U92^#(isNat(activate(M)), activate(IL), activate(M), activate(N))) , 21: U92^#(tt(), IL, M, N) -> c_40(U93^#(isNat(activate(N)), activate(IL), activate(M), activate(N))) , 22: U93^#(tt(), IL, M, N) -> c_41(cons^#(activate(N), n__take(activate(M), activate(IL)))) , 23: zeros^#() -> c_2() , 24: 0^#() -> c_4() , 25: U11^#(tt()) -> c_5() , 26: U21^#(tt()) -> c_6() , 27: U31^#(tt()) -> c_7() , 28: U41^#(tt(), V2) -> c_8(U42^#(isNatIList(activate(V2)))) , 29: U42^#(tt()) -> c_9() , 30: isNatIList^#(V) -> c_10(U31^#(isNatList(activate(V)))) , 31: isNatIList^#(n__zeros()) -> c_11() , 32: activate^#(n__0()) -> c_16(0^#()) , 33: activate^#(n__nil()) -> c_20(nil^#()) , 34: length^#(nil()) -> c_36(0^#()) , 35: nil^#() -> c_38() , 36: U51^#(tt(), V2) -> c_21(U52^#(isNatList(activate(V2)))) , 37: U52^#(tt()) -> c_22() , 38: isNatList^#(n__nil()) -> c_25() , 39: U61^#(tt(), V2) -> c_26(U62^#(isNatIList(activate(V2)))) , 40: U62^#(tt()) -> c_27() , 41: isNat^#(n__0()) -> c_30() , 42: isNat^#(n__length(V1)) -> c_31(U11^#(isNatList(activate(V1)))) , 43: isNat^#(n__s(V1)) -> c_32(U21^#(isNat(activate(V1)))) , 44: U81^#(tt()) -> c_37(nil^#()) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { zeros^#() -> c_1(cons^#(0(), n__zeros())) , cons^#(X1, X2) -> c_3(X1, X2) , activate^#(X) -> c_13(X) , activate^#(n__zeros()) -> c_14(zeros^#()) , activate^#(n__take(X1, X2)) -> c_15(take^#(activate(X1), activate(X2))) , activate^#(n__length(X)) -> c_17(length^#(activate(X))) , activate^#(n__s(X)) -> c_18(s^#(activate(X))) , activate^#(n__cons(X1, X2)) -> c_19(cons^#(activate(X1), X2)) , take^#(X1, X2) -> c_42(X1, X2) , take^#(s(M), cons(N, IL)) -> c_44(U91^#(isNatIList(activate(IL)), activate(IL), M, N)) , length^#(X) -> c_34(X) , length^#(cons(N, L)) -> c_35(U71^#(isNatList(activate(L)), activate(L), N)) , s^#(X) -> c_33(X) , U71^#(tt(), L, N) -> c_28(U72^#(isNat(activate(N)), activate(L))) , U72^#(tt(), L) -> c_29(s^#(length(activate(L)))) , U91^#(tt(), IL, M, N) -> c_39(U92^#(isNat(activate(M)), activate(IL), activate(M), activate(N))) , U92^#(tt(), IL, M, N) -> c_40(U93^#(isNat(activate(N)), activate(IL), activate(M), activate(N))) , U93^#(tt(), IL, M, N) -> c_41(cons^#(activate(N), n__take(activate(M), activate(IL)))) } Strict Trs: { zeros() -> cons(0(), n__zeros()) , zeros() -> n__zeros() , cons(X1, X2) -> n__cons(X1, X2) , 0() -> n__0() , U11(tt()) -> tt() , U21(tt()) -> tt() , U31(tt()) -> tt() , U41(tt(), V2) -> U42(isNatIList(activate(V2))) , U42(tt()) -> tt() , isNatIList(V) -> U31(isNatList(activate(V))) , isNatIList(n__zeros()) -> tt() , isNatIList(n__cons(V1, V2)) -> U41(isNat(activate(V1)), activate(V2)) , activate(X) -> X , activate(n__zeros()) -> zeros() , activate(n__take(X1, X2)) -> take(activate(X1), activate(X2)) , activate(n__0()) -> 0() , activate(n__length(X)) -> length(activate(X)) , activate(n__s(X)) -> s(activate(X)) , activate(n__cons(X1, X2)) -> cons(activate(X1), X2) , activate(n__nil()) -> nil() , U51(tt(), V2) -> U52(isNatList(activate(V2))) , U52(tt()) -> tt() , isNatList(n__take(V1, V2)) -> U61(isNat(activate(V1)), activate(V2)) , isNatList(n__cons(V1, V2)) -> U51(isNat(activate(V1)), activate(V2)) , isNatList(n__nil()) -> tt() , U61(tt(), V2) -> U62(isNatIList(activate(V2))) , U62(tt()) -> tt() , U71(tt(), L, N) -> U72(isNat(activate(N)), activate(L)) , U72(tt(), L) -> s(length(activate(L))) , isNat(n__0()) -> tt() , isNat(n__length(V1)) -> U11(isNatList(activate(V1))) , isNat(n__s(V1)) -> U21(isNat(activate(V1))) , s(X) -> n__s(X) , length(X) -> n__length(X) , length(cons(N, L)) -> U71(isNatList(activate(L)), activate(L), N) , length(nil()) -> 0() , U81(tt()) -> nil() , nil() -> n__nil() , U91(tt(), IL, M, N) -> U92(isNat(activate(M)), activate(IL), activate(M), activate(N)) , U92(tt(), IL, M, N) -> U93(isNat(activate(N)), activate(IL), activate(M), activate(N)) , U93(tt(), IL, M, N) -> cons(activate(N), n__take(activate(M), activate(IL))) , take(X1, X2) -> n__take(X1, X2) , take(0(), IL) -> U81(isNatIList(IL)) , take(s(M), cons(N, IL)) -> U91(isNatIList(activate(IL)), activate(IL), M, N) } Weak DPs: { zeros^#() -> c_2() , 0^#() -> c_4() , U11^#(tt()) -> c_5() , U21^#(tt()) -> c_6() , U31^#(tt()) -> c_7() , U41^#(tt(), V2) -> c_8(U42^#(isNatIList(activate(V2)))) , U42^#(tt()) -> c_9() , isNatIList^#(V) -> c_10(U31^#(isNatList(activate(V)))) , isNatIList^#(n__zeros()) -> c_11() , isNatIList^#(n__cons(V1, V2)) -> c_12(U41^#(isNat(activate(V1)), activate(V2))) , activate^#(n__0()) -> c_16(0^#()) , activate^#(n__nil()) -> c_20(nil^#()) , take^#(0(), IL) -> c_43(U81^#(isNatIList(IL))) , length^#(nil()) -> c_36(0^#()) , nil^#() -> c_38() , U51^#(tt(), V2) -> c_21(U52^#(isNatList(activate(V2)))) , U52^#(tt()) -> c_22() , isNatList^#(n__take(V1, V2)) -> c_23(U61^#(isNat(activate(V1)), activate(V2))) , isNatList^#(n__cons(V1, V2)) -> c_24(U51^#(isNat(activate(V1)), activate(V2))) , isNatList^#(n__nil()) -> c_25() , U61^#(tt(), V2) -> c_26(U62^#(isNatIList(activate(V2)))) , U62^#(tt()) -> c_27() , isNat^#(n__0()) -> c_30() , isNat^#(n__length(V1)) -> c_31(U11^#(isNatList(activate(V1)))) , isNat^#(n__s(V1)) -> c_32(U21^#(isNat(activate(V1)))) , U81^#(tt()) -> c_37(nil^#()) } Obligation: runtime complexity Answer: MAYBE Empty strict component of the problem is NOT empty. Arrrr..