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(), V1) -> U12(isNatList(activate(V1))) , U12(tt()) -> tt() , isNatList(n__cons(V1, V2)) -> U51(and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))), activate(V1), activate(V2)) , isNatList(n__nil()) -> tt() , activate(X) -> X , activate(n__zeros()) -> zeros() , 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__isNatIListKind(X)) -> isNatIListKind(X) , activate(n__nil()) -> nil() , activate(n__and(X1, X2)) -> and(activate(X1), X2) , activate(n__isNat(X)) -> isNat(X) , activate(n__isNatKind(X)) -> isNatKind(X) , U21(tt(), V1) -> U22(isNat(activate(V1))) , U22(tt()) -> tt() , isNat(X) -> n__isNat(X) , isNat(n__0()) -> tt() , isNat(n__length(V1)) -> U11(isNatIListKind(activate(V1)), activate(V1)) , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) , U31(tt(), V) -> U32(isNatList(activate(V))) , U32(tt()) -> tt() , U41(tt(), V1, V2) -> U42(isNat(activate(V1)), activate(V2)) , U42(tt(), V2) -> U43(isNatIList(activate(V2))) , U43(tt()) -> tt() , isNatIList(V) -> U31(isNatIListKind(activate(V)), activate(V)) , isNatIList(n__zeros()) -> tt() , isNatIList(n__cons(V1, V2)) -> U41(and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))), activate(V1), activate(V2)) , U51(tt(), V1, V2) -> U52(isNat(activate(V1)), activate(V2)) , U52(tt(), V2) -> U53(isNatList(activate(V2))) , U53(tt()) -> tt() , U61(tt(), L) -> s(length(activate(L))) , s(X) -> n__s(X) , length(X) -> n__length(X) , length(cons(N, L)) -> U61(and(and(isNatList(activate(L)), n__isNatIListKind(activate(L))), n__and(n__isNat(N), n__isNatKind(N))), activate(L)) , length(nil()) -> 0() , and(X1, X2) -> n__and(X1, X2) , and(tt(), X) -> activate(X) , isNatIListKind(X) -> n__isNatIListKind(X) , isNatIListKind(n__zeros()) -> tt() , isNatIListKind(n__cons(V1, V2)) -> and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))) , isNatIListKind(n__nil()) -> tt() , isNatKind(X) -> n__isNatKind(X) , isNatKind(n__0()) -> tt() , isNatKind(n__length(V1)) -> isNatIListKind(activate(V1)) , isNatKind(n__s(V1)) -> isNatKind(activate(V1)) , nil() -> n__nil() } 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(), V1) -> c_5(U12^#(isNatList(activate(V1)))) , U12^#(tt()) -> c_6() , isNatList^#(n__cons(V1, V2)) -> c_7(U51^#(and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))), activate(V1), activate(V2))) , isNatList^#(n__nil()) -> c_8() , U51^#(tt(), V1, V2) -> c_34(U52^#(isNat(activate(V1)), activate(V2))) , activate^#(X) -> c_9(X) , activate^#(n__zeros()) -> c_10(zeros^#()) , activate^#(n__0()) -> c_11(0^#()) , activate^#(n__length(X)) -> c_12(length^#(activate(X))) , activate^#(n__s(X)) -> c_13(s^#(activate(X))) , activate^#(n__cons(X1, X2)) -> c_14(cons^#(activate(X1), X2)) , activate^#(n__isNatIListKind(X)) -> c_15(isNatIListKind^#(X)) , activate^#(n__nil()) -> c_16(nil^#()) , activate^#(n__and(X1, X2)) -> c_17(and^#(activate(X1), X2)) , activate^#(n__isNat(X)) -> c_18(isNat^#(X)) , activate^#(n__isNatKind(X)) -> c_19(isNatKind^#(X)) , length^#(X) -> c_39(X) , length^#(cons(N, L)) -> c_40(U61^#(and(and(isNatList(activate(L)), n__isNatIListKind(activate(L))), n__and(n__isNat(N), n__isNatKind(N))), activate(L))) , length^#(nil()) -> c_41(0^#()) , s^#(X) -> c_38(X) , isNatIListKind^#(X) -> c_44(X) , isNatIListKind^#(n__zeros()) -> c_45() , isNatIListKind^#(n__cons(V1, V2)) -> c_46(and^#(isNatKind(activate(V1)), n__isNatIListKind(activate(V2)))) , isNatIListKind^#(n__nil()) -> c_47() , nil^#() -> c_52() , and^#(X1, X2) -> c_42(X1, X2) , and^#(tt(), X) -> c_43(activate^#(X)) , isNat^#(X) -> c_22(X) , isNat^#(n__0()) -> c_23() , isNat^#(n__length(V1)) -> c_24(U11^#(isNatIListKind(activate(V1)), activate(V1))) , isNat^#(n__s(V1)) -> c_25(U21^#(isNatKind(activate(V1)), activate(V1))) , isNatKind^#(X) -> c_48(X) , isNatKind^#(n__0()) -> c_49() , isNatKind^#(n__length(V1)) -> c_50(isNatIListKind^#(activate(V1))) , isNatKind^#(n__s(V1)) -> c_51(isNatKind^#(activate(V1))) , U21^#(tt(), V1) -> c_20(U22^#(isNat(activate(V1)))) , U22^#(tt()) -> c_21() , U31^#(tt(), V) -> c_26(U32^#(isNatList(activate(V)))) , U32^#(tt()) -> c_27() , U41^#(tt(), V1, V2) -> c_28(U42^#(isNat(activate(V1)), activate(V2))) , U42^#(tt(), V2) -> c_29(U43^#(isNatIList(activate(V2)))) , U43^#(tt()) -> c_30() , isNatIList^#(V) -> c_31(U31^#(isNatIListKind(activate(V)), activate(V))) , isNatIList^#(n__zeros()) -> c_32() , isNatIList^#(n__cons(V1, V2)) -> c_33(U41^#(and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))), activate(V1), activate(V2))) , U52^#(tt(), V2) -> c_35(U53^#(isNatList(activate(V2)))) , U53^#(tt()) -> c_36() , U61^#(tt(), L) -> c_37(s^#(length(activate(L)))) } 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(), V1) -> c_5(U12^#(isNatList(activate(V1)))) , U12^#(tt()) -> c_6() , isNatList^#(n__cons(V1, V2)) -> c_7(U51^#(and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))), activate(V1), activate(V2))) , isNatList^#(n__nil()) -> c_8() , U51^#(tt(), V1, V2) -> c_34(U52^#(isNat(activate(V1)), activate(V2))) , activate^#(X) -> c_9(X) , activate^#(n__zeros()) -> c_10(zeros^#()) , activate^#(n__0()) -> c_11(0^#()) , activate^#(n__length(X)) -> c_12(length^#(activate(X))) , activate^#(n__s(X)) -> c_13(s^#(activate(X))) , activate^#(n__cons(X1, X2)) -> c_14(cons^#(activate(X1), X2)) , activate^#(n__isNatIListKind(X)) -> c_15(isNatIListKind^#(X)) , activate^#(n__nil()) -> c_16(nil^#()) , activate^#(n__and(X1, X2)) -> c_17(and^#(activate(X1), X2)) , activate^#(n__isNat(X)) -> c_18(isNat^#(X)) , activate^#(n__isNatKind(X)) -> c_19(isNatKind^#(X)) , length^#(X) -> c_39(X) , length^#(cons(N, L)) -> c_40(U61^#(and(and(isNatList(activate(L)), n__isNatIListKind(activate(L))), n__and(n__isNat(N), n__isNatKind(N))), activate(L))) , length^#(nil()) -> c_41(0^#()) , s^#(X) -> c_38(X) , isNatIListKind^#(X) -> c_44(X) , isNatIListKind^#(n__zeros()) -> c_45() , isNatIListKind^#(n__cons(V1, V2)) -> c_46(and^#(isNatKind(activate(V1)), n__isNatIListKind(activate(V2)))) , isNatIListKind^#(n__nil()) -> c_47() , nil^#() -> c_52() , and^#(X1, X2) -> c_42(X1, X2) , and^#(tt(), X) -> c_43(activate^#(X)) , isNat^#(X) -> c_22(X) , isNat^#(n__0()) -> c_23() , isNat^#(n__length(V1)) -> c_24(U11^#(isNatIListKind(activate(V1)), activate(V1))) , isNat^#(n__s(V1)) -> c_25(U21^#(isNatKind(activate(V1)), activate(V1))) , isNatKind^#(X) -> c_48(X) , isNatKind^#(n__0()) -> c_49() , isNatKind^#(n__length(V1)) -> c_50(isNatIListKind^#(activate(V1))) , isNatKind^#(n__s(V1)) -> c_51(isNatKind^#(activate(V1))) , U21^#(tt(), V1) -> c_20(U22^#(isNat(activate(V1)))) , U22^#(tt()) -> c_21() , U31^#(tt(), V) -> c_26(U32^#(isNatList(activate(V)))) , U32^#(tt()) -> c_27() , U41^#(tt(), V1, V2) -> c_28(U42^#(isNat(activate(V1)), activate(V2))) , U42^#(tt(), V2) -> c_29(U43^#(isNatIList(activate(V2)))) , U43^#(tt()) -> c_30() , isNatIList^#(V) -> c_31(U31^#(isNatIListKind(activate(V)), activate(V))) , isNatIList^#(n__zeros()) -> c_32() , isNatIList^#(n__cons(V1, V2)) -> c_33(U41^#(and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))), activate(V1), activate(V2))) , U52^#(tt(), V2) -> c_35(U53^#(isNatList(activate(V2)))) , U53^#(tt()) -> c_36() , U61^#(tt(), L) -> c_37(s^#(length(activate(L)))) } Strict Trs: { zeros() -> cons(0(), n__zeros()) , zeros() -> n__zeros() , cons(X1, X2) -> n__cons(X1, X2) , 0() -> n__0() , U11(tt(), V1) -> U12(isNatList(activate(V1))) , U12(tt()) -> tt() , isNatList(n__cons(V1, V2)) -> U51(and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))), activate(V1), activate(V2)) , isNatList(n__nil()) -> tt() , activate(X) -> X , activate(n__zeros()) -> zeros() , 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__isNatIListKind(X)) -> isNatIListKind(X) , activate(n__nil()) -> nil() , activate(n__and(X1, X2)) -> and(activate(X1), X2) , activate(n__isNat(X)) -> isNat(X) , activate(n__isNatKind(X)) -> isNatKind(X) , U21(tt(), V1) -> U22(isNat(activate(V1))) , U22(tt()) -> tt() , isNat(X) -> n__isNat(X) , isNat(n__0()) -> tt() , isNat(n__length(V1)) -> U11(isNatIListKind(activate(V1)), activate(V1)) , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) , U31(tt(), V) -> U32(isNatList(activate(V))) , U32(tt()) -> tt() , U41(tt(), V1, V2) -> U42(isNat(activate(V1)), activate(V2)) , U42(tt(), V2) -> U43(isNatIList(activate(V2))) , U43(tt()) -> tt() , isNatIList(V) -> U31(isNatIListKind(activate(V)), activate(V)) , isNatIList(n__zeros()) -> tt() , isNatIList(n__cons(V1, V2)) -> U41(and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))), activate(V1), activate(V2)) , U51(tt(), V1, V2) -> U52(isNat(activate(V1)), activate(V2)) , U52(tt(), V2) -> U53(isNatList(activate(V2))) , U53(tt()) -> tt() , U61(tt(), L) -> s(length(activate(L))) , s(X) -> n__s(X) , length(X) -> n__length(X) , length(cons(N, L)) -> U61(and(and(isNatList(activate(L)), n__isNatIListKind(activate(L))), n__and(n__isNat(N), n__isNatKind(N))), activate(L)) , length(nil()) -> 0() , and(X1, X2) -> n__and(X1, X2) , and(tt(), X) -> activate(X) , isNatIListKind(X) -> n__isNatIListKind(X) , isNatIListKind(n__zeros()) -> tt() , isNatIListKind(n__cons(V1, V2)) -> and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))) , isNatIListKind(n__nil()) -> tt() , isNatKind(X) -> n__isNatKind(X) , isNatKind(n__0()) -> tt() , isNatKind(n__length(V1)) -> isNatIListKind(activate(V1)) , isNatKind(n__s(V1)) -> isNatKind(activate(V1)) , nil() -> n__nil() } Obligation: runtime complexity Answer: MAYBE We estimate the number of application of {2,4,6,8,26,28,29,33,37,41,43,46,48,51} by applications of Pre({2,4,6,8,26,28,29,33,37,41,43,46,48,51}) = {3,5,10,11,12,16,17,19,20,21,23,24,25,30,32,36,38,39,40,42,45,50}. 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(), V1) -> c_5(U12^#(isNatList(activate(V1)))) , 6: U12^#(tt()) -> c_6() , 7: isNatList^#(n__cons(V1, V2)) -> c_7(U51^#(and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))), activate(V1), activate(V2))) , 8: isNatList^#(n__nil()) -> c_8() , 9: U51^#(tt(), V1, V2) -> c_34(U52^#(isNat(activate(V1)), activate(V2))) , 10: activate^#(X) -> c_9(X) , 11: activate^#(n__zeros()) -> c_10(zeros^#()) , 12: activate^#(n__0()) -> c_11(0^#()) , 13: activate^#(n__length(X)) -> c_12(length^#(activate(X))) , 14: activate^#(n__s(X)) -> c_13(s^#(activate(X))) , 15: activate^#(n__cons(X1, X2)) -> c_14(cons^#(activate(X1), X2)) , 16: activate^#(n__isNatIListKind(X)) -> c_15(isNatIListKind^#(X)) , 17: activate^#(n__nil()) -> c_16(nil^#()) , 18: activate^#(n__and(X1, X2)) -> c_17(and^#(activate(X1), X2)) , 19: activate^#(n__isNat(X)) -> c_18(isNat^#(X)) , 20: activate^#(n__isNatKind(X)) -> c_19(isNatKind^#(X)) , 21: length^#(X) -> c_39(X) , 22: length^#(cons(N, L)) -> c_40(U61^#(and(and(isNatList(activate(L)), n__isNatIListKind(activate(L))), n__and(n__isNat(N), n__isNatKind(N))), activate(L))) , 23: length^#(nil()) -> c_41(0^#()) , 24: s^#(X) -> c_38(X) , 25: isNatIListKind^#(X) -> c_44(X) , 26: isNatIListKind^#(n__zeros()) -> c_45() , 27: isNatIListKind^#(n__cons(V1, V2)) -> c_46(and^#(isNatKind(activate(V1)), n__isNatIListKind(activate(V2)))) , 28: isNatIListKind^#(n__nil()) -> c_47() , 29: nil^#() -> c_52() , 30: and^#(X1, X2) -> c_42(X1, X2) , 31: and^#(tt(), X) -> c_43(activate^#(X)) , 32: isNat^#(X) -> c_22(X) , 33: isNat^#(n__0()) -> c_23() , 34: isNat^#(n__length(V1)) -> c_24(U11^#(isNatIListKind(activate(V1)), activate(V1))) , 35: isNat^#(n__s(V1)) -> c_25(U21^#(isNatKind(activate(V1)), activate(V1))) , 36: isNatKind^#(X) -> c_48(X) , 37: isNatKind^#(n__0()) -> c_49() , 38: isNatKind^#(n__length(V1)) -> c_50(isNatIListKind^#(activate(V1))) , 39: isNatKind^#(n__s(V1)) -> c_51(isNatKind^#(activate(V1))) , 40: U21^#(tt(), V1) -> c_20(U22^#(isNat(activate(V1)))) , 41: U22^#(tt()) -> c_21() , 42: U31^#(tt(), V) -> c_26(U32^#(isNatList(activate(V)))) , 43: U32^#(tt()) -> c_27() , 44: U41^#(tt(), V1, V2) -> c_28(U42^#(isNat(activate(V1)), activate(V2))) , 45: U42^#(tt(), V2) -> c_29(U43^#(isNatIList(activate(V2)))) , 46: U43^#(tt()) -> c_30() , 47: isNatIList^#(V) -> c_31(U31^#(isNatIListKind(activate(V)), activate(V))) , 48: isNatIList^#(n__zeros()) -> c_32() , 49: isNatIList^#(n__cons(V1, V2)) -> c_33(U41^#(and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))), activate(V1), activate(V2))) , 50: U52^#(tt(), V2) -> c_35(U53^#(isNatList(activate(V2)))) , 51: U53^#(tt()) -> c_36() , 52: U61^#(tt(), L) -> c_37(s^#(length(activate(L)))) } 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) , U11^#(tt(), V1) -> c_5(U12^#(isNatList(activate(V1)))) , isNatList^#(n__cons(V1, V2)) -> c_7(U51^#(and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))), activate(V1), activate(V2))) , U51^#(tt(), V1, V2) -> c_34(U52^#(isNat(activate(V1)), activate(V2))) , activate^#(X) -> c_9(X) , activate^#(n__zeros()) -> c_10(zeros^#()) , activate^#(n__0()) -> c_11(0^#()) , activate^#(n__length(X)) -> c_12(length^#(activate(X))) , activate^#(n__s(X)) -> c_13(s^#(activate(X))) , activate^#(n__cons(X1, X2)) -> c_14(cons^#(activate(X1), X2)) , activate^#(n__isNatIListKind(X)) -> c_15(isNatIListKind^#(X)) , activate^#(n__nil()) -> c_16(nil^#()) , activate^#(n__and(X1, X2)) -> c_17(and^#(activate(X1), X2)) , activate^#(n__isNat(X)) -> c_18(isNat^#(X)) , activate^#(n__isNatKind(X)) -> c_19(isNatKind^#(X)) , length^#(X) -> c_39(X) , length^#(cons(N, L)) -> c_40(U61^#(and(and(isNatList(activate(L)), n__isNatIListKind(activate(L))), n__and(n__isNat(N), n__isNatKind(N))), activate(L))) , length^#(nil()) -> c_41(0^#()) , s^#(X) -> c_38(X) , isNatIListKind^#(X) -> c_44(X) , isNatIListKind^#(n__cons(V1, V2)) -> c_46(and^#(isNatKind(activate(V1)), n__isNatIListKind(activate(V2)))) , and^#(X1, X2) -> c_42(X1, X2) , and^#(tt(), X) -> c_43(activate^#(X)) , isNat^#(X) -> c_22(X) , isNat^#(n__length(V1)) -> c_24(U11^#(isNatIListKind(activate(V1)), activate(V1))) , isNat^#(n__s(V1)) -> c_25(U21^#(isNatKind(activate(V1)), activate(V1))) , isNatKind^#(X) -> c_48(X) , isNatKind^#(n__length(V1)) -> c_50(isNatIListKind^#(activate(V1))) , isNatKind^#(n__s(V1)) -> c_51(isNatKind^#(activate(V1))) , U21^#(tt(), V1) -> c_20(U22^#(isNat(activate(V1)))) , U31^#(tt(), V) -> c_26(U32^#(isNatList(activate(V)))) , U41^#(tt(), V1, V2) -> c_28(U42^#(isNat(activate(V1)), activate(V2))) , U42^#(tt(), V2) -> c_29(U43^#(isNatIList(activate(V2)))) , isNatIList^#(V) -> c_31(U31^#(isNatIListKind(activate(V)), activate(V))) , isNatIList^#(n__cons(V1, V2)) -> c_33(U41^#(and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))), activate(V1), activate(V2))) , U52^#(tt(), V2) -> c_35(U53^#(isNatList(activate(V2)))) , U61^#(tt(), L) -> c_37(s^#(length(activate(L)))) } Strict Trs: { zeros() -> cons(0(), n__zeros()) , zeros() -> n__zeros() , cons(X1, X2) -> n__cons(X1, X2) , 0() -> n__0() , U11(tt(), V1) -> U12(isNatList(activate(V1))) , U12(tt()) -> tt() , isNatList(n__cons(V1, V2)) -> U51(and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))), activate(V1), activate(V2)) , isNatList(n__nil()) -> tt() , activate(X) -> X , activate(n__zeros()) -> zeros() , 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__isNatIListKind(X)) -> isNatIListKind(X) , activate(n__nil()) -> nil() , activate(n__and(X1, X2)) -> and(activate(X1), X2) , activate(n__isNat(X)) -> isNat(X) , activate(n__isNatKind(X)) -> isNatKind(X) , U21(tt(), V1) -> U22(isNat(activate(V1))) , U22(tt()) -> tt() , isNat(X) -> n__isNat(X) , isNat(n__0()) -> tt() , isNat(n__length(V1)) -> U11(isNatIListKind(activate(V1)), activate(V1)) , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) , U31(tt(), V) -> U32(isNatList(activate(V))) , U32(tt()) -> tt() , U41(tt(), V1, V2) -> U42(isNat(activate(V1)), activate(V2)) , U42(tt(), V2) -> U43(isNatIList(activate(V2))) , U43(tt()) -> tt() , isNatIList(V) -> U31(isNatIListKind(activate(V)), activate(V)) , isNatIList(n__zeros()) -> tt() , isNatIList(n__cons(V1, V2)) -> U41(and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))), activate(V1), activate(V2)) , U51(tt(), V1, V2) -> U52(isNat(activate(V1)), activate(V2)) , U52(tt(), V2) -> U53(isNatList(activate(V2))) , U53(tt()) -> tt() , U61(tt(), L) -> s(length(activate(L))) , s(X) -> n__s(X) , length(X) -> n__length(X) , length(cons(N, L)) -> U61(and(and(isNatList(activate(L)), n__isNatIListKind(activate(L))), n__and(n__isNat(N), n__isNatKind(N))), activate(L)) , length(nil()) -> 0() , and(X1, X2) -> n__and(X1, X2) , and(tt(), X) -> activate(X) , isNatIListKind(X) -> n__isNatIListKind(X) , isNatIListKind(n__zeros()) -> tt() , isNatIListKind(n__cons(V1, V2)) -> and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))) , isNatIListKind(n__nil()) -> tt() , isNatKind(X) -> n__isNatKind(X) , isNatKind(n__0()) -> tt() , isNatKind(n__length(V1)) -> isNatIListKind(activate(V1)) , isNatKind(n__s(V1)) -> isNatKind(activate(V1)) , nil() -> n__nil() } Weak DPs: { zeros^#() -> c_2() , 0^#() -> c_4() , U12^#(tt()) -> c_6() , isNatList^#(n__nil()) -> c_8() , isNatIListKind^#(n__zeros()) -> c_45() , isNatIListKind^#(n__nil()) -> c_47() , nil^#() -> c_52() , isNat^#(n__0()) -> c_23() , isNatKind^#(n__0()) -> c_49() , U22^#(tt()) -> c_21() , U32^#(tt()) -> c_27() , U43^#(tt()) -> c_30() , isNatIList^#(n__zeros()) -> c_32() , U53^#(tt()) -> c_36() } Obligation: runtime complexity Answer: MAYBE We estimate the number of application of {3,8,13,19,31,32,34,37} by applications of Pre({3,8,13,19,31,32,34,37}) = {2,5,6,9,17,20,21,23,24,25,26,27,28,33,35}. Here rules are labeled as follows: DPs: { 1: zeros^#() -> c_1(cons^#(0(), n__zeros())) , 2: cons^#(X1, X2) -> c_3(X1, X2) , 3: U11^#(tt(), V1) -> c_5(U12^#(isNatList(activate(V1)))) , 4: isNatList^#(n__cons(V1, V2)) -> c_7(U51^#(and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))), activate(V1), activate(V2))) , 5: U51^#(tt(), V1, V2) -> c_34(U52^#(isNat(activate(V1)), activate(V2))) , 6: activate^#(X) -> c_9(X) , 7: activate^#(n__zeros()) -> c_10(zeros^#()) , 8: activate^#(n__0()) -> c_11(0^#()) , 9: activate^#(n__length(X)) -> c_12(length^#(activate(X))) , 10: activate^#(n__s(X)) -> c_13(s^#(activate(X))) , 11: activate^#(n__cons(X1, X2)) -> c_14(cons^#(activate(X1), X2)) , 12: activate^#(n__isNatIListKind(X)) -> c_15(isNatIListKind^#(X)) , 13: activate^#(n__nil()) -> c_16(nil^#()) , 14: activate^#(n__and(X1, X2)) -> c_17(and^#(activate(X1), X2)) , 15: activate^#(n__isNat(X)) -> c_18(isNat^#(X)) , 16: activate^#(n__isNatKind(X)) -> c_19(isNatKind^#(X)) , 17: length^#(X) -> c_39(X) , 18: length^#(cons(N, L)) -> c_40(U61^#(and(and(isNatList(activate(L)), n__isNatIListKind(activate(L))), n__and(n__isNat(N), n__isNatKind(N))), activate(L))) , 19: length^#(nil()) -> c_41(0^#()) , 20: s^#(X) -> c_38(X) , 21: isNatIListKind^#(X) -> c_44(X) , 22: isNatIListKind^#(n__cons(V1, V2)) -> c_46(and^#(isNatKind(activate(V1)), n__isNatIListKind(activate(V2)))) , 23: and^#(X1, X2) -> c_42(X1, X2) , 24: and^#(tt(), X) -> c_43(activate^#(X)) , 25: isNat^#(X) -> c_22(X) , 26: isNat^#(n__length(V1)) -> c_24(U11^#(isNatIListKind(activate(V1)), activate(V1))) , 27: isNat^#(n__s(V1)) -> c_25(U21^#(isNatKind(activate(V1)), activate(V1))) , 28: isNatKind^#(X) -> c_48(X) , 29: isNatKind^#(n__length(V1)) -> c_50(isNatIListKind^#(activate(V1))) , 30: isNatKind^#(n__s(V1)) -> c_51(isNatKind^#(activate(V1))) , 31: U21^#(tt(), V1) -> c_20(U22^#(isNat(activate(V1)))) , 32: U31^#(tt(), V) -> c_26(U32^#(isNatList(activate(V)))) , 33: U41^#(tt(), V1, V2) -> c_28(U42^#(isNat(activate(V1)), activate(V2))) , 34: U42^#(tt(), V2) -> c_29(U43^#(isNatIList(activate(V2)))) , 35: isNatIList^#(V) -> c_31(U31^#(isNatIListKind(activate(V)), activate(V))) , 36: isNatIList^#(n__cons(V1, V2)) -> c_33(U41^#(and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))), activate(V1), activate(V2))) , 37: U52^#(tt(), V2) -> c_35(U53^#(isNatList(activate(V2)))) , 38: U61^#(tt(), L) -> c_37(s^#(length(activate(L)))) , 39: zeros^#() -> c_2() , 40: 0^#() -> c_4() , 41: U12^#(tt()) -> c_6() , 42: isNatList^#(n__nil()) -> c_8() , 43: isNatIListKind^#(n__zeros()) -> c_45() , 44: isNatIListKind^#(n__nil()) -> c_47() , 45: nil^#() -> c_52() , 46: isNat^#(n__0()) -> c_23() , 47: isNatKind^#(n__0()) -> c_49() , 48: U22^#(tt()) -> c_21() , 49: U32^#(tt()) -> c_27() , 50: U43^#(tt()) -> c_30() , 51: isNatIList^#(n__zeros()) -> c_32() , 52: U53^#(tt()) -> c_36() } 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) , isNatList^#(n__cons(V1, V2)) -> c_7(U51^#(and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))), activate(V1), activate(V2))) , U51^#(tt(), V1, V2) -> c_34(U52^#(isNat(activate(V1)), activate(V2))) , activate^#(X) -> c_9(X) , activate^#(n__zeros()) -> c_10(zeros^#()) , activate^#(n__length(X)) -> c_12(length^#(activate(X))) , activate^#(n__s(X)) -> c_13(s^#(activate(X))) , activate^#(n__cons(X1, X2)) -> c_14(cons^#(activate(X1), X2)) , activate^#(n__isNatIListKind(X)) -> c_15(isNatIListKind^#(X)) , activate^#(n__and(X1, X2)) -> c_17(and^#(activate(X1), X2)) , activate^#(n__isNat(X)) -> c_18(isNat^#(X)) , activate^#(n__isNatKind(X)) -> c_19(isNatKind^#(X)) , length^#(X) -> c_39(X) , length^#(cons(N, L)) -> c_40(U61^#(and(and(isNatList(activate(L)), n__isNatIListKind(activate(L))), n__and(n__isNat(N), n__isNatKind(N))), activate(L))) , s^#(X) -> c_38(X) , isNatIListKind^#(X) -> c_44(X) , isNatIListKind^#(n__cons(V1, V2)) -> c_46(and^#(isNatKind(activate(V1)), n__isNatIListKind(activate(V2)))) , and^#(X1, X2) -> c_42(X1, X2) , and^#(tt(), X) -> c_43(activate^#(X)) , isNat^#(X) -> c_22(X) , isNat^#(n__length(V1)) -> c_24(U11^#(isNatIListKind(activate(V1)), activate(V1))) , isNat^#(n__s(V1)) -> c_25(U21^#(isNatKind(activate(V1)), activate(V1))) , isNatKind^#(X) -> c_48(X) , isNatKind^#(n__length(V1)) -> c_50(isNatIListKind^#(activate(V1))) , isNatKind^#(n__s(V1)) -> c_51(isNatKind^#(activate(V1))) , U41^#(tt(), V1, V2) -> c_28(U42^#(isNat(activate(V1)), activate(V2))) , isNatIList^#(V) -> c_31(U31^#(isNatIListKind(activate(V)), activate(V))) , isNatIList^#(n__cons(V1, V2)) -> c_33(U41^#(and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))), activate(V1), activate(V2))) , U61^#(tt(), L) -> c_37(s^#(length(activate(L)))) } Strict Trs: { zeros() -> cons(0(), n__zeros()) , zeros() -> n__zeros() , cons(X1, X2) -> n__cons(X1, X2) , 0() -> n__0() , U11(tt(), V1) -> U12(isNatList(activate(V1))) , U12(tt()) -> tt() , isNatList(n__cons(V1, V2)) -> U51(and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))), activate(V1), activate(V2)) , isNatList(n__nil()) -> tt() , activate(X) -> X , activate(n__zeros()) -> zeros() , 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__isNatIListKind(X)) -> isNatIListKind(X) , activate(n__nil()) -> nil() , activate(n__and(X1, X2)) -> and(activate(X1), X2) , activate(n__isNat(X)) -> isNat(X) , activate(n__isNatKind(X)) -> isNatKind(X) , U21(tt(), V1) -> U22(isNat(activate(V1))) , U22(tt()) -> tt() , isNat(X) -> n__isNat(X) , isNat(n__0()) -> tt() , isNat(n__length(V1)) -> U11(isNatIListKind(activate(V1)), activate(V1)) , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) , U31(tt(), V) -> U32(isNatList(activate(V))) , U32(tt()) -> tt() , U41(tt(), V1, V2) -> U42(isNat(activate(V1)), activate(V2)) , U42(tt(), V2) -> U43(isNatIList(activate(V2))) , U43(tt()) -> tt() , isNatIList(V) -> U31(isNatIListKind(activate(V)), activate(V)) , isNatIList(n__zeros()) -> tt() , isNatIList(n__cons(V1, V2)) -> U41(and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))), activate(V1), activate(V2)) , U51(tt(), V1, V2) -> U52(isNat(activate(V1)), activate(V2)) , U52(tt(), V2) -> U53(isNatList(activate(V2))) , U53(tt()) -> tt() , U61(tt(), L) -> s(length(activate(L))) , s(X) -> n__s(X) , length(X) -> n__length(X) , length(cons(N, L)) -> U61(and(and(isNatList(activate(L)), n__isNatIListKind(activate(L))), n__and(n__isNat(N), n__isNatKind(N))), activate(L)) , length(nil()) -> 0() , and(X1, X2) -> n__and(X1, X2) , and(tt(), X) -> activate(X) , isNatIListKind(X) -> n__isNatIListKind(X) , isNatIListKind(n__zeros()) -> tt() , isNatIListKind(n__cons(V1, V2)) -> and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))) , isNatIListKind(n__nil()) -> tt() , isNatKind(X) -> n__isNatKind(X) , isNatKind(n__0()) -> tt() , isNatKind(n__length(V1)) -> isNatIListKind(activate(V1)) , isNatKind(n__s(V1)) -> isNatKind(activate(V1)) , nil() -> n__nil() } Weak DPs: { zeros^#() -> c_2() , 0^#() -> c_4() , U11^#(tt(), V1) -> c_5(U12^#(isNatList(activate(V1)))) , U12^#(tt()) -> c_6() , isNatList^#(n__nil()) -> c_8() , activate^#(n__0()) -> c_11(0^#()) , activate^#(n__nil()) -> c_16(nil^#()) , length^#(nil()) -> c_41(0^#()) , isNatIListKind^#(n__zeros()) -> c_45() , isNatIListKind^#(n__nil()) -> c_47() , nil^#() -> c_52() , isNat^#(n__0()) -> c_23() , isNatKind^#(n__0()) -> c_49() , U21^#(tt(), V1) -> c_20(U22^#(isNat(activate(V1)))) , U22^#(tt()) -> c_21() , U31^#(tt(), V) -> c_26(U32^#(isNatList(activate(V)))) , U32^#(tt()) -> c_27() , U42^#(tt(), V2) -> c_29(U43^#(isNatIList(activate(V2)))) , U43^#(tt()) -> c_30() , isNatIList^#(n__zeros()) -> c_32() , U52^#(tt(), V2) -> c_35(U53^#(isNatList(activate(V2)))) , U53^#(tt()) -> c_36() } Obligation: runtime complexity Answer: MAYBE We estimate the number of application of {4,22,23,27,28} by applications of Pre({4,22,23,27,28}) = {2,3,5,12,14,16,17,19,21,24,29}. Here rules are labeled as follows: DPs: { 1: zeros^#() -> c_1(cons^#(0(), n__zeros())) , 2: cons^#(X1, X2) -> c_3(X1, X2) , 3: isNatList^#(n__cons(V1, V2)) -> c_7(U51^#(and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))), activate(V1), activate(V2))) , 4: U51^#(tt(), V1, V2) -> c_34(U52^#(isNat(activate(V1)), activate(V2))) , 5: activate^#(X) -> c_9(X) , 6: activate^#(n__zeros()) -> c_10(zeros^#()) , 7: activate^#(n__length(X)) -> c_12(length^#(activate(X))) , 8: activate^#(n__s(X)) -> c_13(s^#(activate(X))) , 9: activate^#(n__cons(X1, X2)) -> c_14(cons^#(activate(X1), X2)) , 10: activate^#(n__isNatIListKind(X)) -> c_15(isNatIListKind^#(X)) , 11: activate^#(n__and(X1, X2)) -> c_17(and^#(activate(X1), X2)) , 12: activate^#(n__isNat(X)) -> c_18(isNat^#(X)) , 13: activate^#(n__isNatKind(X)) -> c_19(isNatKind^#(X)) , 14: length^#(X) -> c_39(X) , 15: length^#(cons(N, L)) -> c_40(U61^#(and(and(isNatList(activate(L)), n__isNatIListKind(activate(L))), n__and(n__isNat(N), n__isNatKind(N))), activate(L))) , 16: s^#(X) -> c_38(X) , 17: isNatIListKind^#(X) -> c_44(X) , 18: isNatIListKind^#(n__cons(V1, V2)) -> c_46(and^#(isNatKind(activate(V1)), n__isNatIListKind(activate(V2)))) , 19: and^#(X1, X2) -> c_42(X1, X2) , 20: and^#(tt(), X) -> c_43(activate^#(X)) , 21: isNat^#(X) -> c_22(X) , 22: isNat^#(n__length(V1)) -> c_24(U11^#(isNatIListKind(activate(V1)), activate(V1))) , 23: isNat^#(n__s(V1)) -> c_25(U21^#(isNatKind(activate(V1)), activate(V1))) , 24: isNatKind^#(X) -> c_48(X) , 25: isNatKind^#(n__length(V1)) -> c_50(isNatIListKind^#(activate(V1))) , 26: isNatKind^#(n__s(V1)) -> c_51(isNatKind^#(activate(V1))) , 27: U41^#(tt(), V1, V2) -> c_28(U42^#(isNat(activate(V1)), activate(V2))) , 28: isNatIList^#(V) -> c_31(U31^#(isNatIListKind(activate(V)), activate(V))) , 29: isNatIList^#(n__cons(V1, V2)) -> c_33(U41^#(and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))), activate(V1), activate(V2))) , 30: U61^#(tt(), L) -> c_37(s^#(length(activate(L)))) , 31: zeros^#() -> c_2() , 32: 0^#() -> c_4() , 33: U11^#(tt(), V1) -> c_5(U12^#(isNatList(activate(V1)))) , 34: U12^#(tt()) -> c_6() , 35: isNatList^#(n__nil()) -> c_8() , 36: activate^#(n__0()) -> c_11(0^#()) , 37: activate^#(n__nil()) -> c_16(nil^#()) , 38: length^#(nil()) -> c_41(0^#()) , 39: isNatIListKind^#(n__zeros()) -> c_45() , 40: isNatIListKind^#(n__nil()) -> c_47() , 41: nil^#() -> c_52() , 42: isNat^#(n__0()) -> c_23() , 43: isNatKind^#(n__0()) -> c_49() , 44: U21^#(tt(), V1) -> c_20(U22^#(isNat(activate(V1)))) , 45: U22^#(tt()) -> c_21() , 46: U31^#(tt(), V) -> c_26(U32^#(isNatList(activate(V)))) , 47: U32^#(tt()) -> c_27() , 48: U42^#(tt(), V2) -> c_29(U43^#(isNatIList(activate(V2)))) , 49: U43^#(tt()) -> c_30() , 50: isNatIList^#(n__zeros()) -> c_32() , 51: U52^#(tt(), V2) -> c_35(U53^#(isNatList(activate(V2)))) , 52: U53^#(tt()) -> c_36() } 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) , isNatList^#(n__cons(V1, V2)) -> c_7(U51^#(and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))), activate(V1), activate(V2))) , activate^#(X) -> c_9(X) , activate^#(n__zeros()) -> c_10(zeros^#()) , activate^#(n__length(X)) -> c_12(length^#(activate(X))) , activate^#(n__s(X)) -> c_13(s^#(activate(X))) , activate^#(n__cons(X1, X2)) -> c_14(cons^#(activate(X1), X2)) , activate^#(n__isNatIListKind(X)) -> c_15(isNatIListKind^#(X)) , activate^#(n__and(X1, X2)) -> c_17(and^#(activate(X1), X2)) , activate^#(n__isNat(X)) -> c_18(isNat^#(X)) , activate^#(n__isNatKind(X)) -> c_19(isNatKind^#(X)) , length^#(X) -> c_39(X) , length^#(cons(N, L)) -> c_40(U61^#(and(and(isNatList(activate(L)), n__isNatIListKind(activate(L))), n__and(n__isNat(N), n__isNatKind(N))), activate(L))) , s^#(X) -> c_38(X) , isNatIListKind^#(X) -> c_44(X) , isNatIListKind^#(n__cons(V1, V2)) -> c_46(and^#(isNatKind(activate(V1)), n__isNatIListKind(activate(V2)))) , and^#(X1, X2) -> c_42(X1, X2) , and^#(tt(), X) -> c_43(activate^#(X)) , isNat^#(X) -> c_22(X) , isNatKind^#(X) -> c_48(X) , isNatKind^#(n__length(V1)) -> c_50(isNatIListKind^#(activate(V1))) , isNatKind^#(n__s(V1)) -> c_51(isNatKind^#(activate(V1))) , isNatIList^#(n__cons(V1, V2)) -> c_33(U41^#(and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))), activate(V1), activate(V2))) , U61^#(tt(), L) -> c_37(s^#(length(activate(L)))) } Strict Trs: { zeros() -> cons(0(), n__zeros()) , zeros() -> n__zeros() , cons(X1, X2) -> n__cons(X1, X2) , 0() -> n__0() , U11(tt(), V1) -> U12(isNatList(activate(V1))) , U12(tt()) -> tt() , isNatList(n__cons(V1, V2)) -> U51(and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))), activate(V1), activate(V2)) , isNatList(n__nil()) -> tt() , activate(X) -> X , activate(n__zeros()) -> zeros() , 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__isNatIListKind(X)) -> isNatIListKind(X) , activate(n__nil()) -> nil() , activate(n__and(X1, X2)) -> and(activate(X1), X2) , activate(n__isNat(X)) -> isNat(X) , activate(n__isNatKind(X)) -> isNatKind(X) , U21(tt(), V1) -> U22(isNat(activate(V1))) , U22(tt()) -> tt() , isNat(X) -> n__isNat(X) , isNat(n__0()) -> tt() , isNat(n__length(V1)) -> U11(isNatIListKind(activate(V1)), activate(V1)) , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) , U31(tt(), V) -> U32(isNatList(activate(V))) , U32(tt()) -> tt() , U41(tt(), V1, V2) -> U42(isNat(activate(V1)), activate(V2)) , U42(tt(), V2) -> U43(isNatIList(activate(V2))) , U43(tt()) -> tt() , isNatIList(V) -> U31(isNatIListKind(activate(V)), activate(V)) , isNatIList(n__zeros()) -> tt() , isNatIList(n__cons(V1, V2)) -> U41(and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))), activate(V1), activate(V2)) , U51(tt(), V1, V2) -> U52(isNat(activate(V1)), activate(V2)) , U52(tt(), V2) -> U53(isNatList(activate(V2))) , U53(tt()) -> tt() , U61(tt(), L) -> s(length(activate(L))) , s(X) -> n__s(X) , length(X) -> n__length(X) , length(cons(N, L)) -> U61(and(and(isNatList(activate(L)), n__isNatIListKind(activate(L))), n__and(n__isNat(N), n__isNatKind(N))), activate(L)) , length(nil()) -> 0() , and(X1, X2) -> n__and(X1, X2) , and(tt(), X) -> activate(X) , isNatIListKind(X) -> n__isNatIListKind(X) , isNatIListKind(n__zeros()) -> tt() , isNatIListKind(n__cons(V1, V2)) -> and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))) , isNatIListKind(n__nil()) -> tt() , isNatKind(X) -> n__isNatKind(X) , isNatKind(n__0()) -> tt() , isNatKind(n__length(V1)) -> isNatIListKind(activate(V1)) , isNatKind(n__s(V1)) -> isNatKind(activate(V1)) , nil() -> n__nil() } Weak DPs: { zeros^#() -> c_2() , 0^#() -> c_4() , U11^#(tt(), V1) -> c_5(U12^#(isNatList(activate(V1)))) , U12^#(tt()) -> c_6() , isNatList^#(n__nil()) -> c_8() , U51^#(tt(), V1, V2) -> c_34(U52^#(isNat(activate(V1)), activate(V2))) , activate^#(n__0()) -> c_11(0^#()) , activate^#(n__nil()) -> c_16(nil^#()) , length^#(nil()) -> c_41(0^#()) , isNatIListKind^#(n__zeros()) -> c_45() , isNatIListKind^#(n__nil()) -> c_47() , nil^#() -> c_52() , isNat^#(n__0()) -> c_23() , isNat^#(n__length(V1)) -> c_24(U11^#(isNatIListKind(activate(V1)), activate(V1))) , isNat^#(n__s(V1)) -> c_25(U21^#(isNatKind(activate(V1)), activate(V1))) , isNatKind^#(n__0()) -> c_49() , U21^#(tt(), V1) -> c_20(U22^#(isNat(activate(V1)))) , U22^#(tt()) -> c_21() , U31^#(tt(), V) -> c_26(U32^#(isNatList(activate(V)))) , U32^#(tt()) -> c_27() , U41^#(tt(), V1, V2) -> c_28(U42^#(isNat(activate(V1)), activate(V2))) , U42^#(tt(), V2) -> c_29(U43^#(isNatIList(activate(V2)))) , U43^#(tt()) -> c_30() , isNatIList^#(V) -> c_31(U31^#(isNatIListKind(activate(V)), activate(V))) , isNatIList^#(n__zeros()) -> c_32() , U52^#(tt(), V2) -> c_35(U53^#(isNatList(activate(V2)))) , U53^#(tt()) -> c_36() } Obligation: runtime complexity Answer: MAYBE We estimate the number of application of {3,24} by applications of Pre({3,24}) = {2,4,13,15,16,18,20,21}. Here rules are labeled as follows: DPs: { 1: zeros^#() -> c_1(cons^#(0(), n__zeros())) , 2: cons^#(X1, X2) -> c_3(X1, X2) , 3: isNatList^#(n__cons(V1, V2)) -> c_7(U51^#(and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))), activate(V1), activate(V2))) , 4: activate^#(X) -> c_9(X) , 5: activate^#(n__zeros()) -> c_10(zeros^#()) , 6: activate^#(n__length(X)) -> c_12(length^#(activate(X))) , 7: activate^#(n__s(X)) -> c_13(s^#(activate(X))) , 8: activate^#(n__cons(X1, X2)) -> c_14(cons^#(activate(X1), X2)) , 9: activate^#(n__isNatIListKind(X)) -> c_15(isNatIListKind^#(X)) , 10: activate^#(n__and(X1, X2)) -> c_17(and^#(activate(X1), X2)) , 11: activate^#(n__isNat(X)) -> c_18(isNat^#(X)) , 12: activate^#(n__isNatKind(X)) -> c_19(isNatKind^#(X)) , 13: length^#(X) -> c_39(X) , 14: length^#(cons(N, L)) -> c_40(U61^#(and(and(isNatList(activate(L)), n__isNatIListKind(activate(L))), n__and(n__isNat(N), n__isNatKind(N))), activate(L))) , 15: s^#(X) -> c_38(X) , 16: isNatIListKind^#(X) -> c_44(X) , 17: isNatIListKind^#(n__cons(V1, V2)) -> c_46(and^#(isNatKind(activate(V1)), n__isNatIListKind(activate(V2)))) , 18: and^#(X1, X2) -> c_42(X1, X2) , 19: and^#(tt(), X) -> c_43(activate^#(X)) , 20: isNat^#(X) -> c_22(X) , 21: isNatKind^#(X) -> c_48(X) , 22: isNatKind^#(n__length(V1)) -> c_50(isNatIListKind^#(activate(V1))) , 23: isNatKind^#(n__s(V1)) -> c_51(isNatKind^#(activate(V1))) , 24: isNatIList^#(n__cons(V1, V2)) -> c_33(U41^#(and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))), activate(V1), activate(V2))) , 25: U61^#(tt(), L) -> c_37(s^#(length(activate(L)))) , 26: zeros^#() -> c_2() , 27: 0^#() -> c_4() , 28: U11^#(tt(), V1) -> c_5(U12^#(isNatList(activate(V1)))) , 29: U12^#(tt()) -> c_6() , 30: isNatList^#(n__nil()) -> c_8() , 31: U51^#(tt(), V1, V2) -> c_34(U52^#(isNat(activate(V1)), activate(V2))) , 32: activate^#(n__0()) -> c_11(0^#()) , 33: activate^#(n__nil()) -> c_16(nil^#()) , 34: length^#(nil()) -> c_41(0^#()) , 35: isNatIListKind^#(n__zeros()) -> c_45() , 36: isNatIListKind^#(n__nil()) -> c_47() , 37: nil^#() -> c_52() , 38: isNat^#(n__0()) -> c_23() , 39: isNat^#(n__length(V1)) -> c_24(U11^#(isNatIListKind(activate(V1)), activate(V1))) , 40: isNat^#(n__s(V1)) -> c_25(U21^#(isNatKind(activate(V1)), activate(V1))) , 41: isNatKind^#(n__0()) -> c_49() , 42: U21^#(tt(), V1) -> c_20(U22^#(isNat(activate(V1)))) , 43: U22^#(tt()) -> c_21() , 44: U31^#(tt(), V) -> c_26(U32^#(isNatList(activate(V)))) , 45: U32^#(tt()) -> c_27() , 46: U41^#(tt(), V1, V2) -> c_28(U42^#(isNat(activate(V1)), activate(V2))) , 47: U42^#(tt(), V2) -> c_29(U43^#(isNatIList(activate(V2)))) , 48: U43^#(tt()) -> c_30() , 49: isNatIList^#(V) -> c_31(U31^#(isNatIListKind(activate(V)), activate(V))) , 50: isNatIList^#(n__zeros()) -> c_32() , 51: U52^#(tt(), V2) -> c_35(U53^#(isNatList(activate(V2)))) , 52: U53^#(tt()) -> c_36() } 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_9(X) , activate^#(n__zeros()) -> c_10(zeros^#()) , activate^#(n__length(X)) -> c_12(length^#(activate(X))) , activate^#(n__s(X)) -> c_13(s^#(activate(X))) , activate^#(n__cons(X1, X2)) -> c_14(cons^#(activate(X1), X2)) , activate^#(n__isNatIListKind(X)) -> c_15(isNatIListKind^#(X)) , activate^#(n__and(X1, X2)) -> c_17(and^#(activate(X1), X2)) , activate^#(n__isNat(X)) -> c_18(isNat^#(X)) , activate^#(n__isNatKind(X)) -> c_19(isNatKind^#(X)) , length^#(X) -> c_39(X) , length^#(cons(N, L)) -> c_40(U61^#(and(and(isNatList(activate(L)), n__isNatIListKind(activate(L))), n__and(n__isNat(N), n__isNatKind(N))), activate(L))) , s^#(X) -> c_38(X) , isNatIListKind^#(X) -> c_44(X) , isNatIListKind^#(n__cons(V1, V2)) -> c_46(and^#(isNatKind(activate(V1)), n__isNatIListKind(activate(V2)))) , and^#(X1, X2) -> c_42(X1, X2) , and^#(tt(), X) -> c_43(activate^#(X)) , isNat^#(X) -> c_22(X) , isNatKind^#(X) -> c_48(X) , isNatKind^#(n__length(V1)) -> c_50(isNatIListKind^#(activate(V1))) , isNatKind^#(n__s(V1)) -> c_51(isNatKind^#(activate(V1))) , U61^#(tt(), L) -> c_37(s^#(length(activate(L)))) } Strict Trs: { zeros() -> cons(0(), n__zeros()) , zeros() -> n__zeros() , cons(X1, X2) -> n__cons(X1, X2) , 0() -> n__0() , U11(tt(), V1) -> U12(isNatList(activate(V1))) , U12(tt()) -> tt() , isNatList(n__cons(V1, V2)) -> U51(and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))), activate(V1), activate(V2)) , isNatList(n__nil()) -> tt() , activate(X) -> X , activate(n__zeros()) -> zeros() , 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__isNatIListKind(X)) -> isNatIListKind(X) , activate(n__nil()) -> nil() , activate(n__and(X1, X2)) -> and(activate(X1), X2) , activate(n__isNat(X)) -> isNat(X) , activate(n__isNatKind(X)) -> isNatKind(X) , U21(tt(), V1) -> U22(isNat(activate(V1))) , U22(tt()) -> tt() , isNat(X) -> n__isNat(X) , isNat(n__0()) -> tt() , isNat(n__length(V1)) -> U11(isNatIListKind(activate(V1)), activate(V1)) , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) , U31(tt(), V) -> U32(isNatList(activate(V))) , U32(tt()) -> tt() , U41(tt(), V1, V2) -> U42(isNat(activate(V1)), activate(V2)) , U42(tt(), V2) -> U43(isNatIList(activate(V2))) , U43(tt()) -> tt() , isNatIList(V) -> U31(isNatIListKind(activate(V)), activate(V)) , isNatIList(n__zeros()) -> tt() , isNatIList(n__cons(V1, V2)) -> U41(and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))), activate(V1), activate(V2)) , U51(tt(), V1, V2) -> U52(isNat(activate(V1)), activate(V2)) , U52(tt(), V2) -> U53(isNatList(activate(V2))) , U53(tt()) -> tt() , U61(tt(), L) -> s(length(activate(L))) , s(X) -> n__s(X) , length(X) -> n__length(X) , length(cons(N, L)) -> U61(and(and(isNatList(activate(L)), n__isNatIListKind(activate(L))), n__and(n__isNat(N), n__isNatKind(N))), activate(L)) , length(nil()) -> 0() , and(X1, X2) -> n__and(X1, X2) , and(tt(), X) -> activate(X) , isNatIListKind(X) -> n__isNatIListKind(X) , isNatIListKind(n__zeros()) -> tt() , isNatIListKind(n__cons(V1, V2)) -> and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))) , isNatIListKind(n__nil()) -> tt() , isNatKind(X) -> n__isNatKind(X) , isNatKind(n__0()) -> tt() , isNatKind(n__length(V1)) -> isNatIListKind(activate(V1)) , isNatKind(n__s(V1)) -> isNatKind(activate(V1)) , nil() -> n__nil() } Weak DPs: { zeros^#() -> c_2() , 0^#() -> c_4() , U11^#(tt(), V1) -> c_5(U12^#(isNatList(activate(V1)))) , U12^#(tt()) -> c_6() , isNatList^#(n__cons(V1, V2)) -> c_7(U51^#(and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))), activate(V1), activate(V2))) , isNatList^#(n__nil()) -> c_8() , U51^#(tt(), V1, V2) -> c_34(U52^#(isNat(activate(V1)), activate(V2))) , activate^#(n__0()) -> c_11(0^#()) , activate^#(n__nil()) -> c_16(nil^#()) , length^#(nil()) -> c_41(0^#()) , isNatIListKind^#(n__zeros()) -> c_45() , isNatIListKind^#(n__nil()) -> c_47() , nil^#() -> c_52() , isNat^#(n__0()) -> c_23() , isNat^#(n__length(V1)) -> c_24(U11^#(isNatIListKind(activate(V1)), activate(V1))) , isNat^#(n__s(V1)) -> c_25(U21^#(isNatKind(activate(V1)), activate(V1))) , isNatKind^#(n__0()) -> c_49() , U21^#(tt(), V1) -> c_20(U22^#(isNat(activate(V1)))) , U22^#(tt()) -> c_21() , U31^#(tt(), V) -> c_26(U32^#(isNatList(activate(V)))) , U32^#(tt()) -> c_27() , U41^#(tt(), V1, V2) -> c_28(U42^#(isNat(activate(V1)), activate(V2))) , U42^#(tt(), V2) -> c_29(U43^#(isNatIList(activate(V2)))) , U43^#(tt()) -> c_30() , isNatIList^#(V) -> c_31(U31^#(isNatIListKind(activate(V)), activate(V))) , isNatIList^#(n__zeros()) -> c_32() , isNatIList^#(n__cons(V1, V2)) -> c_33(U41^#(and(isNatKind(activate(V1)), n__isNatIListKind(activate(V2))), activate(V1), activate(V2))) , U52^#(tt(), V2) -> c_35(U53^#(isNatList(activate(V2)))) , U53^#(tt()) -> c_36() } Obligation: runtime complexity Answer: MAYBE Empty strict component of the problem is NOT empty. Arrrr..