MAYBE We are left with following problem, upon which TcT provides the certificate MAYBE. Strict Trs: { U101(tt(), M, N) -> U102(isNatKind(activate(M)), activate(M), activate(N)) , U102(tt(), M, N) -> U103(isNat(activate(N)), activate(M), activate(N)) , isNatKind(n__0()) -> tt() , isNatKind(n__plus(V1, V2)) -> U41(isNatKind(activate(V1)), activate(V2)) , isNatKind(n__s(V1)) -> U51(isNatKind(activate(V1))) , isNatKind(n__x(V1, V2)) -> U61(isNatKind(activate(V1)), activate(V2)) , activate(X) -> X , activate(n__0()) -> 0() , activate(n__plus(X1, X2)) -> plus(X1, X2) , activate(n__s(X)) -> s(X) , activate(n__x(X1, X2)) -> x(X1, X2) , U103(tt(), M, N) -> U104(isNatKind(activate(N)), activate(M), activate(N)) , isNat(n__0()) -> tt() , isNat(n__plus(V1, V2)) -> U11(isNatKind(activate(V1)), activate(V1), activate(V2)) , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) , isNat(n__x(V1, V2)) -> U31(isNatKind(activate(V1)), activate(V1), activate(V2)) , U104(tt(), M, N) -> plus(x(activate(N), activate(M)), activate(N)) , plus(X1, X2) -> n__plus(X1, X2) , plus(N, s(M)) -> U81(isNat(M), M, N) , plus(N, 0()) -> U71(isNat(N), N) , x(X1, X2) -> n__x(X1, X2) , x(N, s(M)) -> U101(isNat(M), M, N) , x(N, 0()) -> U91(isNat(N), N) , U11(tt(), V1, V2) -> U12(isNatKind(activate(V1)), activate(V1), activate(V2)) , U12(tt(), V1, V2) -> U13(isNatKind(activate(V2)), activate(V1), activate(V2)) , U13(tt(), V1, V2) -> U14(isNatKind(activate(V2)), activate(V1), activate(V2)) , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) , U15(tt(), V2) -> U16(isNat(activate(V2))) , U16(tt()) -> tt() , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) , U22(tt(), V1) -> U23(isNat(activate(V1))) , U23(tt()) -> tt() , U31(tt(), V1, V2) -> U32(isNatKind(activate(V1)), activate(V1), activate(V2)) , U32(tt(), V1, V2) -> U33(isNatKind(activate(V2)), activate(V1), activate(V2)) , U33(tt(), V1, V2) -> U34(isNatKind(activate(V2)), activate(V1), activate(V2)) , U34(tt(), V1, V2) -> U35(isNat(activate(V1)), activate(V2)) , U35(tt(), V2) -> U36(isNat(activate(V2))) , U36(tt()) -> tt() , U41(tt(), V2) -> U42(isNatKind(activate(V2))) , U42(tt()) -> tt() , U51(tt()) -> tt() , U61(tt(), V2) -> U62(isNatKind(activate(V2))) , U62(tt()) -> tt() , U71(tt(), N) -> U72(isNatKind(activate(N)), activate(N)) , U72(tt(), N) -> activate(N) , U81(tt(), M, N) -> U82(isNatKind(activate(M)), activate(M), activate(N)) , U82(tt(), M, N) -> U83(isNat(activate(N)), activate(M), activate(N)) , U83(tt(), M, N) -> U84(isNatKind(activate(N)), activate(M), activate(N)) , U84(tt(), M, N) -> s(plus(activate(N), activate(M))) , s(X) -> n__s(X) , U91(tt(), N) -> U92(isNatKind(activate(N))) , U92(tt()) -> 0() , 0() -> n__0() } Obligation: runtime complexity Answer: MAYBE None of the processors succeeded. Details of failed attempt(s): ----------------------------- 1) 'WithProblem (timeout of 60 seconds)' failed due to the following reason: Computation stopped due to timeout after 60.0 seconds. 2) 'Best' failed due to the following reason: None of the processors succeeded. Details of failed attempt(s): ----------------------------- 1) 'WithProblem (timeout of 30 seconds) (timeout of 60 seconds)' failed due to the following reason: Computation stopped due to timeout after 30.0 seconds. 2) 'Best' failed due to the following reason: None of the processors succeeded. Details of failed attempt(s): ----------------------------- 1) 'bsearch-popstar (timeout of 60 seconds)' failed due to the following reason: The processor is inapplicable, reason: Processor only applicable for innermost runtime complexity analysis 2) 'Polynomial Path Order (PS) (timeout of 60 seconds)' failed due to the following reason: The processor is inapplicable, reason: Processor only applicable for innermost runtime complexity analysis 3) 'Fastest (timeout of 5 seconds) (timeout of 60 seconds)' failed due to the following reason: None of the processors succeeded. Details of failed attempt(s): ----------------------------- 1) 'Bounds with perSymbol-enrichment and initial automaton 'match'' failed due to the following reason: match-boundness of the problem could not be verified. 2) 'Bounds with minimal-enrichment and initial automaton 'match'' failed due to the following reason: match-boundness of the problem could not be verified. 3) 'Innermost Weak Dependency Pairs (timeout of 60 seconds)' failed due to the following reason: We add the following weak dependency pairs: Strict DPs: { U101^#(tt(), M, N) -> c_1(U102^#(isNatKind(activate(M)), activate(M), activate(N))) , U102^#(tt(), M, N) -> c_2(U103^#(isNat(activate(N)), activate(M), activate(N))) , U103^#(tt(), M, N) -> c_12(U104^#(isNatKind(activate(N)), activate(M), activate(N))) , isNatKind^#(n__0()) -> c_3() , isNatKind^#(n__plus(V1, V2)) -> c_4(U41^#(isNatKind(activate(V1)), activate(V2))) , isNatKind^#(n__s(V1)) -> c_5(U51^#(isNatKind(activate(V1)))) , isNatKind^#(n__x(V1, V2)) -> c_6(U61^#(isNatKind(activate(V1)), activate(V2))) , U41^#(tt(), V2) -> c_39(U42^#(isNatKind(activate(V2)))) , U51^#(tt()) -> c_41() , U61^#(tt(), V2) -> c_42(U62^#(isNatKind(activate(V2)))) , activate^#(X) -> c_7(X) , activate^#(n__0()) -> c_8(0^#()) , activate^#(n__plus(X1, X2)) -> c_9(plus^#(X1, X2)) , activate^#(n__s(X)) -> c_10(s^#(X)) , activate^#(n__x(X1, X2)) -> c_11(x^#(X1, X2)) , 0^#() -> c_53() , plus^#(X1, X2) -> c_18(X1, X2) , plus^#(N, s(M)) -> c_19(U81^#(isNat(M), M, N)) , plus^#(N, 0()) -> c_20(U71^#(isNat(N), N)) , s^#(X) -> c_50(X) , x^#(X1, X2) -> c_21(X1, X2) , x^#(N, s(M)) -> c_22(U101^#(isNat(M), M, N)) , x^#(N, 0()) -> c_23(U91^#(isNat(N), N)) , U104^#(tt(), M, N) -> c_17(plus^#(x(activate(N), activate(M)), activate(N))) , isNat^#(n__0()) -> c_13() , isNat^#(n__plus(V1, V2)) -> c_14(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , isNat^#(n__s(V1)) -> c_15(U21^#(isNatKind(activate(V1)), activate(V1))) , isNat^#(n__x(V1, V2)) -> c_16(U31^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , U11^#(tt(), V1, V2) -> c_24(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , U21^#(tt(), V1) -> c_30(U22^#(isNatKind(activate(V1)), activate(V1))) , U31^#(tt(), V1, V2) -> c_33(U32^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , U81^#(tt(), M, N) -> c_46(U82^#(isNatKind(activate(M)), activate(M), activate(N))) , U71^#(tt(), N) -> c_44(U72^#(isNatKind(activate(N)), activate(N))) , U91^#(tt(), N) -> c_51(U92^#(isNatKind(activate(N)))) , U12^#(tt(), V1, V2) -> c_25(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U13^#(tt(), V1, V2) -> c_26(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U14^#(tt(), V1, V2) -> c_27(U15^#(isNat(activate(V1)), activate(V2))) , U15^#(tt(), V2) -> c_28(U16^#(isNat(activate(V2)))) , U16^#(tt()) -> c_29() , U22^#(tt(), V1) -> c_31(U23^#(isNat(activate(V1)))) , U23^#(tt()) -> c_32() , U32^#(tt(), V1, V2) -> c_34(U33^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U33^#(tt(), V1, V2) -> c_35(U34^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U34^#(tt(), V1, V2) -> c_36(U35^#(isNat(activate(V1)), activate(V2))) , U35^#(tt(), V2) -> c_37(U36^#(isNat(activate(V2)))) , U36^#(tt()) -> c_38() , U42^#(tt()) -> c_40() , U62^#(tt()) -> c_43() , U72^#(tt(), N) -> c_45(activate^#(N)) , U82^#(tt(), M, N) -> c_47(U83^#(isNat(activate(N)), activate(M), activate(N))) , U83^#(tt(), M, N) -> c_48(U84^#(isNatKind(activate(N)), activate(M), activate(N))) , U84^#(tt(), M, N) -> c_49(s^#(plus(activate(N), activate(M)))) , U92^#(tt()) -> c_52(0^#()) } and mark the set of starting terms. We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { U101^#(tt(), M, N) -> c_1(U102^#(isNatKind(activate(M)), activate(M), activate(N))) , U102^#(tt(), M, N) -> c_2(U103^#(isNat(activate(N)), activate(M), activate(N))) , U103^#(tt(), M, N) -> c_12(U104^#(isNatKind(activate(N)), activate(M), activate(N))) , isNatKind^#(n__0()) -> c_3() , isNatKind^#(n__plus(V1, V2)) -> c_4(U41^#(isNatKind(activate(V1)), activate(V2))) , isNatKind^#(n__s(V1)) -> c_5(U51^#(isNatKind(activate(V1)))) , isNatKind^#(n__x(V1, V2)) -> c_6(U61^#(isNatKind(activate(V1)), activate(V2))) , U41^#(tt(), V2) -> c_39(U42^#(isNatKind(activate(V2)))) , U51^#(tt()) -> c_41() , U61^#(tt(), V2) -> c_42(U62^#(isNatKind(activate(V2)))) , activate^#(X) -> c_7(X) , activate^#(n__0()) -> c_8(0^#()) , activate^#(n__plus(X1, X2)) -> c_9(plus^#(X1, X2)) , activate^#(n__s(X)) -> c_10(s^#(X)) , activate^#(n__x(X1, X2)) -> c_11(x^#(X1, X2)) , 0^#() -> c_53() , plus^#(X1, X2) -> c_18(X1, X2) , plus^#(N, s(M)) -> c_19(U81^#(isNat(M), M, N)) , plus^#(N, 0()) -> c_20(U71^#(isNat(N), N)) , s^#(X) -> c_50(X) , x^#(X1, X2) -> c_21(X1, X2) , x^#(N, s(M)) -> c_22(U101^#(isNat(M), M, N)) , x^#(N, 0()) -> c_23(U91^#(isNat(N), N)) , U104^#(tt(), M, N) -> c_17(plus^#(x(activate(N), activate(M)), activate(N))) , isNat^#(n__0()) -> c_13() , isNat^#(n__plus(V1, V2)) -> c_14(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , isNat^#(n__s(V1)) -> c_15(U21^#(isNatKind(activate(V1)), activate(V1))) , isNat^#(n__x(V1, V2)) -> c_16(U31^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , U11^#(tt(), V1, V2) -> c_24(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , U21^#(tt(), V1) -> c_30(U22^#(isNatKind(activate(V1)), activate(V1))) , U31^#(tt(), V1, V2) -> c_33(U32^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , U81^#(tt(), M, N) -> c_46(U82^#(isNatKind(activate(M)), activate(M), activate(N))) , U71^#(tt(), N) -> c_44(U72^#(isNatKind(activate(N)), activate(N))) , U91^#(tt(), N) -> c_51(U92^#(isNatKind(activate(N)))) , U12^#(tt(), V1, V2) -> c_25(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U13^#(tt(), V1, V2) -> c_26(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U14^#(tt(), V1, V2) -> c_27(U15^#(isNat(activate(V1)), activate(V2))) , U15^#(tt(), V2) -> c_28(U16^#(isNat(activate(V2)))) , U16^#(tt()) -> c_29() , U22^#(tt(), V1) -> c_31(U23^#(isNat(activate(V1)))) , U23^#(tt()) -> c_32() , U32^#(tt(), V1, V2) -> c_34(U33^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U33^#(tt(), V1, V2) -> c_35(U34^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U34^#(tt(), V1, V2) -> c_36(U35^#(isNat(activate(V1)), activate(V2))) , U35^#(tt(), V2) -> c_37(U36^#(isNat(activate(V2)))) , U36^#(tt()) -> c_38() , U42^#(tt()) -> c_40() , U62^#(tt()) -> c_43() , U72^#(tt(), N) -> c_45(activate^#(N)) , U82^#(tt(), M, N) -> c_47(U83^#(isNat(activate(N)), activate(M), activate(N))) , U83^#(tt(), M, N) -> c_48(U84^#(isNatKind(activate(N)), activate(M), activate(N))) , U84^#(tt(), M, N) -> c_49(s^#(plus(activate(N), activate(M)))) , U92^#(tt()) -> c_52(0^#()) } Strict Trs: { U101(tt(), M, N) -> U102(isNatKind(activate(M)), activate(M), activate(N)) , U102(tt(), M, N) -> U103(isNat(activate(N)), activate(M), activate(N)) , isNatKind(n__0()) -> tt() , isNatKind(n__plus(V1, V2)) -> U41(isNatKind(activate(V1)), activate(V2)) , isNatKind(n__s(V1)) -> U51(isNatKind(activate(V1))) , isNatKind(n__x(V1, V2)) -> U61(isNatKind(activate(V1)), activate(V2)) , activate(X) -> X , activate(n__0()) -> 0() , activate(n__plus(X1, X2)) -> plus(X1, X2) , activate(n__s(X)) -> s(X) , activate(n__x(X1, X2)) -> x(X1, X2) , U103(tt(), M, N) -> U104(isNatKind(activate(N)), activate(M), activate(N)) , isNat(n__0()) -> tt() , isNat(n__plus(V1, V2)) -> U11(isNatKind(activate(V1)), activate(V1), activate(V2)) , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) , isNat(n__x(V1, V2)) -> U31(isNatKind(activate(V1)), activate(V1), activate(V2)) , U104(tt(), M, N) -> plus(x(activate(N), activate(M)), activate(N)) , plus(X1, X2) -> n__plus(X1, X2) , plus(N, s(M)) -> U81(isNat(M), M, N) , plus(N, 0()) -> U71(isNat(N), N) , x(X1, X2) -> n__x(X1, X2) , x(N, s(M)) -> U101(isNat(M), M, N) , x(N, 0()) -> U91(isNat(N), N) , U11(tt(), V1, V2) -> U12(isNatKind(activate(V1)), activate(V1), activate(V2)) , U12(tt(), V1, V2) -> U13(isNatKind(activate(V2)), activate(V1), activate(V2)) , U13(tt(), V1, V2) -> U14(isNatKind(activate(V2)), activate(V1), activate(V2)) , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) , U15(tt(), V2) -> U16(isNat(activate(V2))) , U16(tt()) -> tt() , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) , U22(tt(), V1) -> U23(isNat(activate(V1))) , U23(tt()) -> tt() , U31(tt(), V1, V2) -> U32(isNatKind(activate(V1)), activate(V1), activate(V2)) , U32(tt(), V1, V2) -> U33(isNatKind(activate(V2)), activate(V1), activate(V2)) , U33(tt(), V1, V2) -> U34(isNatKind(activate(V2)), activate(V1), activate(V2)) , U34(tt(), V1, V2) -> U35(isNat(activate(V1)), activate(V2)) , U35(tt(), V2) -> U36(isNat(activate(V2))) , U36(tt()) -> tt() , U41(tt(), V2) -> U42(isNatKind(activate(V2))) , U42(tt()) -> tt() , U51(tt()) -> tt() , U61(tt(), V2) -> U62(isNatKind(activate(V2))) , U62(tt()) -> tt() , U71(tt(), N) -> U72(isNatKind(activate(N)), activate(N)) , U72(tt(), N) -> activate(N) , U81(tt(), M, N) -> U82(isNatKind(activate(M)), activate(M), activate(N)) , U82(tt(), M, N) -> U83(isNat(activate(N)), activate(M), activate(N)) , U83(tt(), M, N) -> U84(isNatKind(activate(N)), activate(M), activate(N)) , U84(tt(), M, N) -> s(plus(activate(N), activate(M))) , s(X) -> n__s(X) , U91(tt(), N) -> U92(isNatKind(activate(N))) , U92(tt()) -> 0() , 0() -> n__0() } Obligation: runtime complexity Answer: MAYBE We estimate the number of application of {4,9,16,25,39,41,46,47,48} by applications of Pre({4,9,16,25,39,41,46,47,48}) = {6,8,10,11,12,17,20,21,38,40,45,53}. Here rules are labeled as follows: DPs: { 1: U101^#(tt(), M, N) -> c_1(U102^#(isNatKind(activate(M)), activate(M), activate(N))) , 2: U102^#(tt(), M, N) -> c_2(U103^#(isNat(activate(N)), activate(M), activate(N))) , 3: U103^#(tt(), M, N) -> c_12(U104^#(isNatKind(activate(N)), activate(M), activate(N))) , 4: isNatKind^#(n__0()) -> c_3() , 5: isNatKind^#(n__plus(V1, V2)) -> c_4(U41^#(isNatKind(activate(V1)), activate(V2))) , 6: isNatKind^#(n__s(V1)) -> c_5(U51^#(isNatKind(activate(V1)))) , 7: isNatKind^#(n__x(V1, V2)) -> c_6(U61^#(isNatKind(activate(V1)), activate(V2))) , 8: U41^#(tt(), V2) -> c_39(U42^#(isNatKind(activate(V2)))) , 9: U51^#(tt()) -> c_41() , 10: U61^#(tt(), V2) -> c_42(U62^#(isNatKind(activate(V2)))) , 11: activate^#(X) -> c_7(X) , 12: activate^#(n__0()) -> c_8(0^#()) , 13: activate^#(n__plus(X1, X2)) -> c_9(plus^#(X1, X2)) , 14: activate^#(n__s(X)) -> c_10(s^#(X)) , 15: activate^#(n__x(X1, X2)) -> c_11(x^#(X1, X2)) , 16: 0^#() -> c_53() , 17: plus^#(X1, X2) -> c_18(X1, X2) , 18: plus^#(N, s(M)) -> c_19(U81^#(isNat(M), M, N)) , 19: plus^#(N, 0()) -> c_20(U71^#(isNat(N), N)) , 20: s^#(X) -> c_50(X) , 21: x^#(X1, X2) -> c_21(X1, X2) , 22: x^#(N, s(M)) -> c_22(U101^#(isNat(M), M, N)) , 23: x^#(N, 0()) -> c_23(U91^#(isNat(N), N)) , 24: U104^#(tt(), M, N) -> c_17(plus^#(x(activate(N), activate(M)), activate(N))) , 25: isNat^#(n__0()) -> c_13() , 26: isNat^#(n__plus(V1, V2)) -> c_14(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , 27: isNat^#(n__s(V1)) -> c_15(U21^#(isNatKind(activate(V1)), activate(V1))) , 28: isNat^#(n__x(V1, V2)) -> c_16(U31^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , 29: U11^#(tt(), V1, V2) -> c_24(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , 30: U21^#(tt(), V1) -> c_30(U22^#(isNatKind(activate(V1)), activate(V1))) , 31: U31^#(tt(), V1, V2) -> c_33(U32^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , 32: U81^#(tt(), M, N) -> c_46(U82^#(isNatKind(activate(M)), activate(M), activate(N))) , 33: U71^#(tt(), N) -> c_44(U72^#(isNatKind(activate(N)), activate(N))) , 34: U91^#(tt(), N) -> c_51(U92^#(isNatKind(activate(N)))) , 35: U12^#(tt(), V1, V2) -> c_25(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , 36: U13^#(tt(), V1, V2) -> c_26(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , 37: U14^#(tt(), V1, V2) -> c_27(U15^#(isNat(activate(V1)), activate(V2))) , 38: U15^#(tt(), V2) -> c_28(U16^#(isNat(activate(V2)))) , 39: U16^#(tt()) -> c_29() , 40: U22^#(tt(), V1) -> c_31(U23^#(isNat(activate(V1)))) , 41: U23^#(tt()) -> c_32() , 42: U32^#(tt(), V1, V2) -> c_34(U33^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , 43: U33^#(tt(), V1, V2) -> c_35(U34^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , 44: U34^#(tt(), V1, V2) -> c_36(U35^#(isNat(activate(V1)), activate(V2))) , 45: U35^#(tt(), V2) -> c_37(U36^#(isNat(activate(V2)))) , 46: U36^#(tt()) -> c_38() , 47: U42^#(tt()) -> c_40() , 48: U62^#(tt()) -> c_43() , 49: U72^#(tt(), N) -> c_45(activate^#(N)) , 50: U82^#(tt(), M, N) -> c_47(U83^#(isNat(activate(N)), activate(M), activate(N))) , 51: U83^#(tt(), M, N) -> c_48(U84^#(isNatKind(activate(N)), activate(M), activate(N))) , 52: U84^#(tt(), M, N) -> c_49(s^#(plus(activate(N), activate(M)))) , 53: U92^#(tt()) -> c_52(0^#()) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { U101^#(tt(), M, N) -> c_1(U102^#(isNatKind(activate(M)), activate(M), activate(N))) , U102^#(tt(), M, N) -> c_2(U103^#(isNat(activate(N)), activate(M), activate(N))) , U103^#(tt(), M, N) -> c_12(U104^#(isNatKind(activate(N)), activate(M), activate(N))) , isNatKind^#(n__plus(V1, V2)) -> c_4(U41^#(isNatKind(activate(V1)), activate(V2))) , isNatKind^#(n__s(V1)) -> c_5(U51^#(isNatKind(activate(V1)))) , isNatKind^#(n__x(V1, V2)) -> c_6(U61^#(isNatKind(activate(V1)), activate(V2))) , U41^#(tt(), V2) -> c_39(U42^#(isNatKind(activate(V2)))) , U61^#(tt(), V2) -> c_42(U62^#(isNatKind(activate(V2)))) , activate^#(X) -> c_7(X) , activate^#(n__0()) -> c_8(0^#()) , activate^#(n__plus(X1, X2)) -> c_9(plus^#(X1, X2)) , activate^#(n__s(X)) -> c_10(s^#(X)) , activate^#(n__x(X1, X2)) -> c_11(x^#(X1, X2)) , plus^#(X1, X2) -> c_18(X1, X2) , plus^#(N, s(M)) -> c_19(U81^#(isNat(M), M, N)) , plus^#(N, 0()) -> c_20(U71^#(isNat(N), N)) , s^#(X) -> c_50(X) , x^#(X1, X2) -> c_21(X1, X2) , x^#(N, s(M)) -> c_22(U101^#(isNat(M), M, N)) , x^#(N, 0()) -> c_23(U91^#(isNat(N), N)) , U104^#(tt(), M, N) -> c_17(plus^#(x(activate(N), activate(M)), activate(N))) , isNat^#(n__plus(V1, V2)) -> c_14(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , isNat^#(n__s(V1)) -> c_15(U21^#(isNatKind(activate(V1)), activate(V1))) , isNat^#(n__x(V1, V2)) -> c_16(U31^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , U11^#(tt(), V1, V2) -> c_24(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , U21^#(tt(), V1) -> c_30(U22^#(isNatKind(activate(V1)), activate(V1))) , U31^#(tt(), V1, V2) -> c_33(U32^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , U81^#(tt(), M, N) -> c_46(U82^#(isNatKind(activate(M)), activate(M), activate(N))) , U71^#(tt(), N) -> c_44(U72^#(isNatKind(activate(N)), activate(N))) , U91^#(tt(), N) -> c_51(U92^#(isNatKind(activate(N)))) , U12^#(tt(), V1, V2) -> c_25(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U13^#(tt(), V1, V2) -> c_26(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U14^#(tt(), V1, V2) -> c_27(U15^#(isNat(activate(V1)), activate(V2))) , U15^#(tt(), V2) -> c_28(U16^#(isNat(activate(V2)))) , U22^#(tt(), V1) -> c_31(U23^#(isNat(activate(V1)))) , U32^#(tt(), V1, V2) -> c_34(U33^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U33^#(tt(), V1, V2) -> c_35(U34^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U34^#(tt(), V1, V2) -> c_36(U35^#(isNat(activate(V1)), activate(V2))) , U35^#(tt(), V2) -> c_37(U36^#(isNat(activate(V2)))) , U72^#(tt(), N) -> c_45(activate^#(N)) , U82^#(tt(), M, N) -> c_47(U83^#(isNat(activate(N)), activate(M), activate(N))) , U83^#(tt(), M, N) -> c_48(U84^#(isNatKind(activate(N)), activate(M), activate(N))) , U84^#(tt(), M, N) -> c_49(s^#(plus(activate(N), activate(M)))) , U92^#(tt()) -> c_52(0^#()) } Strict Trs: { U101(tt(), M, N) -> U102(isNatKind(activate(M)), activate(M), activate(N)) , U102(tt(), M, N) -> U103(isNat(activate(N)), activate(M), activate(N)) , isNatKind(n__0()) -> tt() , isNatKind(n__plus(V1, V2)) -> U41(isNatKind(activate(V1)), activate(V2)) , isNatKind(n__s(V1)) -> U51(isNatKind(activate(V1))) , isNatKind(n__x(V1, V2)) -> U61(isNatKind(activate(V1)), activate(V2)) , activate(X) -> X , activate(n__0()) -> 0() , activate(n__plus(X1, X2)) -> plus(X1, X2) , activate(n__s(X)) -> s(X) , activate(n__x(X1, X2)) -> x(X1, X2) , U103(tt(), M, N) -> U104(isNatKind(activate(N)), activate(M), activate(N)) , isNat(n__0()) -> tt() , isNat(n__plus(V1, V2)) -> U11(isNatKind(activate(V1)), activate(V1), activate(V2)) , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) , isNat(n__x(V1, V2)) -> U31(isNatKind(activate(V1)), activate(V1), activate(V2)) , U104(tt(), M, N) -> plus(x(activate(N), activate(M)), activate(N)) , plus(X1, X2) -> n__plus(X1, X2) , plus(N, s(M)) -> U81(isNat(M), M, N) , plus(N, 0()) -> U71(isNat(N), N) , x(X1, X2) -> n__x(X1, X2) , x(N, s(M)) -> U101(isNat(M), M, N) , x(N, 0()) -> U91(isNat(N), N) , U11(tt(), V1, V2) -> U12(isNatKind(activate(V1)), activate(V1), activate(V2)) , U12(tt(), V1, V2) -> U13(isNatKind(activate(V2)), activate(V1), activate(V2)) , U13(tt(), V1, V2) -> U14(isNatKind(activate(V2)), activate(V1), activate(V2)) , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) , U15(tt(), V2) -> U16(isNat(activate(V2))) , U16(tt()) -> tt() , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) , U22(tt(), V1) -> U23(isNat(activate(V1))) , U23(tt()) -> tt() , U31(tt(), V1, V2) -> U32(isNatKind(activate(V1)), activate(V1), activate(V2)) , U32(tt(), V1, V2) -> U33(isNatKind(activate(V2)), activate(V1), activate(V2)) , U33(tt(), V1, V2) -> U34(isNatKind(activate(V2)), activate(V1), activate(V2)) , U34(tt(), V1, V2) -> U35(isNat(activate(V1)), activate(V2)) , U35(tt(), V2) -> U36(isNat(activate(V2))) , U36(tt()) -> tt() , U41(tt(), V2) -> U42(isNatKind(activate(V2))) , U42(tt()) -> tt() , U51(tt()) -> tt() , U61(tt(), V2) -> U62(isNatKind(activate(V2))) , U62(tt()) -> tt() , U71(tt(), N) -> U72(isNatKind(activate(N)), activate(N)) , U72(tt(), N) -> activate(N) , U81(tt(), M, N) -> U82(isNatKind(activate(M)), activate(M), activate(N)) , U82(tt(), M, N) -> U83(isNat(activate(N)), activate(M), activate(N)) , U83(tt(), M, N) -> U84(isNatKind(activate(N)), activate(M), activate(N)) , U84(tt(), M, N) -> s(plus(activate(N), activate(M))) , s(X) -> n__s(X) , U91(tt(), N) -> U92(isNatKind(activate(N))) , U92(tt()) -> 0() , 0() -> n__0() } Weak DPs: { isNatKind^#(n__0()) -> c_3() , U51^#(tt()) -> c_41() , 0^#() -> c_53() , isNat^#(n__0()) -> c_13() , U16^#(tt()) -> c_29() , U23^#(tt()) -> c_32() , U36^#(tt()) -> c_38() , U42^#(tt()) -> c_40() , U62^#(tt()) -> c_43() } Obligation: runtime complexity Answer: MAYBE We estimate the number of application of {5,7,8,10,34,35,39,44} by applications of Pre({5,7,8,10,34,35,39,44}) = {4,6,9,14,17,18,26,30,33,38,40}. Here rules are labeled as follows: DPs: { 1: U101^#(tt(), M, N) -> c_1(U102^#(isNatKind(activate(M)), activate(M), activate(N))) , 2: U102^#(tt(), M, N) -> c_2(U103^#(isNat(activate(N)), activate(M), activate(N))) , 3: U103^#(tt(), M, N) -> c_12(U104^#(isNatKind(activate(N)), activate(M), activate(N))) , 4: isNatKind^#(n__plus(V1, V2)) -> c_4(U41^#(isNatKind(activate(V1)), activate(V2))) , 5: isNatKind^#(n__s(V1)) -> c_5(U51^#(isNatKind(activate(V1)))) , 6: isNatKind^#(n__x(V1, V2)) -> c_6(U61^#(isNatKind(activate(V1)), activate(V2))) , 7: U41^#(tt(), V2) -> c_39(U42^#(isNatKind(activate(V2)))) , 8: U61^#(tt(), V2) -> c_42(U62^#(isNatKind(activate(V2)))) , 9: activate^#(X) -> c_7(X) , 10: activate^#(n__0()) -> c_8(0^#()) , 11: activate^#(n__plus(X1, X2)) -> c_9(plus^#(X1, X2)) , 12: activate^#(n__s(X)) -> c_10(s^#(X)) , 13: activate^#(n__x(X1, X2)) -> c_11(x^#(X1, X2)) , 14: plus^#(X1, X2) -> c_18(X1, X2) , 15: plus^#(N, s(M)) -> c_19(U81^#(isNat(M), M, N)) , 16: plus^#(N, 0()) -> c_20(U71^#(isNat(N), N)) , 17: s^#(X) -> c_50(X) , 18: x^#(X1, X2) -> c_21(X1, X2) , 19: x^#(N, s(M)) -> c_22(U101^#(isNat(M), M, N)) , 20: x^#(N, 0()) -> c_23(U91^#(isNat(N), N)) , 21: U104^#(tt(), M, N) -> c_17(plus^#(x(activate(N), activate(M)), activate(N))) , 22: isNat^#(n__plus(V1, V2)) -> c_14(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , 23: isNat^#(n__s(V1)) -> c_15(U21^#(isNatKind(activate(V1)), activate(V1))) , 24: isNat^#(n__x(V1, V2)) -> c_16(U31^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , 25: U11^#(tt(), V1, V2) -> c_24(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , 26: U21^#(tt(), V1) -> c_30(U22^#(isNatKind(activate(V1)), activate(V1))) , 27: U31^#(tt(), V1, V2) -> c_33(U32^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , 28: U81^#(tt(), M, N) -> c_46(U82^#(isNatKind(activate(M)), activate(M), activate(N))) , 29: U71^#(tt(), N) -> c_44(U72^#(isNatKind(activate(N)), activate(N))) , 30: U91^#(tt(), N) -> c_51(U92^#(isNatKind(activate(N)))) , 31: U12^#(tt(), V1, V2) -> c_25(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , 32: U13^#(tt(), V1, V2) -> c_26(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , 33: U14^#(tt(), V1, V2) -> c_27(U15^#(isNat(activate(V1)), activate(V2))) , 34: U15^#(tt(), V2) -> c_28(U16^#(isNat(activate(V2)))) , 35: U22^#(tt(), V1) -> c_31(U23^#(isNat(activate(V1)))) , 36: U32^#(tt(), V1, V2) -> c_34(U33^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , 37: U33^#(tt(), V1, V2) -> c_35(U34^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , 38: U34^#(tt(), V1, V2) -> c_36(U35^#(isNat(activate(V1)), activate(V2))) , 39: U35^#(tt(), V2) -> c_37(U36^#(isNat(activate(V2)))) , 40: U72^#(tt(), N) -> c_45(activate^#(N)) , 41: U82^#(tt(), M, N) -> c_47(U83^#(isNat(activate(N)), activate(M), activate(N))) , 42: U83^#(tt(), M, N) -> c_48(U84^#(isNatKind(activate(N)), activate(M), activate(N))) , 43: U84^#(tt(), M, N) -> c_49(s^#(plus(activate(N), activate(M)))) , 44: U92^#(tt()) -> c_52(0^#()) , 45: isNatKind^#(n__0()) -> c_3() , 46: U51^#(tt()) -> c_41() , 47: 0^#() -> c_53() , 48: isNat^#(n__0()) -> c_13() , 49: U16^#(tt()) -> c_29() , 50: U23^#(tt()) -> c_32() , 51: U36^#(tt()) -> c_38() , 52: U42^#(tt()) -> c_40() , 53: U62^#(tt()) -> c_43() } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { U101^#(tt(), M, N) -> c_1(U102^#(isNatKind(activate(M)), activate(M), activate(N))) , U102^#(tt(), M, N) -> c_2(U103^#(isNat(activate(N)), activate(M), activate(N))) , U103^#(tt(), M, N) -> c_12(U104^#(isNatKind(activate(N)), activate(M), activate(N))) , isNatKind^#(n__plus(V1, V2)) -> c_4(U41^#(isNatKind(activate(V1)), activate(V2))) , isNatKind^#(n__x(V1, V2)) -> c_6(U61^#(isNatKind(activate(V1)), activate(V2))) , activate^#(X) -> c_7(X) , activate^#(n__plus(X1, X2)) -> c_9(plus^#(X1, X2)) , activate^#(n__s(X)) -> c_10(s^#(X)) , activate^#(n__x(X1, X2)) -> c_11(x^#(X1, X2)) , plus^#(X1, X2) -> c_18(X1, X2) , plus^#(N, s(M)) -> c_19(U81^#(isNat(M), M, N)) , plus^#(N, 0()) -> c_20(U71^#(isNat(N), N)) , s^#(X) -> c_50(X) , x^#(X1, X2) -> c_21(X1, X2) , x^#(N, s(M)) -> c_22(U101^#(isNat(M), M, N)) , x^#(N, 0()) -> c_23(U91^#(isNat(N), N)) , U104^#(tt(), M, N) -> c_17(plus^#(x(activate(N), activate(M)), activate(N))) , isNat^#(n__plus(V1, V2)) -> c_14(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , isNat^#(n__s(V1)) -> c_15(U21^#(isNatKind(activate(V1)), activate(V1))) , isNat^#(n__x(V1, V2)) -> c_16(U31^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , U11^#(tt(), V1, V2) -> c_24(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , U21^#(tt(), V1) -> c_30(U22^#(isNatKind(activate(V1)), activate(V1))) , U31^#(tt(), V1, V2) -> c_33(U32^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , U81^#(tt(), M, N) -> c_46(U82^#(isNatKind(activate(M)), activate(M), activate(N))) , U71^#(tt(), N) -> c_44(U72^#(isNatKind(activate(N)), activate(N))) , U91^#(tt(), N) -> c_51(U92^#(isNatKind(activate(N)))) , U12^#(tt(), V1, V2) -> c_25(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U13^#(tt(), V1, V2) -> c_26(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U14^#(tt(), V1, V2) -> c_27(U15^#(isNat(activate(V1)), activate(V2))) , U32^#(tt(), V1, V2) -> c_34(U33^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U33^#(tt(), V1, V2) -> c_35(U34^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U34^#(tt(), V1, V2) -> c_36(U35^#(isNat(activate(V1)), activate(V2))) , U72^#(tt(), N) -> c_45(activate^#(N)) , U82^#(tt(), M, N) -> c_47(U83^#(isNat(activate(N)), activate(M), activate(N))) , U83^#(tt(), M, N) -> c_48(U84^#(isNatKind(activate(N)), activate(M), activate(N))) , U84^#(tt(), M, N) -> c_49(s^#(plus(activate(N), activate(M)))) } Strict Trs: { U101(tt(), M, N) -> U102(isNatKind(activate(M)), activate(M), activate(N)) , U102(tt(), M, N) -> U103(isNat(activate(N)), activate(M), activate(N)) , isNatKind(n__0()) -> tt() , isNatKind(n__plus(V1, V2)) -> U41(isNatKind(activate(V1)), activate(V2)) , isNatKind(n__s(V1)) -> U51(isNatKind(activate(V1))) , isNatKind(n__x(V1, V2)) -> U61(isNatKind(activate(V1)), activate(V2)) , activate(X) -> X , activate(n__0()) -> 0() , activate(n__plus(X1, X2)) -> plus(X1, X2) , activate(n__s(X)) -> s(X) , activate(n__x(X1, X2)) -> x(X1, X2) , U103(tt(), M, N) -> U104(isNatKind(activate(N)), activate(M), activate(N)) , isNat(n__0()) -> tt() , isNat(n__plus(V1, V2)) -> U11(isNatKind(activate(V1)), activate(V1), activate(V2)) , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) , isNat(n__x(V1, V2)) -> U31(isNatKind(activate(V1)), activate(V1), activate(V2)) , U104(tt(), M, N) -> plus(x(activate(N), activate(M)), activate(N)) , plus(X1, X2) -> n__plus(X1, X2) , plus(N, s(M)) -> U81(isNat(M), M, N) , plus(N, 0()) -> U71(isNat(N), N) , x(X1, X2) -> n__x(X1, X2) , x(N, s(M)) -> U101(isNat(M), M, N) , x(N, 0()) -> U91(isNat(N), N) , U11(tt(), V1, V2) -> U12(isNatKind(activate(V1)), activate(V1), activate(V2)) , U12(tt(), V1, V2) -> U13(isNatKind(activate(V2)), activate(V1), activate(V2)) , U13(tt(), V1, V2) -> U14(isNatKind(activate(V2)), activate(V1), activate(V2)) , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) , U15(tt(), V2) -> U16(isNat(activate(V2))) , U16(tt()) -> tt() , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) , U22(tt(), V1) -> U23(isNat(activate(V1))) , U23(tt()) -> tt() , U31(tt(), V1, V2) -> U32(isNatKind(activate(V1)), activate(V1), activate(V2)) , U32(tt(), V1, V2) -> U33(isNatKind(activate(V2)), activate(V1), activate(V2)) , U33(tt(), V1, V2) -> U34(isNatKind(activate(V2)), activate(V1), activate(V2)) , U34(tt(), V1, V2) -> U35(isNat(activate(V1)), activate(V2)) , U35(tt(), V2) -> U36(isNat(activate(V2))) , U36(tt()) -> tt() , U41(tt(), V2) -> U42(isNatKind(activate(V2))) , U42(tt()) -> tt() , U51(tt()) -> tt() , U61(tt(), V2) -> U62(isNatKind(activate(V2))) , U62(tt()) -> tt() , U71(tt(), N) -> U72(isNatKind(activate(N)), activate(N)) , U72(tt(), N) -> activate(N) , U81(tt(), M, N) -> U82(isNatKind(activate(M)), activate(M), activate(N)) , U82(tt(), M, N) -> U83(isNat(activate(N)), activate(M), activate(N)) , U83(tt(), M, N) -> U84(isNatKind(activate(N)), activate(M), activate(N)) , U84(tt(), M, N) -> s(plus(activate(N), activate(M))) , s(X) -> n__s(X) , U91(tt(), N) -> U92(isNatKind(activate(N))) , U92(tt()) -> 0() , 0() -> n__0() } Weak DPs: { isNatKind^#(n__0()) -> c_3() , isNatKind^#(n__s(V1)) -> c_5(U51^#(isNatKind(activate(V1)))) , U41^#(tt(), V2) -> c_39(U42^#(isNatKind(activate(V2)))) , U51^#(tt()) -> c_41() , U61^#(tt(), V2) -> c_42(U62^#(isNatKind(activate(V2)))) , activate^#(n__0()) -> c_8(0^#()) , 0^#() -> c_53() , isNat^#(n__0()) -> c_13() , U15^#(tt(), V2) -> c_28(U16^#(isNat(activate(V2)))) , U16^#(tt()) -> c_29() , U22^#(tt(), V1) -> c_31(U23^#(isNat(activate(V1)))) , U23^#(tt()) -> c_32() , U35^#(tt(), V2) -> c_37(U36^#(isNat(activate(V2)))) , U36^#(tt()) -> c_38() , U42^#(tt()) -> c_40() , U62^#(tt()) -> c_43() , U92^#(tt()) -> c_52(0^#()) } Obligation: runtime complexity Answer: MAYBE We estimate the number of application of {4,5,22,26,29,32} by applications of Pre({4,5,22,26,29,32}) = {6,10,13,14,16,19,28,31}. Here rules are labeled as follows: DPs: { 1: U101^#(tt(), M, N) -> c_1(U102^#(isNatKind(activate(M)), activate(M), activate(N))) , 2: U102^#(tt(), M, N) -> c_2(U103^#(isNat(activate(N)), activate(M), activate(N))) , 3: U103^#(tt(), M, N) -> c_12(U104^#(isNatKind(activate(N)), activate(M), activate(N))) , 4: isNatKind^#(n__plus(V1, V2)) -> c_4(U41^#(isNatKind(activate(V1)), activate(V2))) , 5: isNatKind^#(n__x(V1, V2)) -> c_6(U61^#(isNatKind(activate(V1)), activate(V2))) , 6: activate^#(X) -> c_7(X) , 7: activate^#(n__plus(X1, X2)) -> c_9(plus^#(X1, X2)) , 8: activate^#(n__s(X)) -> c_10(s^#(X)) , 9: activate^#(n__x(X1, X2)) -> c_11(x^#(X1, X2)) , 10: plus^#(X1, X2) -> c_18(X1, X2) , 11: plus^#(N, s(M)) -> c_19(U81^#(isNat(M), M, N)) , 12: plus^#(N, 0()) -> c_20(U71^#(isNat(N), N)) , 13: s^#(X) -> c_50(X) , 14: x^#(X1, X2) -> c_21(X1, X2) , 15: x^#(N, s(M)) -> c_22(U101^#(isNat(M), M, N)) , 16: x^#(N, 0()) -> c_23(U91^#(isNat(N), N)) , 17: U104^#(tt(), M, N) -> c_17(plus^#(x(activate(N), activate(M)), activate(N))) , 18: isNat^#(n__plus(V1, V2)) -> c_14(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , 19: isNat^#(n__s(V1)) -> c_15(U21^#(isNatKind(activate(V1)), activate(V1))) , 20: isNat^#(n__x(V1, V2)) -> c_16(U31^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , 21: U11^#(tt(), V1, V2) -> c_24(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , 22: U21^#(tt(), V1) -> c_30(U22^#(isNatKind(activate(V1)), activate(V1))) , 23: U31^#(tt(), V1, V2) -> c_33(U32^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , 24: U81^#(tt(), M, N) -> c_46(U82^#(isNatKind(activate(M)), activate(M), activate(N))) , 25: U71^#(tt(), N) -> c_44(U72^#(isNatKind(activate(N)), activate(N))) , 26: U91^#(tt(), N) -> c_51(U92^#(isNatKind(activate(N)))) , 27: U12^#(tt(), V1, V2) -> c_25(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , 28: U13^#(tt(), V1, V2) -> c_26(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , 29: U14^#(tt(), V1, V2) -> c_27(U15^#(isNat(activate(V1)), activate(V2))) , 30: U32^#(tt(), V1, V2) -> c_34(U33^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , 31: U33^#(tt(), V1, V2) -> c_35(U34^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , 32: U34^#(tt(), V1, V2) -> c_36(U35^#(isNat(activate(V1)), activate(V2))) , 33: U72^#(tt(), N) -> c_45(activate^#(N)) , 34: U82^#(tt(), M, N) -> c_47(U83^#(isNat(activate(N)), activate(M), activate(N))) , 35: U83^#(tt(), M, N) -> c_48(U84^#(isNatKind(activate(N)), activate(M), activate(N))) , 36: U84^#(tt(), M, N) -> c_49(s^#(plus(activate(N), activate(M)))) , 37: isNatKind^#(n__0()) -> c_3() , 38: isNatKind^#(n__s(V1)) -> c_5(U51^#(isNatKind(activate(V1)))) , 39: U41^#(tt(), V2) -> c_39(U42^#(isNatKind(activate(V2)))) , 40: U51^#(tt()) -> c_41() , 41: U61^#(tt(), V2) -> c_42(U62^#(isNatKind(activate(V2)))) , 42: activate^#(n__0()) -> c_8(0^#()) , 43: 0^#() -> c_53() , 44: isNat^#(n__0()) -> c_13() , 45: U15^#(tt(), V2) -> c_28(U16^#(isNat(activate(V2)))) , 46: U16^#(tt()) -> c_29() , 47: U22^#(tt(), V1) -> c_31(U23^#(isNat(activate(V1)))) , 48: U23^#(tt()) -> c_32() , 49: U35^#(tt(), V2) -> c_37(U36^#(isNat(activate(V2)))) , 50: U36^#(tt()) -> c_38() , 51: U42^#(tt()) -> c_40() , 52: U62^#(tt()) -> c_43() , 53: U92^#(tt()) -> c_52(0^#()) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { U101^#(tt(), M, N) -> c_1(U102^#(isNatKind(activate(M)), activate(M), activate(N))) , U102^#(tt(), M, N) -> c_2(U103^#(isNat(activate(N)), activate(M), activate(N))) , U103^#(tt(), M, N) -> c_12(U104^#(isNatKind(activate(N)), activate(M), activate(N))) , activate^#(X) -> c_7(X) , activate^#(n__plus(X1, X2)) -> c_9(plus^#(X1, X2)) , activate^#(n__s(X)) -> c_10(s^#(X)) , activate^#(n__x(X1, X2)) -> c_11(x^#(X1, X2)) , plus^#(X1, X2) -> c_18(X1, X2) , plus^#(N, s(M)) -> c_19(U81^#(isNat(M), M, N)) , plus^#(N, 0()) -> c_20(U71^#(isNat(N), N)) , s^#(X) -> c_50(X) , x^#(X1, X2) -> c_21(X1, X2) , x^#(N, s(M)) -> c_22(U101^#(isNat(M), M, N)) , x^#(N, 0()) -> c_23(U91^#(isNat(N), N)) , U104^#(tt(), M, N) -> c_17(plus^#(x(activate(N), activate(M)), activate(N))) , isNat^#(n__plus(V1, V2)) -> c_14(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , isNat^#(n__s(V1)) -> c_15(U21^#(isNatKind(activate(V1)), activate(V1))) , isNat^#(n__x(V1, V2)) -> c_16(U31^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , U11^#(tt(), V1, V2) -> c_24(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , U31^#(tt(), V1, V2) -> c_33(U32^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , U81^#(tt(), M, N) -> c_46(U82^#(isNatKind(activate(M)), activate(M), activate(N))) , U71^#(tt(), N) -> c_44(U72^#(isNatKind(activate(N)), activate(N))) , U12^#(tt(), V1, V2) -> c_25(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U13^#(tt(), V1, V2) -> c_26(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U32^#(tt(), V1, V2) -> c_34(U33^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U33^#(tt(), V1, V2) -> c_35(U34^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U72^#(tt(), N) -> c_45(activate^#(N)) , U82^#(tt(), M, N) -> c_47(U83^#(isNat(activate(N)), activate(M), activate(N))) , U83^#(tt(), M, N) -> c_48(U84^#(isNatKind(activate(N)), activate(M), activate(N))) , U84^#(tt(), M, N) -> c_49(s^#(plus(activate(N), activate(M)))) } Strict Trs: { U101(tt(), M, N) -> U102(isNatKind(activate(M)), activate(M), activate(N)) , U102(tt(), M, N) -> U103(isNat(activate(N)), activate(M), activate(N)) , isNatKind(n__0()) -> tt() , isNatKind(n__plus(V1, V2)) -> U41(isNatKind(activate(V1)), activate(V2)) , isNatKind(n__s(V1)) -> U51(isNatKind(activate(V1))) , isNatKind(n__x(V1, V2)) -> U61(isNatKind(activate(V1)), activate(V2)) , activate(X) -> X , activate(n__0()) -> 0() , activate(n__plus(X1, X2)) -> plus(X1, X2) , activate(n__s(X)) -> s(X) , activate(n__x(X1, X2)) -> x(X1, X2) , U103(tt(), M, N) -> U104(isNatKind(activate(N)), activate(M), activate(N)) , isNat(n__0()) -> tt() , isNat(n__plus(V1, V2)) -> U11(isNatKind(activate(V1)), activate(V1), activate(V2)) , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) , isNat(n__x(V1, V2)) -> U31(isNatKind(activate(V1)), activate(V1), activate(V2)) , U104(tt(), M, N) -> plus(x(activate(N), activate(M)), activate(N)) , plus(X1, X2) -> n__plus(X1, X2) , plus(N, s(M)) -> U81(isNat(M), M, N) , plus(N, 0()) -> U71(isNat(N), N) , x(X1, X2) -> n__x(X1, X2) , x(N, s(M)) -> U101(isNat(M), M, N) , x(N, 0()) -> U91(isNat(N), N) , U11(tt(), V1, V2) -> U12(isNatKind(activate(V1)), activate(V1), activate(V2)) , U12(tt(), V1, V2) -> U13(isNatKind(activate(V2)), activate(V1), activate(V2)) , U13(tt(), V1, V2) -> U14(isNatKind(activate(V2)), activate(V1), activate(V2)) , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) , U15(tt(), V2) -> U16(isNat(activate(V2))) , U16(tt()) -> tt() , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) , U22(tt(), V1) -> U23(isNat(activate(V1))) , U23(tt()) -> tt() , U31(tt(), V1, V2) -> U32(isNatKind(activate(V1)), activate(V1), activate(V2)) , U32(tt(), V1, V2) -> U33(isNatKind(activate(V2)), activate(V1), activate(V2)) , U33(tt(), V1, V2) -> U34(isNatKind(activate(V2)), activate(V1), activate(V2)) , U34(tt(), V1, V2) -> U35(isNat(activate(V1)), activate(V2)) , U35(tt(), V2) -> U36(isNat(activate(V2))) , U36(tt()) -> tt() , U41(tt(), V2) -> U42(isNatKind(activate(V2))) , U42(tt()) -> tt() , U51(tt()) -> tt() , U61(tt(), V2) -> U62(isNatKind(activate(V2))) , U62(tt()) -> tt() , U71(tt(), N) -> U72(isNatKind(activate(N)), activate(N)) , U72(tt(), N) -> activate(N) , U81(tt(), M, N) -> U82(isNatKind(activate(M)), activate(M), activate(N)) , U82(tt(), M, N) -> U83(isNat(activate(N)), activate(M), activate(N)) , U83(tt(), M, N) -> U84(isNatKind(activate(N)), activate(M), activate(N)) , U84(tt(), M, N) -> s(plus(activate(N), activate(M))) , s(X) -> n__s(X) , U91(tt(), N) -> U92(isNatKind(activate(N))) , U92(tt()) -> 0() , 0() -> n__0() } Weak DPs: { isNatKind^#(n__0()) -> c_3() , isNatKind^#(n__plus(V1, V2)) -> c_4(U41^#(isNatKind(activate(V1)), activate(V2))) , isNatKind^#(n__s(V1)) -> c_5(U51^#(isNatKind(activate(V1)))) , isNatKind^#(n__x(V1, V2)) -> c_6(U61^#(isNatKind(activate(V1)), activate(V2))) , U41^#(tt(), V2) -> c_39(U42^#(isNatKind(activate(V2)))) , U51^#(tt()) -> c_41() , U61^#(tt(), V2) -> c_42(U62^#(isNatKind(activate(V2)))) , activate^#(n__0()) -> c_8(0^#()) , 0^#() -> c_53() , isNat^#(n__0()) -> c_13() , U21^#(tt(), V1) -> c_30(U22^#(isNatKind(activate(V1)), activate(V1))) , U91^#(tt(), N) -> c_51(U92^#(isNatKind(activate(N)))) , U14^#(tt(), V1, V2) -> c_27(U15^#(isNat(activate(V1)), activate(V2))) , U15^#(tt(), V2) -> c_28(U16^#(isNat(activate(V2)))) , U16^#(tt()) -> c_29() , U22^#(tt(), V1) -> c_31(U23^#(isNat(activate(V1)))) , U23^#(tt()) -> c_32() , U34^#(tt(), V1, V2) -> c_36(U35^#(isNat(activate(V1)), activate(V2))) , U35^#(tt(), V2) -> c_37(U36^#(isNat(activate(V2)))) , U36^#(tt()) -> c_38() , U42^#(tt()) -> c_40() , U62^#(tt()) -> c_43() , U92^#(tt()) -> c_52(0^#()) } Obligation: runtime complexity Answer: MAYBE We estimate the number of application of {14,17,24,26} by applications of Pre({14,17,24,26}) = {4,7,8,11,12,23,25}. Here rules are labeled as follows: DPs: { 1: U101^#(tt(), M, N) -> c_1(U102^#(isNatKind(activate(M)), activate(M), activate(N))) , 2: U102^#(tt(), M, N) -> c_2(U103^#(isNat(activate(N)), activate(M), activate(N))) , 3: U103^#(tt(), M, N) -> c_12(U104^#(isNatKind(activate(N)), activate(M), activate(N))) , 4: activate^#(X) -> c_7(X) , 5: activate^#(n__plus(X1, X2)) -> c_9(plus^#(X1, X2)) , 6: activate^#(n__s(X)) -> c_10(s^#(X)) , 7: activate^#(n__x(X1, X2)) -> c_11(x^#(X1, X2)) , 8: plus^#(X1, X2) -> c_18(X1, X2) , 9: plus^#(N, s(M)) -> c_19(U81^#(isNat(M), M, N)) , 10: plus^#(N, 0()) -> c_20(U71^#(isNat(N), N)) , 11: s^#(X) -> c_50(X) , 12: x^#(X1, X2) -> c_21(X1, X2) , 13: x^#(N, s(M)) -> c_22(U101^#(isNat(M), M, N)) , 14: x^#(N, 0()) -> c_23(U91^#(isNat(N), N)) , 15: U104^#(tt(), M, N) -> c_17(plus^#(x(activate(N), activate(M)), activate(N))) , 16: isNat^#(n__plus(V1, V2)) -> c_14(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , 17: isNat^#(n__s(V1)) -> c_15(U21^#(isNatKind(activate(V1)), activate(V1))) , 18: isNat^#(n__x(V1, V2)) -> c_16(U31^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , 19: U11^#(tt(), V1, V2) -> c_24(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , 20: U31^#(tt(), V1, V2) -> c_33(U32^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , 21: U81^#(tt(), M, N) -> c_46(U82^#(isNatKind(activate(M)), activate(M), activate(N))) , 22: U71^#(tt(), N) -> c_44(U72^#(isNatKind(activate(N)), activate(N))) , 23: U12^#(tt(), V1, V2) -> c_25(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , 24: U13^#(tt(), V1, V2) -> c_26(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , 25: U32^#(tt(), V1, V2) -> c_34(U33^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , 26: U33^#(tt(), V1, V2) -> c_35(U34^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , 27: U72^#(tt(), N) -> c_45(activate^#(N)) , 28: U82^#(tt(), M, N) -> c_47(U83^#(isNat(activate(N)), activate(M), activate(N))) , 29: U83^#(tt(), M, N) -> c_48(U84^#(isNatKind(activate(N)), activate(M), activate(N))) , 30: U84^#(tt(), M, N) -> c_49(s^#(plus(activate(N), activate(M)))) , 31: isNatKind^#(n__0()) -> c_3() , 32: isNatKind^#(n__plus(V1, V2)) -> c_4(U41^#(isNatKind(activate(V1)), activate(V2))) , 33: isNatKind^#(n__s(V1)) -> c_5(U51^#(isNatKind(activate(V1)))) , 34: isNatKind^#(n__x(V1, V2)) -> c_6(U61^#(isNatKind(activate(V1)), activate(V2))) , 35: U41^#(tt(), V2) -> c_39(U42^#(isNatKind(activate(V2)))) , 36: U51^#(tt()) -> c_41() , 37: U61^#(tt(), V2) -> c_42(U62^#(isNatKind(activate(V2)))) , 38: activate^#(n__0()) -> c_8(0^#()) , 39: 0^#() -> c_53() , 40: isNat^#(n__0()) -> c_13() , 41: U21^#(tt(), V1) -> c_30(U22^#(isNatKind(activate(V1)), activate(V1))) , 42: U91^#(tt(), N) -> c_51(U92^#(isNatKind(activate(N)))) , 43: U14^#(tt(), V1, V2) -> c_27(U15^#(isNat(activate(V1)), activate(V2))) , 44: U15^#(tt(), V2) -> c_28(U16^#(isNat(activate(V2)))) , 45: U16^#(tt()) -> c_29() , 46: U22^#(tt(), V1) -> c_31(U23^#(isNat(activate(V1)))) , 47: U23^#(tt()) -> c_32() , 48: U34^#(tt(), V1, V2) -> c_36(U35^#(isNat(activate(V1)), activate(V2))) , 49: U35^#(tt(), V2) -> c_37(U36^#(isNat(activate(V2)))) , 50: U36^#(tt()) -> c_38() , 51: U42^#(tt()) -> c_40() , 52: U62^#(tt()) -> c_43() , 53: U92^#(tt()) -> c_52(0^#()) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { U101^#(tt(), M, N) -> c_1(U102^#(isNatKind(activate(M)), activate(M), activate(N))) , U102^#(tt(), M, N) -> c_2(U103^#(isNat(activate(N)), activate(M), activate(N))) , U103^#(tt(), M, N) -> c_12(U104^#(isNatKind(activate(N)), activate(M), activate(N))) , activate^#(X) -> c_7(X) , activate^#(n__plus(X1, X2)) -> c_9(plus^#(X1, X2)) , activate^#(n__s(X)) -> c_10(s^#(X)) , activate^#(n__x(X1, X2)) -> c_11(x^#(X1, X2)) , plus^#(X1, X2) -> c_18(X1, X2) , plus^#(N, s(M)) -> c_19(U81^#(isNat(M), M, N)) , plus^#(N, 0()) -> c_20(U71^#(isNat(N), N)) , s^#(X) -> c_50(X) , x^#(X1, X2) -> c_21(X1, X2) , x^#(N, s(M)) -> c_22(U101^#(isNat(M), M, N)) , U104^#(tt(), M, N) -> c_17(plus^#(x(activate(N), activate(M)), activate(N))) , isNat^#(n__plus(V1, V2)) -> c_14(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , isNat^#(n__x(V1, V2)) -> c_16(U31^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , U11^#(tt(), V1, V2) -> c_24(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , U31^#(tt(), V1, V2) -> c_33(U32^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , U81^#(tt(), M, N) -> c_46(U82^#(isNatKind(activate(M)), activate(M), activate(N))) , U71^#(tt(), N) -> c_44(U72^#(isNatKind(activate(N)), activate(N))) , U12^#(tt(), V1, V2) -> c_25(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U32^#(tt(), V1, V2) -> c_34(U33^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U72^#(tt(), N) -> c_45(activate^#(N)) , U82^#(tt(), M, N) -> c_47(U83^#(isNat(activate(N)), activate(M), activate(N))) , U83^#(tt(), M, N) -> c_48(U84^#(isNatKind(activate(N)), activate(M), activate(N))) , U84^#(tt(), M, N) -> c_49(s^#(plus(activate(N), activate(M)))) } Strict Trs: { U101(tt(), M, N) -> U102(isNatKind(activate(M)), activate(M), activate(N)) , U102(tt(), M, N) -> U103(isNat(activate(N)), activate(M), activate(N)) , isNatKind(n__0()) -> tt() , isNatKind(n__plus(V1, V2)) -> U41(isNatKind(activate(V1)), activate(V2)) , isNatKind(n__s(V1)) -> U51(isNatKind(activate(V1))) , isNatKind(n__x(V1, V2)) -> U61(isNatKind(activate(V1)), activate(V2)) , activate(X) -> X , activate(n__0()) -> 0() , activate(n__plus(X1, X2)) -> plus(X1, X2) , activate(n__s(X)) -> s(X) , activate(n__x(X1, X2)) -> x(X1, X2) , U103(tt(), M, N) -> U104(isNatKind(activate(N)), activate(M), activate(N)) , isNat(n__0()) -> tt() , isNat(n__plus(V1, V2)) -> U11(isNatKind(activate(V1)), activate(V1), activate(V2)) , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) , isNat(n__x(V1, V2)) -> U31(isNatKind(activate(V1)), activate(V1), activate(V2)) , U104(tt(), M, N) -> plus(x(activate(N), activate(M)), activate(N)) , plus(X1, X2) -> n__plus(X1, X2) , plus(N, s(M)) -> U81(isNat(M), M, N) , plus(N, 0()) -> U71(isNat(N), N) , x(X1, X2) -> n__x(X1, X2) , x(N, s(M)) -> U101(isNat(M), M, N) , x(N, 0()) -> U91(isNat(N), N) , U11(tt(), V1, V2) -> U12(isNatKind(activate(V1)), activate(V1), activate(V2)) , U12(tt(), V1, V2) -> U13(isNatKind(activate(V2)), activate(V1), activate(V2)) , U13(tt(), V1, V2) -> U14(isNatKind(activate(V2)), activate(V1), activate(V2)) , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) , U15(tt(), V2) -> U16(isNat(activate(V2))) , U16(tt()) -> tt() , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) , U22(tt(), V1) -> U23(isNat(activate(V1))) , U23(tt()) -> tt() , U31(tt(), V1, V2) -> U32(isNatKind(activate(V1)), activate(V1), activate(V2)) , U32(tt(), V1, V2) -> U33(isNatKind(activate(V2)), activate(V1), activate(V2)) , U33(tt(), V1, V2) -> U34(isNatKind(activate(V2)), activate(V1), activate(V2)) , U34(tt(), V1, V2) -> U35(isNat(activate(V1)), activate(V2)) , U35(tt(), V2) -> U36(isNat(activate(V2))) , U36(tt()) -> tt() , U41(tt(), V2) -> U42(isNatKind(activate(V2))) , U42(tt()) -> tt() , U51(tt()) -> tt() , U61(tt(), V2) -> U62(isNatKind(activate(V2))) , U62(tt()) -> tt() , U71(tt(), N) -> U72(isNatKind(activate(N)), activate(N)) , U72(tt(), N) -> activate(N) , U81(tt(), M, N) -> U82(isNatKind(activate(M)), activate(M), activate(N)) , U82(tt(), M, N) -> U83(isNat(activate(N)), activate(M), activate(N)) , U83(tt(), M, N) -> U84(isNatKind(activate(N)), activate(M), activate(N)) , U84(tt(), M, N) -> s(plus(activate(N), activate(M))) , s(X) -> n__s(X) , U91(tt(), N) -> U92(isNatKind(activate(N))) , U92(tt()) -> 0() , 0() -> n__0() } Weak DPs: { isNatKind^#(n__0()) -> c_3() , isNatKind^#(n__plus(V1, V2)) -> c_4(U41^#(isNatKind(activate(V1)), activate(V2))) , isNatKind^#(n__s(V1)) -> c_5(U51^#(isNatKind(activate(V1)))) , isNatKind^#(n__x(V1, V2)) -> c_6(U61^#(isNatKind(activate(V1)), activate(V2))) , U41^#(tt(), V2) -> c_39(U42^#(isNatKind(activate(V2)))) , U51^#(tt()) -> c_41() , U61^#(tt(), V2) -> c_42(U62^#(isNatKind(activate(V2)))) , activate^#(n__0()) -> c_8(0^#()) , 0^#() -> c_53() , x^#(N, 0()) -> c_23(U91^#(isNat(N), N)) , isNat^#(n__0()) -> c_13() , isNat^#(n__s(V1)) -> c_15(U21^#(isNatKind(activate(V1)), activate(V1))) , U21^#(tt(), V1) -> c_30(U22^#(isNatKind(activate(V1)), activate(V1))) , U91^#(tt(), N) -> c_51(U92^#(isNatKind(activate(N)))) , U13^#(tt(), V1, V2) -> c_26(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U14^#(tt(), V1, V2) -> c_27(U15^#(isNat(activate(V1)), activate(V2))) , U15^#(tt(), V2) -> c_28(U16^#(isNat(activate(V2)))) , U16^#(tt()) -> c_29() , U22^#(tt(), V1) -> c_31(U23^#(isNat(activate(V1)))) , U23^#(tt()) -> c_32() , U33^#(tt(), V1, V2) -> c_35(U34^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U34^#(tt(), V1, V2) -> c_36(U35^#(isNat(activate(V1)), activate(V2))) , U35^#(tt(), V2) -> c_37(U36^#(isNat(activate(V2)))) , U36^#(tt()) -> c_38() , U42^#(tt()) -> c_40() , U62^#(tt()) -> c_43() , U92^#(tt()) -> c_52(0^#()) } Obligation: runtime complexity Answer: MAYBE We estimate the number of application of {21,22} by applications of Pre({21,22}) = {4,8,11,12,17,18}. Here rules are labeled as follows: DPs: { 1: U101^#(tt(), M, N) -> c_1(U102^#(isNatKind(activate(M)), activate(M), activate(N))) , 2: U102^#(tt(), M, N) -> c_2(U103^#(isNat(activate(N)), activate(M), activate(N))) , 3: U103^#(tt(), M, N) -> c_12(U104^#(isNatKind(activate(N)), activate(M), activate(N))) , 4: activate^#(X) -> c_7(X) , 5: activate^#(n__plus(X1, X2)) -> c_9(plus^#(X1, X2)) , 6: activate^#(n__s(X)) -> c_10(s^#(X)) , 7: activate^#(n__x(X1, X2)) -> c_11(x^#(X1, X2)) , 8: plus^#(X1, X2) -> c_18(X1, X2) , 9: plus^#(N, s(M)) -> c_19(U81^#(isNat(M), M, N)) , 10: plus^#(N, 0()) -> c_20(U71^#(isNat(N), N)) , 11: s^#(X) -> c_50(X) , 12: x^#(X1, X2) -> c_21(X1, X2) , 13: x^#(N, s(M)) -> c_22(U101^#(isNat(M), M, N)) , 14: U104^#(tt(), M, N) -> c_17(plus^#(x(activate(N), activate(M)), activate(N))) , 15: isNat^#(n__plus(V1, V2)) -> c_14(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , 16: isNat^#(n__x(V1, V2)) -> c_16(U31^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , 17: U11^#(tt(), V1, V2) -> c_24(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , 18: U31^#(tt(), V1, V2) -> c_33(U32^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , 19: U81^#(tt(), M, N) -> c_46(U82^#(isNatKind(activate(M)), activate(M), activate(N))) , 20: U71^#(tt(), N) -> c_44(U72^#(isNatKind(activate(N)), activate(N))) , 21: U12^#(tt(), V1, V2) -> c_25(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , 22: U32^#(tt(), V1, V2) -> c_34(U33^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , 23: U72^#(tt(), N) -> c_45(activate^#(N)) , 24: U82^#(tt(), M, N) -> c_47(U83^#(isNat(activate(N)), activate(M), activate(N))) , 25: U83^#(tt(), M, N) -> c_48(U84^#(isNatKind(activate(N)), activate(M), activate(N))) , 26: U84^#(tt(), M, N) -> c_49(s^#(plus(activate(N), activate(M)))) , 27: isNatKind^#(n__0()) -> c_3() , 28: isNatKind^#(n__plus(V1, V2)) -> c_4(U41^#(isNatKind(activate(V1)), activate(V2))) , 29: isNatKind^#(n__s(V1)) -> c_5(U51^#(isNatKind(activate(V1)))) , 30: isNatKind^#(n__x(V1, V2)) -> c_6(U61^#(isNatKind(activate(V1)), activate(V2))) , 31: U41^#(tt(), V2) -> c_39(U42^#(isNatKind(activate(V2)))) , 32: U51^#(tt()) -> c_41() , 33: U61^#(tt(), V2) -> c_42(U62^#(isNatKind(activate(V2)))) , 34: activate^#(n__0()) -> c_8(0^#()) , 35: 0^#() -> c_53() , 36: x^#(N, 0()) -> c_23(U91^#(isNat(N), N)) , 37: isNat^#(n__0()) -> c_13() , 38: isNat^#(n__s(V1)) -> c_15(U21^#(isNatKind(activate(V1)), activate(V1))) , 39: U21^#(tt(), V1) -> c_30(U22^#(isNatKind(activate(V1)), activate(V1))) , 40: U91^#(tt(), N) -> c_51(U92^#(isNatKind(activate(N)))) , 41: U13^#(tt(), V1, V2) -> c_26(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , 42: U14^#(tt(), V1, V2) -> c_27(U15^#(isNat(activate(V1)), activate(V2))) , 43: U15^#(tt(), V2) -> c_28(U16^#(isNat(activate(V2)))) , 44: U16^#(tt()) -> c_29() , 45: U22^#(tt(), V1) -> c_31(U23^#(isNat(activate(V1)))) , 46: U23^#(tt()) -> c_32() , 47: U33^#(tt(), V1, V2) -> c_35(U34^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , 48: U34^#(tt(), V1, V2) -> c_36(U35^#(isNat(activate(V1)), activate(V2))) , 49: U35^#(tt(), V2) -> c_37(U36^#(isNat(activate(V2)))) , 50: U36^#(tt()) -> c_38() , 51: U42^#(tt()) -> c_40() , 52: U62^#(tt()) -> c_43() , 53: U92^#(tt()) -> c_52(0^#()) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { U101^#(tt(), M, N) -> c_1(U102^#(isNatKind(activate(M)), activate(M), activate(N))) , U102^#(tt(), M, N) -> c_2(U103^#(isNat(activate(N)), activate(M), activate(N))) , U103^#(tt(), M, N) -> c_12(U104^#(isNatKind(activate(N)), activate(M), activate(N))) , activate^#(X) -> c_7(X) , activate^#(n__plus(X1, X2)) -> c_9(plus^#(X1, X2)) , activate^#(n__s(X)) -> c_10(s^#(X)) , activate^#(n__x(X1, X2)) -> c_11(x^#(X1, X2)) , plus^#(X1, X2) -> c_18(X1, X2) , plus^#(N, s(M)) -> c_19(U81^#(isNat(M), M, N)) , plus^#(N, 0()) -> c_20(U71^#(isNat(N), N)) , s^#(X) -> c_50(X) , x^#(X1, X2) -> c_21(X1, X2) , x^#(N, s(M)) -> c_22(U101^#(isNat(M), M, N)) , U104^#(tt(), M, N) -> c_17(plus^#(x(activate(N), activate(M)), activate(N))) , isNat^#(n__plus(V1, V2)) -> c_14(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , isNat^#(n__x(V1, V2)) -> c_16(U31^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , U11^#(tt(), V1, V2) -> c_24(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , U31^#(tt(), V1, V2) -> c_33(U32^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , U81^#(tt(), M, N) -> c_46(U82^#(isNatKind(activate(M)), activate(M), activate(N))) , U71^#(tt(), N) -> c_44(U72^#(isNatKind(activate(N)), activate(N))) , U72^#(tt(), N) -> c_45(activate^#(N)) , U82^#(tt(), M, N) -> c_47(U83^#(isNat(activate(N)), activate(M), activate(N))) , U83^#(tt(), M, N) -> c_48(U84^#(isNatKind(activate(N)), activate(M), activate(N))) , U84^#(tt(), M, N) -> c_49(s^#(plus(activate(N), activate(M)))) } Strict Trs: { U101(tt(), M, N) -> U102(isNatKind(activate(M)), activate(M), activate(N)) , U102(tt(), M, N) -> U103(isNat(activate(N)), activate(M), activate(N)) , isNatKind(n__0()) -> tt() , isNatKind(n__plus(V1, V2)) -> U41(isNatKind(activate(V1)), activate(V2)) , isNatKind(n__s(V1)) -> U51(isNatKind(activate(V1))) , isNatKind(n__x(V1, V2)) -> U61(isNatKind(activate(V1)), activate(V2)) , activate(X) -> X , activate(n__0()) -> 0() , activate(n__plus(X1, X2)) -> plus(X1, X2) , activate(n__s(X)) -> s(X) , activate(n__x(X1, X2)) -> x(X1, X2) , U103(tt(), M, N) -> U104(isNatKind(activate(N)), activate(M), activate(N)) , isNat(n__0()) -> tt() , isNat(n__plus(V1, V2)) -> U11(isNatKind(activate(V1)), activate(V1), activate(V2)) , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) , isNat(n__x(V1, V2)) -> U31(isNatKind(activate(V1)), activate(V1), activate(V2)) , U104(tt(), M, N) -> plus(x(activate(N), activate(M)), activate(N)) , plus(X1, X2) -> n__plus(X1, X2) , plus(N, s(M)) -> U81(isNat(M), M, N) , plus(N, 0()) -> U71(isNat(N), N) , x(X1, X2) -> n__x(X1, X2) , x(N, s(M)) -> U101(isNat(M), M, N) , x(N, 0()) -> U91(isNat(N), N) , U11(tt(), V1, V2) -> U12(isNatKind(activate(V1)), activate(V1), activate(V2)) , U12(tt(), V1, V2) -> U13(isNatKind(activate(V2)), activate(V1), activate(V2)) , U13(tt(), V1, V2) -> U14(isNatKind(activate(V2)), activate(V1), activate(V2)) , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) , U15(tt(), V2) -> U16(isNat(activate(V2))) , U16(tt()) -> tt() , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) , U22(tt(), V1) -> U23(isNat(activate(V1))) , U23(tt()) -> tt() , U31(tt(), V1, V2) -> U32(isNatKind(activate(V1)), activate(V1), activate(V2)) , U32(tt(), V1, V2) -> U33(isNatKind(activate(V2)), activate(V1), activate(V2)) , U33(tt(), V1, V2) -> U34(isNatKind(activate(V2)), activate(V1), activate(V2)) , U34(tt(), V1, V2) -> U35(isNat(activate(V1)), activate(V2)) , U35(tt(), V2) -> U36(isNat(activate(V2))) , U36(tt()) -> tt() , U41(tt(), V2) -> U42(isNatKind(activate(V2))) , U42(tt()) -> tt() , U51(tt()) -> tt() , U61(tt(), V2) -> U62(isNatKind(activate(V2))) , U62(tt()) -> tt() , U71(tt(), N) -> U72(isNatKind(activate(N)), activate(N)) , U72(tt(), N) -> activate(N) , U81(tt(), M, N) -> U82(isNatKind(activate(M)), activate(M), activate(N)) , U82(tt(), M, N) -> U83(isNat(activate(N)), activate(M), activate(N)) , U83(tt(), M, N) -> U84(isNatKind(activate(N)), activate(M), activate(N)) , U84(tt(), M, N) -> s(plus(activate(N), activate(M))) , s(X) -> n__s(X) , U91(tt(), N) -> U92(isNatKind(activate(N))) , U92(tt()) -> 0() , 0() -> n__0() } Weak DPs: { isNatKind^#(n__0()) -> c_3() , isNatKind^#(n__plus(V1, V2)) -> c_4(U41^#(isNatKind(activate(V1)), activate(V2))) , isNatKind^#(n__s(V1)) -> c_5(U51^#(isNatKind(activate(V1)))) , isNatKind^#(n__x(V1, V2)) -> c_6(U61^#(isNatKind(activate(V1)), activate(V2))) , U41^#(tt(), V2) -> c_39(U42^#(isNatKind(activate(V2)))) , U51^#(tt()) -> c_41() , U61^#(tt(), V2) -> c_42(U62^#(isNatKind(activate(V2)))) , activate^#(n__0()) -> c_8(0^#()) , 0^#() -> c_53() , x^#(N, 0()) -> c_23(U91^#(isNat(N), N)) , isNat^#(n__0()) -> c_13() , isNat^#(n__s(V1)) -> c_15(U21^#(isNatKind(activate(V1)), activate(V1))) , U21^#(tt(), V1) -> c_30(U22^#(isNatKind(activate(V1)), activate(V1))) , U91^#(tt(), N) -> c_51(U92^#(isNatKind(activate(N)))) , U12^#(tt(), V1, V2) -> c_25(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U13^#(tt(), V1, V2) -> c_26(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U14^#(tt(), V1, V2) -> c_27(U15^#(isNat(activate(V1)), activate(V2))) , U15^#(tt(), V2) -> c_28(U16^#(isNat(activate(V2)))) , U16^#(tt()) -> c_29() , U22^#(tt(), V1) -> c_31(U23^#(isNat(activate(V1)))) , U23^#(tt()) -> c_32() , U32^#(tt(), V1, V2) -> c_34(U33^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U33^#(tt(), V1, V2) -> c_35(U34^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U34^#(tt(), V1, V2) -> c_36(U35^#(isNat(activate(V1)), activate(V2))) , U35^#(tt(), V2) -> c_37(U36^#(isNat(activate(V2)))) , U36^#(tt()) -> c_38() , U42^#(tt()) -> c_40() , U62^#(tt()) -> c_43() , U92^#(tt()) -> c_52(0^#()) } Obligation: runtime complexity Answer: MAYBE We estimate the number of application of {17,18} by applications of Pre({17,18}) = {4,8,11,12,15,16}. Here rules are labeled as follows: DPs: { 1: U101^#(tt(), M, N) -> c_1(U102^#(isNatKind(activate(M)), activate(M), activate(N))) , 2: U102^#(tt(), M, N) -> c_2(U103^#(isNat(activate(N)), activate(M), activate(N))) , 3: U103^#(tt(), M, N) -> c_12(U104^#(isNatKind(activate(N)), activate(M), activate(N))) , 4: activate^#(X) -> c_7(X) , 5: activate^#(n__plus(X1, X2)) -> c_9(plus^#(X1, X2)) , 6: activate^#(n__s(X)) -> c_10(s^#(X)) , 7: activate^#(n__x(X1, X2)) -> c_11(x^#(X1, X2)) , 8: plus^#(X1, X2) -> c_18(X1, X2) , 9: plus^#(N, s(M)) -> c_19(U81^#(isNat(M), M, N)) , 10: plus^#(N, 0()) -> c_20(U71^#(isNat(N), N)) , 11: s^#(X) -> c_50(X) , 12: x^#(X1, X2) -> c_21(X1, X2) , 13: x^#(N, s(M)) -> c_22(U101^#(isNat(M), M, N)) , 14: U104^#(tt(), M, N) -> c_17(plus^#(x(activate(N), activate(M)), activate(N))) , 15: isNat^#(n__plus(V1, V2)) -> c_14(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , 16: isNat^#(n__x(V1, V2)) -> c_16(U31^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , 17: U11^#(tt(), V1, V2) -> c_24(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , 18: U31^#(tt(), V1, V2) -> c_33(U32^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , 19: U81^#(tt(), M, N) -> c_46(U82^#(isNatKind(activate(M)), activate(M), activate(N))) , 20: U71^#(tt(), N) -> c_44(U72^#(isNatKind(activate(N)), activate(N))) , 21: U72^#(tt(), N) -> c_45(activate^#(N)) , 22: U82^#(tt(), M, N) -> c_47(U83^#(isNat(activate(N)), activate(M), activate(N))) , 23: U83^#(tt(), M, N) -> c_48(U84^#(isNatKind(activate(N)), activate(M), activate(N))) , 24: U84^#(tt(), M, N) -> c_49(s^#(plus(activate(N), activate(M)))) , 25: isNatKind^#(n__0()) -> c_3() , 26: isNatKind^#(n__plus(V1, V2)) -> c_4(U41^#(isNatKind(activate(V1)), activate(V2))) , 27: isNatKind^#(n__s(V1)) -> c_5(U51^#(isNatKind(activate(V1)))) , 28: isNatKind^#(n__x(V1, V2)) -> c_6(U61^#(isNatKind(activate(V1)), activate(V2))) , 29: U41^#(tt(), V2) -> c_39(U42^#(isNatKind(activate(V2)))) , 30: U51^#(tt()) -> c_41() , 31: U61^#(tt(), V2) -> c_42(U62^#(isNatKind(activate(V2)))) , 32: activate^#(n__0()) -> c_8(0^#()) , 33: 0^#() -> c_53() , 34: x^#(N, 0()) -> c_23(U91^#(isNat(N), N)) , 35: isNat^#(n__0()) -> c_13() , 36: isNat^#(n__s(V1)) -> c_15(U21^#(isNatKind(activate(V1)), activate(V1))) , 37: U21^#(tt(), V1) -> c_30(U22^#(isNatKind(activate(V1)), activate(V1))) , 38: U91^#(tt(), N) -> c_51(U92^#(isNatKind(activate(N)))) , 39: U12^#(tt(), V1, V2) -> c_25(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , 40: U13^#(tt(), V1, V2) -> c_26(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , 41: U14^#(tt(), V1, V2) -> c_27(U15^#(isNat(activate(V1)), activate(V2))) , 42: U15^#(tt(), V2) -> c_28(U16^#(isNat(activate(V2)))) , 43: U16^#(tt()) -> c_29() , 44: U22^#(tt(), V1) -> c_31(U23^#(isNat(activate(V1)))) , 45: U23^#(tt()) -> c_32() , 46: U32^#(tt(), V1, V2) -> c_34(U33^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , 47: U33^#(tt(), V1, V2) -> c_35(U34^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , 48: U34^#(tt(), V1, V2) -> c_36(U35^#(isNat(activate(V1)), activate(V2))) , 49: U35^#(tt(), V2) -> c_37(U36^#(isNat(activate(V2)))) , 50: U36^#(tt()) -> c_38() , 51: U42^#(tt()) -> c_40() , 52: U62^#(tt()) -> c_43() , 53: U92^#(tt()) -> c_52(0^#()) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { U101^#(tt(), M, N) -> c_1(U102^#(isNatKind(activate(M)), activate(M), activate(N))) , U102^#(tt(), M, N) -> c_2(U103^#(isNat(activate(N)), activate(M), activate(N))) , U103^#(tt(), M, N) -> c_12(U104^#(isNatKind(activate(N)), activate(M), activate(N))) , activate^#(X) -> c_7(X) , activate^#(n__plus(X1, X2)) -> c_9(plus^#(X1, X2)) , activate^#(n__s(X)) -> c_10(s^#(X)) , activate^#(n__x(X1, X2)) -> c_11(x^#(X1, X2)) , plus^#(X1, X2) -> c_18(X1, X2) , plus^#(N, s(M)) -> c_19(U81^#(isNat(M), M, N)) , plus^#(N, 0()) -> c_20(U71^#(isNat(N), N)) , s^#(X) -> c_50(X) , x^#(X1, X2) -> c_21(X1, X2) , x^#(N, s(M)) -> c_22(U101^#(isNat(M), M, N)) , U104^#(tt(), M, N) -> c_17(plus^#(x(activate(N), activate(M)), activate(N))) , isNat^#(n__plus(V1, V2)) -> c_14(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , isNat^#(n__x(V1, V2)) -> c_16(U31^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , U81^#(tt(), M, N) -> c_46(U82^#(isNatKind(activate(M)), activate(M), activate(N))) , U71^#(tt(), N) -> c_44(U72^#(isNatKind(activate(N)), activate(N))) , U72^#(tt(), N) -> c_45(activate^#(N)) , U82^#(tt(), M, N) -> c_47(U83^#(isNat(activate(N)), activate(M), activate(N))) , U83^#(tt(), M, N) -> c_48(U84^#(isNatKind(activate(N)), activate(M), activate(N))) , U84^#(tt(), M, N) -> c_49(s^#(plus(activate(N), activate(M)))) } Strict Trs: { U101(tt(), M, N) -> U102(isNatKind(activate(M)), activate(M), activate(N)) , U102(tt(), M, N) -> U103(isNat(activate(N)), activate(M), activate(N)) , isNatKind(n__0()) -> tt() , isNatKind(n__plus(V1, V2)) -> U41(isNatKind(activate(V1)), activate(V2)) , isNatKind(n__s(V1)) -> U51(isNatKind(activate(V1))) , isNatKind(n__x(V1, V2)) -> U61(isNatKind(activate(V1)), activate(V2)) , activate(X) -> X , activate(n__0()) -> 0() , activate(n__plus(X1, X2)) -> plus(X1, X2) , activate(n__s(X)) -> s(X) , activate(n__x(X1, X2)) -> x(X1, X2) , U103(tt(), M, N) -> U104(isNatKind(activate(N)), activate(M), activate(N)) , isNat(n__0()) -> tt() , isNat(n__plus(V1, V2)) -> U11(isNatKind(activate(V1)), activate(V1), activate(V2)) , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) , isNat(n__x(V1, V2)) -> U31(isNatKind(activate(V1)), activate(V1), activate(V2)) , U104(tt(), M, N) -> plus(x(activate(N), activate(M)), activate(N)) , plus(X1, X2) -> n__plus(X1, X2) , plus(N, s(M)) -> U81(isNat(M), M, N) , plus(N, 0()) -> U71(isNat(N), N) , x(X1, X2) -> n__x(X1, X2) , x(N, s(M)) -> U101(isNat(M), M, N) , x(N, 0()) -> U91(isNat(N), N) , U11(tt(), V1, V2) -> U12(isNatKind(activate(V1)), activate(V1), activate(V2)) , U12(tt(), V1, V2) -> U13(isNatKind(activate(V2)), activate(V1), activate(V2)) , U13(tt(), V1, V2) -> U14(isNatKind(activate(V2)), activate(V1), activate(V2)) , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) , U15(tt(), V2) -> U16(isNat(activate(V2))) , U16(tt()) -> tt() , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) , U22(tt(), V1) -> U23(isNat(activate(V1))) , U23(tt()) -> tt() , U31(tt(), V1, V2) -> U32(isNatKind(activate(V1)), activate(V1), activate(V2)) , U32(tt(), V1, V2) -> U33(isNatKind(activate(V2)), activate(V1), activate(V2)) , U33(tt(), V1, V2) -> U34(isNatKind(activate(V2)), activate(V1), activate(V2)) , U34(tt(), V1, V2) -> U35(isNat(activate(V1)), activate(V2)) , U35(tt(), V2) -> U36(isNat(activate(V2))) , U36(tt()) -> tt() , U41(tt(), V2) -> U42(isNatKind(activate(V2))) , U42(tt()) -> tt() , U51(tt()) -> tt() , U61(tt(), V2) -> U62(isNatKind(activate(V2))) , U62(tt()) -> tt() , U71(tt(), N) -> U72(isNatKind(activate(N)), activate(N)) , U72(tt(), N) -> activate(N) , U81(tt(), M, N) -> U82(isNatKind(activate(M)), activate(M), activate(N)) , U82(tt(), M, N) -> U83(isNat(activate(N)), activate(M), activate(N)) , U83(tt(), M, N) -> U84(isNatKind(activate(N)), activate(M), activate(N)) , U84(tt(), M, N) -> s(plus(activate(N), activate(M))) , s(X) -> n__s(X) , U91(tt(), N) -> U92(isNatKind(activate(N))) , U92(tt()) -> 0() , 0() -> n__0() } Weak DPs: { isNatKind^#(n__0()) -> c_3() , isNatKind^#(n__plus(V1, V2)) -> c_4(U41^#(isNatKind(activate(V1)), activate(V2))) , isNatKind^#(n__s(V1)) -> c_5(U51^#(isNatKind(activate(V1)))) , isNatKind^#(n__x(V1, V2)) -> c_6(U61^#(isNatKind(activate(V1)), activate(V2))) , U41^#(tt(), V2) -> c_39(U42^#(isNatKind(activate(V2)))) , U51^#(tt()) -> c_41() , U61^#(tt(), V2) -> c_42(U62^#(isNatKind(activate(V2)))) , activate^#(n__0()) -> c_8(0^#()) , 0^#() -> c_53() , x^#(N, 0()) -> c_23(U91^#(isNat(N), N)) , isNat^#(n__0()) -> c_13() , isNat^#(n__s(V1)) -> c_15(U21^#(isNatKind(activate(V1)), activate(V1))) , U11^#(tt(), V1, V2) -> c_24(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , U21^#(tt(), V1) -> c_30(U22^#(isNatKind(activate(V1)), activate(V1))) , U31^#(tt(), V1, V2) -> c_33(U32^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , U91^#(tt(), N) -> c_51(U92^#(isNatKind(activate(N)))) , U12^#(tt(), V1, V2) -> c_25(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U13^#(tt(), V1, V2) -> c_26(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U14^#(tt(), V1, V2) -> c_27(U15^#(isNat(activate(V1)), activate(V2))) , U15^#(tt(), V2) -> c_28(U16^#(isNat(activate(V2)))) , U16^#(tt()) -> c_29() , U22^#(tt(), V1) -> c_31(U23^#(isNat(activate(V1)))) , U23^#(tt()) -> c_32() , U32^#(tt(), V1, V2) -> c_34(U33^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U33^#(tt(), V1, V2) -> c_35(U34^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U34^#(tt(), V1, V2) -> c_36(U35^#(isNat(activate(V1)), activate(V2))) , U35^#(tt(), V2) -> c_37(U36^#(isNat(activate(V2)))) , U36^#(tt()) -> c_38() , U42^#(tt()) -> c_40() , U62^#(tt()) -> c_43() , U92^#(tt()) -> c_52(0^#()) } Obligation: runtime complexity Answer: MAYBE We estimate the number of application of {15,16} by applications of Pre({15,16}) = {4,8,11,12}. Here rules are labeled as follows: DPs: { 1: U101^#(tt(), M, N) -> c_1(U102^#(isNatKind(activate(M)), activate(M), activate(N))) , 2: U102^#(tt(), M, N) -> c_2(U103^#(isNat(activate(N)), activate(M), activate(N))) , 3: U103^#(tt(), M, N) -> c_12(U104^#(isNatKind(activate(N)), activate(M), activate(N))) , 4: activate^#(X) -> c_7(X) , 5: activate^#(n__plus(X1, X2)) -> c_9(plus^#(X1, X2)) , 6: activate^#(n__s(X)) -> c_10(s^#(X)) , 7: activate^#(n__x(X1, X2)) -> c_11(x^#(X1, X2)) , 8: plus^#(X1, X2) -> c_18(X1, X2) , 9: plus^#(N, s(M)) -> c_19(U81^#(isNat(M), M, N)) , 10: plus^#(N, 0()) -> c_20(U71^#(isNat(N), N)) , 11: s^#(X) -> c_50(X) , 12: x^#(X1, X2) -> c_21(X1, X2) , 13: x^#(N, s(M)) -> c_22(U101^#(isNat(M), M, N)) , 14: U104^#(tt(), M, N) -> c_17(plus^#(x(activate(N), activate(M)), activate(N))) , 15: isNat^#(n__plus(V1, V2)) -> c_14(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , 16: isNat^#(n__x(V1, V2)) -> c_16(U31^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , 17: U81^#(tt(), M, N) -> c_46(U82^#(isNatKind(activate(M)), activate(M), activate(N))) , 18: U71^#(tt(), N) -> c_44(U72^#(isNatKind(activate(N)), activate(N))) , 19: U72^#(tt(), N) -> c_45(activate^#(N)) , 20: U82^#(tt(), M, N) -> c_47(U83^#(isNat(activate(N)), activate(M), activate(N))) , 21: U83^#(tt(), M, N) -> c_48(U84^#(isNatKind(activate(N)), activate(M), activate(N))) , 22: U84^#(tt(), M, N) -> c_49(s^#(plus(activate(N), activate(M)))) , 23: isNatKind^#(n__0()) -> c_3() , 24: isNatKind^#(n__plus(V1, V2)) -> c_4(U41^#(isNatKind(activate(V1)), activate(V2))) , 25: isNatKind^#(n__s(V1)) -> c_5(U51^#(isNatKind(activate(V1)))) , 26: isNatKind^#(n__x(V1, V2)) -> c_6(U61^#(isNatKind(activate(V1)), activate(V2))) , 27: U41^#(tt(), V2) -> c_39(U42^#(isNatKind(activate(V2)))) , 28: U51^#(tt()) -> c_41() , 29: U61^#(tt(), V2) -> c_42(U62^#(isNatKind(activate(V2)))) , 30: activate^#(n__0()) -> c_8(0^#()) , 31: 0^#() -> c_53() , 32: x^#(N, 0()) -> c_23(U91^#(isNat(N), N)) , 33: isNat^#(n__0()) -> c_13() , 34: isNat^#(n__s(V1)) -> c_15(U21^#(isNatKind(activate(V1)), activate(V1))) , 35: U11^#(tt(), V1, V2) -> c_24(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , 36: U21^#(tt(), V1) -> c_30(U22^#(isNatKind(activate(V1)), activate(V1))) , 37: U31^#(tt(), V1, V2) -> c_33(U32^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , 38: U91^#(tt(), N) -> c_51(U92^#(isNatKind(activate(N)))) , 39: U12^#(tt(), V1, V2) -> c_25(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , 40: U13^#(tt(), V1, V2) -> c_26(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , 41: U14^#(tt(), V1, V2) -> c_27(U15^#(isNat(activate(V1)), activate(V2))) , 42: U15^#(tt(), V2) -> c_28(U16^#(isNat(activate(V2)))) , 43: U16^#(tt()) -> c_29() , 44: U22^#(tt(), V1) -> c_31(U23^#(isNat(activate(V1)))) , 45: U23^#(tt()) -> c_32() , 46: U32^#(tt(), V1, V2) -> c_34(U33^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , 47: U33^#(tt(), V1, V2) -> c_35(U34^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , 48: U34^#(tt(), V1, V2) -> c_36(U35^#(isNat(activate(V1)), activate(V2))) , 49: U35^#(tt(), V2) -> c_37(U36^#(isNat(activate(V2)))) , 50: U36^#(tt()) -> c_38() , 51: U42^#(tt()) -> c_40() , 52: U62^#(tt()) -> c_43() , 53: U92^#(tt()) -> c_52(0^#()) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { U101^#(tt(), M, N) -> c_1(U102^#(isNatKind(activate(M)), activate(M), activate(N))) , U102^#(tt(), M, N) -> c_2(U103^#(isNat(activate(N)), activate(M), activate(N))) , U103^#(tt(), M, N) -> c_12(U104^#(isNatKind(activate(N)), activate(M), activate(N))) , activate^#(X) -> c_7(X) , activate^#(n__plus(X1, X2)) -> c_9(plus^#(X1, X2)) , activate^#(n__s(X)) -> c_10(s^#(X)) , activate^#(n__x(X1, X2)) -> c_11(x^#(X1, X2)) , plus^#(X1, X2) -> c_18(X1, X2) , plus^#(N, s(M)) -> c_19(U81^#(isNat(M), M, N)) , plus^#(N, 0()) -> c_20(U71^#(isNat(N), N)) , s^#(X) -> c_50(X) , x^#(X1, X2) -> c_21(X1, X2) , x^#(N, s(M)) -> c_22(U101^#(isNat(M), M, N)) , U104^#(tt(), M, N) -> c_17(plus^#(x(activate(N), activate(M)), activate(N))) , U81^#(tt(), M, N) -> c_46(U82^#(isNatKind(activate(M)), activate(M), activate(N))) , U71^#(tt(), N) -> c_44(U72^#(isNatKind(activate(N)), activate(N))) , U72^#(tt(), N) -> c_45(activate^#(N)) , U82^#(tt(), M, N) -> c_47(U83^#(isNat(activate(N)), activate(M), activate(N))) , U83^#(tt(), M, N) -> c_48(U84^#(isNatKind(activate(N)), activate(M), activate(N))) , U84^#(tt(), M, N) -> c_49(s^#(plus(activate(N), activate(M)))) } Strict Trs: { U101(tt(), M, N) -> U102(isNatKind(activate(M)), activate(M), activate(N)) , U102(tt(), M, N) -> U103(isNat(activate(N)), activate(M), activate(N)) , isNatKind(n__0()) -> tt() , isNatKind(n__plus(V1, V2)) -> U41(isNatKind(activate(V1)), activate(V2)) , isNatKind(n__s(V1)) -> U51(isNatKind(activate(V1))) , isNatKind(n__x(V1, V2)) -> U61(isNatKind(activate(V1)), activate(V2)) , activate(X) -> X , activate(n__0()) -> 0() , activate(n__plus(X1, X2)) -> plus(X1, X2) , activate(n__s(X)) -> s(X) , activate(n__x(X1, X2)) -> x(X1, X2) , U103(tt(), M, N) -> U104(isNatKind(activate(N)), activate(M), activate(N)) , isNat(n__0()) -> tt() , isNat(n__plus(V1, V2)) -> U11(isNatKind(activate(V1)), activate(V1), activate(V2)) , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) , isNat(n__x(V1, V2)) -> U31(isNatKind(activate(V1)), activate(V1), activate(V2)) , U104(tt(), M, N) -> plus(x(activate(N), activate(M)), activate(N)) , plus(X1, X2) -> n__plus(X1, X2) , plus(N, s(M)) -> U81(isNat(M), M, N) , plus(N, 0()) -> U71(isNat(N), N) , x(X1, X2) -> n__x(X1, X2) , x(N, s(M)) -> U101(isNat(M), M, N) , x(N, 0()) -> U91(isNat(N), N) , U11(tt(), V1, V2) -> U12(isNatKind(activate(V1)), activate(V1), activate(V2)) , U12(tt(), V1, V2) -> U13(isNatKind(activate(V2)), activate(V1), activate(V2)) , U13(tt(), V1, V2) -> U14(isNatKind(activate(V2)), activate(V1), activate(V2)) , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) , U15(tt(), V2) -> U16(isNat(activate(V2))) , U16(tt()) -> tt() , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) , U22(tt(), V1) -> U23(isNat(activate(V1))) , U23(tt()) -> tt() , U31(tt(), V1, V2) -> U32(isNatKind(activate(V1)), activate(V1), activate(V2)) , U32(tt(), V1, V2) -> U33(isNatKind(activate(V2)), activate(V1), activate(V2)) , U33(tt(), V1, V2) -> U34(isNatKind(activate(V2)), activate(V1), activate(V2)) , U34(tt(), V1, V2) -> U35(isNat(activate(V1)), activate(V2)) , U35(tt(), V2) -> U36(isNat(activate(V2))) , U36(tt()) -> tt() , U41(tt(), V2) -> U42(isNatKind(activate(V2))) , U42(tt()) -> tt() , U51(tt()) -> tt() , U61(tt(), V2) -> U62(isNatKind(activate(V2))) , U62(tt()) -> tt() , U71(tt(), N) -> U72(isNatKind(activate(N)), activate(N)) , U72(tt(), N) -> activate(N) , U81(tt(), M, N) -> U82(isNatKind(activate(M)), activate(M), activate(N)) , U82(tt(), M, N) -> U83(isNat(activate(N)), activate(M), activate(N)) , U83(tt(), M, N) -> U84(isNatKind(activate(N)), activate(M), activate(N)) , U84(tt(), M, N) -> s(plus(activate(N), activate(M))) , s(X) -> n__s(X) , U91(tt(), N) -> U92(isNatKind(activate(N))) , U92(tt()) -> 0() , 0() -> n__0() } Weak DPs: { isNatKind^#(n__0()) -> c_3() , isNatKind^#(n__plus(V1, V2)) -> c_4(U41^#(isNatKind(activate(V1)), activate(V2))) , isNatKind^#(n__s(V1)) -> c_5(U51^#(isNatKind(activate(V1)))) , isNatKind^#(n__x(V1, V2)) -> c_6(U61^#(isNatKind(activate(V1)), activate(V2))) , U41^#(tt(), V2) -> c_39(U42^#(isNatKind(activate(V2)))) , U51^#(tt()) -> c_41() , U61^#(tt(), V2) -> c_42(U62^#(isNatKind(activate(V2)))) , activate^#(n__0()) -> c_8(0^#()) , 0^#() -> c_53() , x^#(N, 0()) -> c_23(U91^#(isNat(N), N)) , isNat^#(n__0()) -> c_13() , isNat^#(n__plus(V1, V2)) -> c_14(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , isNat^#(n__s(V1)) -> c_15(U21^#(isNatKind(activate(V1)), activate(V1))) , isNat^#(n__x(V1, V2)) -> c_16(U31^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , U11^#(tt(), V1, V2) -> c_24(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , U21^#(tt(), V1) -> c_30(U22^#(isNatKind(activate(V1)), activate(V1))) , U31^#(tt(), V1, V2) -> c_33(U32^#(isNatKind(activate(V1)), activate(V1), activate(V2))) , U91^#(tt(), N) -> c_51(U92^#(isNatKind(activate(N)))) , U12^#(tt(), V1, V2) -> c_25(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U13^#(tt(), V1, V2) -> c_26(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U14^#(tt(), V1, V2) -> c_27(U15^#(isNat(activate(V1)), activate(V2))) , U15^#(tt(), V2) -> c_28(U16^#(isNat(activate(V2)))) , U16^#(tt()) -> c_29() , U22^#(tt(), V1) -> c_31(U23^#(isNat(activate(V1)))) , U23^#(tt()) -> c_32() , U32^#(tt(), V1, V2) -> c_34(U33^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U33^#(tt(), V1, V2) -> c_35(U34^#(isNatKind(activate(V2)), activate(V1), activate(V2))) , U34^#(tt(), V1, V2) -> c_36(U35^#(isNat(activate(V1)), activate(V2))) , U35^#(tt(), V2) -> c_37(U36^#(isNat(activate(V2)))) , U36^#(tt()) -> c_38() , U42^#(tt()) -> c_40() , U62^#(tt()) -> c_43() , U92^#(tt()) -> c_52(0^#()) } Obligation: runtime complexity Answer: MAYBE Empty strict component of the problem is NOT empty. Arrrr..