YES(O(1),O(n^3)) 752.91/207.95 YES(O(1),O(n^3)) 752.91/207.95 752.91/207.95 We are left with following problem, upon which TcT provides the 752.91/207.95 certificate YES(O(1),O(n^3)). 752.91/207.95 752.91/207.95 Strict Trs: 752.91/207.95 { U11(tt(), V1, V2) -> 752.91/207.95 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 752.91/207.95 , U12(tt(), V1, V2) -> 752.91/207.95 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 752.91/207.95 , isNatKind(n__0()) -> tt() 752.91/207.95 , isNatKind(n__plus(V1, V2)) -> 752.91/207.95 U31(isNatKind(activate(V1)), activate(V2)) 752.91/207.95 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 752.91/207.95 , activate(X) -> X 752.91/207.95 , activate(n__0()) -> 0() 752.91/207.95 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 752.91/207.95 , activate(n__s(X)) -> s(activate(X)) 752.91/207.95 , U13(tt(), V1, V2) -> 752.91/207.95 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 752.91/207.95 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 752.91/207.95 , U15(tt(), V2) -> U16(isNat(activate(V2))) 752.91/207.95 , isNat(n__0()) -> tt() 752.91/207.95 , isNat(n__plus(V1, V2)) -> 752.91/207.95 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 752.91/207.95 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 752.91/207.95 , U16(tt()) -> tt() 752.91/207.95 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 752.91/207.95 , U22(tt(), V1) -> U23(isNat(activate(V1))) 752.91/207.95 , U23(tt()) -> tt() 752.91/207.95 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 752.91/207.95 , U32(tt()) -> tt() 752.91/207.95 , U41(tt()) -> tt() 752.91/207.95 , U51(tt(), N) -> U52(isNatKind(activate(N)), activate(N)) 752.91/207.95 , U52(tt(), N) -> activate(N) 752.91/207.95 , U61(tt(), M, N) -> 752.91/207.95 U62(isNatKind(activate(M)), activate(M), activate(N)) 752.91/207.95 , U62(tt(), M, N) -> 752.91/207.95 U63(isNat(activate(N)), activate(M), activate(N)) 752.91/207.95 , U63(tt(), M, N) -> 752.91/207.95 U64(isNatKind(activate(N)), activate(M), activate(N)) 752.91/207.95 , U64(tt(), M, N) -> s(plus(activate(N), activate(M))) 752.91/207.95 , s(X) -> n__s(X) 752.91/207.95 , plus(X1, X2) -> n__plus(X1, X2) 752.91/207.95 , plus(N, s(M)) -> U61(isNat(M), M, N) 752.91/207.95 , plus(N, 0()) -> U51(isNat(N), N) 752.91/207.95 , 0() -> n__0() } 752.91/207.95 Obligation: 752.91/207.95 innermost runtime complexity 752.91/207.95 Answer: 752.91/207.95 YES(O(1),O(n^3)) 752.91/207.95 752.91/207.95 Arguments of following rules are not normal-forms: 752.91/207.95 752.91/207.95 { plus(N, s(M)) -> U61(isNat(M), M, N) 752.91/207.95 , plus(N, 0()) -> U51(isNat(N), N) } 752.91/207.95 752.91/207.95 All above mentioned rules can be savely removed. 752.91/207.95 752.91/207.95 We are left with following problem, upon which TcT provides the 752.91/207.95 certificate YES(O(1),O(n^3)). 752.91/207.95 752.91/207.95 Strict Trs: 752.91/207.95 { U11(tt(), V1, V2) -> 752.91/207.95 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 752.91/207.95 , U12(tt(), V1, V2) -> 752.91/207.95 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 752.91/207.95 , isNatKind(n__0()) -> tt() 752.91/207.95 , isNatKind(n__plus(V1, V2)) -> 752.91/207.95 U31(isNatKind(activate(V1)), activate(V2)) 752.91/207.95 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 752.91/207.95 , activate(X) -> X 752.91/207.95 , activate(n__0()) -> 0() 752.91/207.95 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 752.91/207.95 , activate(n__s(X)) -> s(activate(X)) 752.91/207.95 , U13(tt(), V1, V2) -> 752.91/207.95 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 752.91/207.95 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 752.91/207.95 , U15(tt(), V2) -> U16(isNat(activate(V2))) 752.91/207.95 , isNat(n__0()) -> tt() 752.91/207.95 , isNat(n__plus(V1, V2)) -> 752.91/207.95 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 752.91/207.95 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 752.91/207.95 , U16(tt()) -> tt() 752.91/207.95 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 752.91/207.95 , U22(tt(), V1) -> U23(isNat(activate(V1))) 752.91/207.95 , U23(tt()) -> tt() 752.91/207.95 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 752.91/207.95 , U32(tt()) -> tt() 752.91/207.95 , U41(tt()) -> tt() 752.91/207.95 , U51(tt(), N) -> U52(isNatKind(activate(N)), activate(N)) 752.91/207.95 , U52(tt(), N) -> activate(N) 752.91/207.95 , U61(tt(), M, N) -> 752.91/207.95 U62(isNatKind(activate(M)), activate(M), activate(N)) 752.91/207.95 , U62(tt(), M, N) -> 752.91/207.95 U63(isNat(activate(N)), activate(M), activate(N)) 752.91/207.95 , U63(tt(), M, N) -> 752.91/207.95 U64(isNatKind(activate(N)), activate(M), activate(N)) 752.91/207.95 , U64(tt(), M, N) -> s(plus(activate(N), activate(M))) 752.91/207.95 , s(X) -> n__s(X) 752.91/207.95 , plus(X1, X2) -> n__plus(X1, X2) 752.91/207.95 , 0() -> n__0() } 752.91/207.95 Obligation: 752.91/207.95 innermost runtime complexity 752.91/207.95 Answer: 752.91/207.95 YES(O(1),O(n^3)) 752.91/207.95 752.91/207.95 We add the following dependency tuples: 752.91/207.95 752.91/207.95 Strict DPs: 752.91/207.95 { U11^#(tt(), V1, V2) -> 752.91/207.95 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.95 isNatKind^#(activate(V1)), 752.91/207.95 activate^#(V1), 752.91/207.95 activate^#(V1), 752.91/207.95 activate^#(V2)) 752.91/207.95 , U12^#(tt(), V1, V2) -> 752.91/207.95 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.95 isNatKind^#(activate(V2)), 752.91/207.95 activate^#(V2), 752.91/207.95 activate^#(V1), 752.91/207.95 activate^#(V2)) 752.91/207.95 , isNatKind^#(n__0()) -> c_3() 752.91/207.95 , isNatKind^#(n__plus(V1, V2)) -> 752.91/207.95 c_4(U31^#(isNatKind(activate(V1)), activate(V2)), 752.91/207.95 isNatKind^#(activate(V1)), 752.91/207.95 activate^#(V1), 752.91/207.95 activate^#(V2)) 752.91/207.95 , isNatKind^#(n__s(V1)) -> 752.91/207.95 c_5(U41^#(isNatKind(activate(V1))), 752.91/207.95 isNatKind^#(activate(V1)), 752.91/207.95 activate^#(V1)) 752.91/207.95 , activate^#(X) -> c_6() 752.91/207.95 , activate^#(n__0()) -> c_7(0^#()) 752.91/207.95 , activate^#(n__plus(X1, X2)) -> 752.91/207.95 c_8(plus^#(activate(X1), activate(X2)), 752.91/207.95 activate^#(X1), 752.91/207.95 activate^#(X2)) 752.91/207.95 , activate^#(n__s(X)) -> c_9(s^#(activate(X)), activate^#(X)) 752.91/207.95 , U13^#(tt(), V1, V2) -> 752.91/207.95 c_10(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.95 isNatKind^#(activate(V2)), 752.91/207.95 activate^#(V2), 752.91/207.95 activate^#(V1), 752.91/207.95 activate^#(V2)) 752.91/207.95 , U31^#(tt(), V2) -> 752.91/207.95 c_20(U32^#(isNatKind(activate(V2))), 752.91/207.95 isNatKind^#(activate(V2)), 752.91/207.95 activate^#(V2)) 752.91/207.95 , U41^#(tt()) -> c_22() 752.91/207.95 , 0^#() -> c_31() 752.91/207.95 , plus^#(X1, X2) -> c_30() 752.91/207.95 , s^#(X) -> c_29() 752.91/207.95 , U14^#(tt(), V1, V2) -> 752.91/207.95 c_11(U15^#(isNat(activate(V1)), activate(V2)), 752.91/207.95 isNat^#(activate(V1)), 752.91/207.95 activate^#(V1), 752.91/207.95 activate^#(V2)) 752.91/207.95 , U15^#(tt(), V2) -> 752.91/207.95 c_12(U16^#(isNat(activate(V2))), 752.91/207.95 isNat^#(activate(V2)), 752.91/207.95 activate^#(V2)) 752.91/207.95 , isNat^#(n__0()) -> c_13() 752.91/207.95 , isNat^#(n__plus(V1, V2)) -> 752.91/207.95 c_14(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.95 isNatKind^#(activate(V1)), 752.91/207.95 activate^#(V1), 752.91/207.95 activate^#(V1), 752.91/207.95 activate^#(V2)) 752.91/207.95 , isNat^#(n__s(V1)) -> 752.91/207.95 c_15(U21^#(isNatKind(activate(V1)), activate(V1)), 752.91/207.95 isNatKind^#(activate(V1)), 752.91/207.95 activate^#(V1), 752.91/207.95 activate^#(V1)) 752.91/207.95 , U16^#(tt()) -> c_16() 752.91/207.95 , U21^#(tt(), V1) -> 752.91/207.95 c_17(U22^#(isNatKind(activate(V1)), activate(V1)), 752.91/207.95 isNatKind^#(activate(V1)), 752.91/207.95 activate^#(V1), 752.91/207.95 activate^#(V1)) 752.91/207.95 , U22^#(tt(), V1) -> 752.91/207.95 c_18(U23^#(isNat(activate(V1))), 752.91/207.95 isNat^#(activate(V1)), 752.91/207.95 activate^#(V1)) 752.91/207.95 , U23^#(tt()) -> c_19() 752.91/207.95 , U32^#(tt()) -> c_21() 752.91/207.95 , U51^#(tt(), N) -> 752.91/207.95 c_23(U52^#(isNatKind(activate(N)), activate(N)), 752.91/207.95 isNatKind^#(activate(N)), 752.91/207.95 activate^#(N), 752.91/207.95 activate^#(N)) 752.91/207.95 , U52^#(tt(), N) -> c_24(activate^#(N)) 752.91/207.95 , U61^#(tt(), M, N) -> 752.91/207.95 c_25(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 752.91/207.95 isNatKind^#(activate(M)), 752.91/207.95 activate^#(M), 752.91/207.95 activate^#(M), 752.91/207.95 activate^#(N)) 752.91/207.95 , U62^#(tt(), M, N) -> 752.91/207.95 c_26(U63^#(isNat(activate(N)), activate(M), activate(N)), 752.91/207.95 isNat^#(activate(N)), 752.91/207.95 activate^#(N), 752.91/207.95 activate^#(M), 752.91/207.95 activate^#(N)) 752.91/207.95 , U63^#(tt(), M, N) -> 752.91/207.95 c_27(U64^#(isNatKind(activate(N)), activate(M), activate(N)), 752.91/207.95 isNatKind^#(activate(N)), 752.91/207.95 activate^#(N), 752.91/207.95 activate^#(M), 752.91/207.95 activate^#(N)) 752.91/207.95 , U64^#(tt(), M, N) -> 752.91/207.95 c_28(s^#(plus(activate(N), activate(M))), 752.91/207.95 plus^#(activate(N), activate(M)), 752.91/207.95 activate^#(N), 752.91/207.95 activate^#(M)) } 752.91/207.95 752.91/207.95 and mark the set of starting terms. 752.91/207.95 752.91/207.95 We are left with following problem, upon which TcT provides the 752.91/207.95 certificate YES(O(1),O(n^3)). 752.91/207.95 752.91/207.95 Strict DPs: 752.91/207.95 { U11^#(tt(), V1, V2) -> 752.91/207.95 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.95 isNatKind^#(activate(V1)), 752.91/207.95 activate^#(V1), 752.91/207.95 activate^#(V1), 752.91/207.95 activate^#(V2)) 752.91/207.95 , U12^#(tt(), V1, V2) -> 752.91/207.95 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.95 isNatKind^#(activate(V2)), 752.91/207.95 activate^#(V2), 752.91/207.95 activate^#(V1), 752.91/207.95 activate^#(V2)) 752.91/207.95 , isNatKind^#(n__0()) -> c_3() 752.91/207.95 , isNatKind^#(n__plus(V1, V2)) -> 752.91/207.95 c_4(U31^#(isNatKind(activate(V1)), activate(V2)), 752.91/207.95 isNatKind^#(activate(V1)), 752.91/207.95 activate^#(V1), 752.91/207.95 activate^#(V2)) 752.91/207.95 , isNatKind^#(n__s(V1)) -> 752.91/207.95 c_5(U41^#(isNatKind(activate(V1))), 752.91/207.95 isNatKind^#(activate(V1)), 752.91/207.96 activate^#(V1)) 752.91/207.96 , activate^#(X) -> c_6() 752.91/207.96 , activate^#(n__0()) -> c_7(0^#()) 752.91/207.96 , activate^#(n__plus(X1, X2)) -> 752.91/207.96 c_8(plus^#(activate(X1), activate(X2)), 752.91/207.96 activate^#(X1), 752.91/207.96 activate^#(X2)) 752.91/207.96 , activate^#(n__s(X)) -> c_9(s^#(activate(X)), activate^#(X)) 752.91/207.96 , U13^#(tt(), V1, V2) -> 752.91/207.96 c_10(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.96 isNatKind^#(activate(V2)), 752.91/207.96 activate^#(V2), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V2)) 752.91/207.96 , U31^#(tt(), V2) -> 752.91/207.96 c_20(U32^#(isNatKind(activate(V2))), 752.91/207.96 isNatKind^#(activate(V2)), 752.91/207.96 activate^#(V2)) 752.91/207.96 , U41^#(tt()) -> c_22() 752.91/207.96 , 0^#() -> c_31() 752.91/207.96 , plus^#(X1, X2) -> c_30() 752.91/207.96 , s^#(X) -> c_29() 752.91/207.96 , U14^#(tt(), V1, V2) -> 752.91/207.96 c_11(U15^#(isNat(activate(V1)), activate(V2)), 752.91/207.96 isNat^#(activate(V1)), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V2)) 752.91/207.96 , U15^#(tt(), V2) -> 752.91/207.96 c_12(U16^#(isNat(activate(V2))), 752.91/207.96 isNat^#(activate(V2)), 752.91/207.96 activate^#(V2)) 752.91/207.96 , isNat^#(n__0()) -> c_13() 752.91/207.96 , isNat^#(n__plus(V1, V2)) -> 752.91/207.96 c_14(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.96 isNatKind^#(activate(V1)), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V2)) 752.91/207.96 , isNat^#(n__s(V1)) -> 752.91/207.96 c_15(U21^#(isNatKind(activate(V1)), activate(V1)), 752.91/207.96 isNatKind^#(activate(V1)), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V1)) 752.91/207.96 , U16^#(tt()) -> c_16() 752.91/207.96 , U21^#(tt(), V1) -> 752.91/207.96 c_17(U22^#(isNatKind(activate(V1)), activate(V1)), 752.91/207.96 isNatKind^#(activate(V1)), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V1)) 752.91/207.96 , U22^#(tt(), V1) -> 752.91/207.96 c_18(U23^#(isNat(activate(V1))), 752.91/207.96 isNat^#(activate(V1)), 752.91/207.96 activate^#(V1)) 752.91/207.96 , U23^#(tt()) -> c_19() 752.91/207.96 , U32^#(tt()) -> c_21() 752.91/207.96 , U51^#(tt(), N) -> 752.91/207.96 c_23(U52^#(isNatKind(activate(N)), activate(N)), 752.91/207.96 isNatKind^#(activate(N)), 752.91/207.96 activate^#(N), 752.91/207.96 activate^#(N)) 752.91/207.96 , U52^#(tt(), N) -> c_24(activate^#(N)) 752.91/207.96 , U61^#(tt(), M, N) -> 752.91/207.96 c_25(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 752.91/207.96 isNatKind^#(activate(M)), 752.91/207.96 activate^#(M), 752.91/207.96 activate^#(M), 752.91/207.96 activate^#(N)) 752.91/207.96 , U62^#(tt(), M, N) -> 752.91/207.96 c_26(U63^#(isNat(activate(N)), activate(M), activate(N)), 752.91/207.96 isNat^#(activate(N)), 752.91/207.96 activate^#(N), 752.91/207.96 activate^#(M), 752.91/207.96 activate^#(N)) 752.91/207.96 , U63^#(tt(), M, N) -> 752.91/207.96 c_27(U64^#(isNatKind(activate(N)), activate(M), activate(N)), 752.91/207.96 isNatKind^#(activate(N)), 752.91/207.96 activate^#(N), 752.91/207.96 activate^#(M), 752.91/207.96 activate^#(N)) 752.91/207.96 , U64^#(tt(), M, N) -> 752.91/207.96 c_28(s^#(plus(activate(N), activate(M))), 752.91/207.96 plus^#(activate(N), activate(M)), 752.91/207.96 activate^#(N), 752.91/207.96 activate^#(M)) } 752.91/207.96 Weak Trs: 752.91/207.96 { U11(tt(), V1, V2) -> 752.91/207.96 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 752.91/207.96 , U12(tt(), V1, V2) -> 752.91/207.96 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 752.91/207.96 , isNatKind(n__0()) -> tt() 752.91/207.96 , isNatKind(n__plus(V1, V2)) -> 752.91/207.96 U31(isNatKind(activate(V1)), activate(V2)) 752.91/207.96 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 752.91/207.96 , activate(X) -> X 752.91/207.96 , activate(n__0()) -> 0() 752.91/207.96 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 752.91/207.96 , activate(n__s(X)) -> s(activate(X)) 752.91/207.96 , U13(tt(), V1, V2) -> 752.91/207.96 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 752.91/207.96 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 752.91/207.96 , U15(tt(), V2) -> U16(isNat(activate(V2))) 752.91/207.96 , isNat(n__0()) -> tt() 752.91/207.96 , isNat(n__plus(V1, V2)) -> 752.91/207.96 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 752.91/207.96 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 752.91/207.96 , U16(tt()) -> tt() 752.91/207.96 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 752.91/207.96 , U22(tt(), V1) -> U23(isNat(activate(V1))) 752.91/207.96 , U23(tt()) -> tt() 752.91/207.96 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 752.91/207.96 , U32(tt()) -> tt() 752.91/207.96 , U41(tt()) -> tt() 752.91/207.96 , U51(tt(), N) -> U52(isNatKind(activate(N)), activate(N)) 752.91/207.96 , U52(tt(), N) -> activate(N) 752.91/207.96 , U61(tt(), M, N) -> 752.91/207.96 U62(isNatKind(activate(M)), activate(M), activate(N)) 752.91/207.96 , U62(tt(), M, N) -> 752.91/207.96 U63(isNat(activate(N)), activate(M), activate(N)) 752.91/207.96 , U63(tt(), M, N) -> 752.91/207.96 U64(isNatKind(activate(N)), activate(M), activate(N)) 752.91/207.96 , U64(tt(), M, N) -> s(plus(activate(N), activate(M))) 752.91/207.96 , s(X) -> n__s(X) 752.91/207.96 , plus(X1, X2) -> n__plus(X1, X2) 752.91/207.96 , 0() -> n__0() } 752.91/207.96 Obligation: 752.91/207.96 innermost runtime complexity 752.91/207.96 Answer: 752.91/207.96 YES(O(1),O(n^3)) 752.91/207.96 752.91/207.96 We estimate the number of application of 752.91/207.96 {3,6,12,13,14,15,18,21,24,25} by applications of 752.91/207.96 Pre({3,6,12,13,14,15,18,21,24,25}) = 752.91/207.96 {1,2,4,5,7,8,9,10,11,16,17,19,20,22,23,26,27,28,29,30,31}. Here 752.91/207.96 rules are labeled as follows: 752.91/207.96 752.91/207.96 DPs: 752.91/207.96 { 1: U11^#(tt(), V1, V2) -> 752.91/207.96 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.96 isNatKind^#(activate(V1)), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V2)) 752.91/207.96 , 2: U12^#(tt(), V1, V2) -> 752.91/207.96 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.96 isNatKind^#(activate(V2)), 752.91/207.96 activate^#(V2), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V2)) 752.91/207.96 , 3: isNatKind^#(n__0()) -> c_3() 752.91/207.96 , 4: isNatKind^#(n__plus(V1, V2)) -> 752.91/207.96 c_4(U31^#(isNatKind(activate(V1)), activate(V2)), 752.91/207.96 isNatKind^#(activate(V1)), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V2)) 752.91/207.96 , 5: isNatKind^#(n__s(V1)) -> 752.91/207.96 c_5(U41^#(isNatKind(activate(V1))), 752.91/207.96 isNatKind^#(activate(V1)), 752.91/207.96 activate^#(V1)) 752.91/207.96 , 6: activate^#(X) -> c_6() 752.91/207.96 , 7: activate^#(n__0()) -> c_7(0^#()) 752.91/207.96 , 8: activate^#(n__plus(X1, X2)) -> 752.91/207.96 c_8(plus^#(activate(X1), activate(X2)), 752.91/207.96 activate^#(X1), 752.91/207.96 activate^#(X2)) 752.91/207.96 , 9: activate^#(n__s(X)) -> c_9(s^#(activate(X)), activate^#(X)) 752.91/207.96 , 10: U13^#(tt(), V1, V2) -> 752.91/207.96 c_10(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.96 isNatKind^#(activate(V2)), 752.91/207.96 activate^#(V2), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V2)) 752.91/207.96 , 11: U31^#(tt(), V2) -> 752.91/207.96 c_20(U32^#(isNatKind(activate(V2))), 752.91/207.96 isNatKind^#(activate(V2)), 752.91/207.96 activate^#(V2)) 752.91/207.96 , 12: U41^#(tt()) -> c_22() 752.91/207.96 , 13: 0^#() -> c_31() 752.91/207.96 , 14: plus^#(X1, X2) -> c_30() 752.91/207.96 , 15: s^#(X) -> c_29() 752.91/207.96 , 16: U14^#(tt(), V1, V2) -> 752.91/207.96 c_11(U15^#(isNat(activate(V1)), activate(V2)), 752.91/207.96 isNat^#(activate(V1)), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V2)) 752.91/207.96 , 17: U15^#(tt(), V2) -> 752.91/207.96 c_12(U16^#(isNat(activate(V2))), 752.91/207.96 isNat^#(activate(V2)), 752.91/207.96 activate^#(V2)) 752.91/207.96 , 18: isNat^#(n__0()) -> c_13() 752.91/207.96 , 19: isNat^#(n__plus(V1, V2)) -> 752.91/207.96 c_14(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.96 isNatKind^#(activate(V1)), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V2)) 752.91/207.96 , 20: isNat^#(n__s(V1)) -> 752.91/207.96 c_15(U21^#(isNatKind(activate(V1)), activate(V1)), 752.91/207.96 isNatKind^#(activate(V1)), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V1)) 752.91/207.96 , 21: U16^#(tt()) -> c_16() 752.91/207.96 , 22: U21^#(tt(), V1) -> 752.91/207.96 c_17(U22^#(isNatKind(activate(V1)), activate(V1)), 752.91/207.96 isNatKind^#(activate(V1)), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V1)) 752.91/207.96 , 23: U22^#(tt(), V1) -> 752.91/207.96 c_18(U23^#(isNat(activate(V1))), 752.91/207.96 isNat^#(activate(V1)), 752.91/207.96 activate^#(V1)) 752.91/207.96 , 24: U23^#(tt()) -> c_19() 752.91/207.96 , 25: U32^#(tt()) -> c_21() 752.91/207.96 , 26: U51^#(tt(), N) -> 752.91/207.96 c_23(U52^#(isNatKind(activate(N)), activate(N)), 752.91/207.96 isNatKind^#(activate(N)), 752.91/207.96 activate^#(N), 752.91/207.96 activate^#(N)) 752.91/207.96 , 27: U52^#(tt(), N) -> c_24(activate^#(N)) 752.91/207.96 , 28: U61^#(tt(), M, N) -> 752.91/207.96 c_25(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 752.91/207.96 isNatKind^#(activate(M)), 752.91/207.96 activate^#(M), 752.91/207.96 activate^#(M), 752.91/207.96 activate^#(N)) 752.91/207.96 , 29: U62^#(tt(), M, N) -> 752.91/207.96 c_26(U63^#(isNat(activate(N)), activate(M), activate(N)), 752.91/207.96 isNat^#(activate(N)), 752.91/207.96 activate^#(N), 752.91/207.96 activate^#(M), 752.91/207.96 activate^#(N)) 752.91/207.96 , 30: U63^#(tt(), M, N) -> 752.91/207.96 c_27(U64^#(isNatKind(activate(N)), activate(M), activate(N)), 752.91/207.96 isNatKind^#(activate(N)), 752.91/207.96 activate^#(N), 752.91/207.96 activate^#(M), 752.91/207.96 activate^#(N)) 752.91/207.96 , 31: U64^#(tt(), M, N) -> 752.91/207.96 c_28(s^#(plus(activate(N), activate(M))), 752.91/207.96 plus^#(activate(N), activate(M)), 752.91/207.96 activate^#(N), 752.91/207.96 activate^#(M)) } 752.91/207.96 752.91/207.96 We are left with following problem, upon which TcT provides the 752.91/207.96 certificate YES(O(1),O(n^3)). 752.91/207.96 752.91/207.96 Strict DPs: 752.91/207.96 { U11^#(tt(), V1, V2) -> 752.91/207.96 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.96 isNatKind^#(activate(V1)), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V2)) 752.91/207.96 , U12^#(tt(), V1, V2) -> 752.91/207.96 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.96 isNatKind^#(activate(V2)), 752.91/207.96 activate^#(V2), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V2)) 752.91/207.96 , isNatKind^#(n__plus(V1, V2)) -> 752.91/207.96 c_4(U31^#(isNatKind(activate(V1)), activate(V2)), 752.91/207.96 isNatKind^#(activate(V1)), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V2)) 752.91/207.96 , isNatKind^#(n__s(V1)) -> 752.91/207.96 c_5(U41^#(isNatKind(activate(V1))), 752.91/207.96 isNatKind^#(activate(V1)), 752.91/207.96 activate^#(V1)) 752.91/207.96 , activate^#(n__0()) -> c_7(0^#()) 752.91/207.96 , activate^#(n__plus(X1, X2)) -> 752.91/207.96 c_8(plus^#(activate(X1), activate(X2)), 752.91/207.96 activate^#(X1), 752.91/207.96 activate^#(X2)) 752.91/207.96 , activate^#(n__s(X)) -> c_9(s^#(activate(X)), activate^#(X)) 752.91/207.96 , U13^#(tt(), V1, V2) -> 752.91/207.96 c_10(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.96 isNatKind^#(activate(V2)), 752.91/207.96 activate^#(V2), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V2)) 752.91/207.96 , U31^#(tt(), V2) -> 752.91/207.96 c_20(U32^#(isNatKind(activate(V2))), 752.91/207.96 isNatKind^#(activate(V2)), 752.91/207.96 activate^#(V2)) 752.91/207.96 , U14^#(tt(), V1, V2) -> 752.91/207.96 c_11(U15^#(isNat(activate(V1)), activate(V2)), 752.91/207.96 isNat^#(activate(V1)), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V2)) 752.91/207.96 , U15^#(tt(), V2) -> 752.91/207.96 c_12(U16^#(isNat(activate(V2))), 752.91/207.96 isNat^#(activate(V2)), 752.91/207.96 activate^#(V2)) 752.91/207.96 , isNat^#(n__plus(V1, V2)) -> 752.91/207.96 c_14(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.96 isNatKind^#(activate(V1)), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V2)) 752.91/207.96 , isNat^#(n__s(V1)) -> 752.91/207.96 c_15(U21^#(isNatKind(activate(V1)), activate(V1)), 752.91/207.96 isNatKind^#(activate(V1)), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V1)) 752.91/207.96 , U21^#(tt(), V1) -> 752.91/207.96 c_17(U22^#(isNatKind(activate(V1)), activate(V1)), 752.91/207.96 isNatKind^#(activate(V1)), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V1)) 752.91/207.96 , U22^#(tt(), V1) -> 752.91/207.96 c_18(U23^#(isNat(activate(V1))), 752.91/207.96 isNat^#(activate(V1)), 752.91/207.96 activate^#(V1)) 752.91/207.96 , U51^#(tt(), N) -> 752.91/207.96 c_23(U52^#(isNatKind(activate(N)), activate(N)), 752.91/207.96 isNatKind^#(activate(N)), 752.91/207.96 activate^#(N), 752.91/207.96 activate^#(N)) 752.91/207.96 , U52^#(tt(), N) -> c_24(activate^#(N)) 752.91/207.96 , U61^#(tt(), M, N) -> 752.91/207.96 c_25(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 752.91/207.96 isNatKind^#(activate(M)), 752.91/207.96 activate^#(M), 752.91/207.96 activate^#(M), 752.91/207.96 activate^#(N)) 752.91/207.96 , U62^#(tt(), M, N) -> 752.91/207.96 c_26(U63^#(isNat(activate(N)), activate(M), activate(N)), 752.91/207.96 isNat^#(activate(N)), 752.91/207.96 activate^#(N), 752.91/207.96 activate^#(M), 752.91/207.96 activate^#(N)) 752.91/207.96 , U63^#(tt(), M, N) -> 752.91/207.96 c_27(U64^#(isNatKind(activate(N)), activate(M), activate(N)), 752.91/207.96 isNatKind^#(activate(N)), 752.91/207.96 activate^#(N), 752.91/207.96 activate^#(M), 752.91/207.96 activate^#(N)) 752.91/207.96 , U64^#(tt(), M, N) -> 752.91/207.96 c_28(s^#(plus(activate(N), activate(M))), 752.91/207.96 plus^#(activate(N), activate(M)), 752.91/207.96 activate^#(N), 752.91/207.96 activate^#(M)) } 752.91/207.96 Weak DPs: 752.91/207.96 { isNatKind^#(n__0()) -> c_3() 752.91/207.96 , activate^#(X) -> c_6() 752.91/207.96 , U41^#(tt()) -> c_22() 752.91/207.96 , 0^#() -> c_31() 752.91/207.96 , plus^#(X1, X2) -> c_30() 752.91/207.96 , s^#(X) -> c_29() 752.91/207.96 , isNat^#(n__0()) -> c_13() 752.91/207.96 , U16^#(tt()) -> c_16() 752.91/207.96 , U23^#(tt()) -> c_19() 752.91/207.96 , U32^#(tt()) -> c_21() } 752.91/207.96 Weak Trs: 752.91/207.96 { U11(tt(), V1, V2) -> 752.91/207.96 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 752.91/207.96 , U12(tt(), V1, V2) -> 752.91/207.96 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 752.91/207.96 , isNatKind(n__0()) -> tt() 752.91/207.96 , isNatKind(n__plus(V1, V2)) -> 752.91/207.96 U31(isNatKind(activate(V1)), activate(V2)) 752.91/207.96 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 752.91/207.96 , activate(X) -> X 752.91/207.96 , activate(n__0()) -> 0() 752.91/207.96 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 752.91/207.96 , activate(n__s(X)) -> s(activate(X)) 752.91/207.96 , U13(tt(), V1, V2) -> 752.91/207.96 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 752.91/207.96 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 752.91/207.96 , U15(tt(), V2) -> U16(isNat(activate(V2))) 752.91/207.96 , isNat(n__0()) -> tt() 752.91/207.96 , isNat(n__plus(V1, V2)) -> 752.91/207.96 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 752.91/207.96 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 752.91/207.96 , U16(tt()) -> tt() 752.91/207.96 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 752.91/207.96 , U22(tt(), V1) -> U23(isNat(activate(V1))) 752.91/207.96 , U23(tt()) -> tt() 752.91/207.96 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 752.91/207.96 , U32(tt()) -> tt() 752.91/207.96 , U41(tt()) -> tt() 752.91/207.96 , U51(tt(), N) -> U52(isNatKind(activate(N)), activate(N)) 752.91/207.96 , U52(tt(), N) -> activate(N) 752.91/207.96 , U61(tt(), M, N) -> 752.91/207.96 U62(isNatKind(activate(M)), activate(M), activate(N)) 752.91/207.96 , U62(tt(), M, N) -> 752.91/207.96 U63(isNat(activate(N)), activate(M), activate(N)) 752.91/207.96 , U63(tt(), M, N) -> 752.91/207.96 U64(isNatKind(activate(N)), activate(M), activate(N)) 752.91/207.96 , U64(tt(), M, N) -> s(plus(activate(N), activate(M))) 752.91/207.96 , s(X) -> n__s(X) 752.91/207.96 , plus(X1, X2) -> n__plus(X1, X2) 752.91/207.96 , 0() -> n__0() } 752.91/207.96 Obligation: 752.91/207.96 innermost runtime complexity 752.91/207.96 Answer: 752.91/207.96 YES(O(1),O(n^3)) 752.91/207.96 752.91/207.96 We estimate the number of application of {5} by applications of 752.91/207.96 Pre({5}) = {1,2,3,4,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21}. 752.91/207.96 Here rules are labeled as follows: 752.91/207.96 752.91/207.96 DPs: 752.91/207.96 { 1: U11^#(tt(), V1, V2) -> 752.91/207.96 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.96 isNatKind^#(activate(V1)), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V2)) 752.91/207.96 , 2: U12^#(tt(), V1, V2) -> 752.91/207.96 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.96 isNatKind^#(activate(V2)), 752.91/207.96 activate^#(V2), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V2)) 752.91/207.96 , 3: isNatKind^#(n__plus(V1, V2)) -> 752.91/207.96 c_4(U31^#(isNatKind(activate(V1)), activate(V2)), 752.91/207.96 isNatKind^#(activate(V1)), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V2)) 752.91/207.96 , 4: isNatKind^#(n__s(V1)) -> 752.91/207.96 c_5(U41^#(isNatKind(activate(V1))), 752.91/207.96 isNatKind^#(activate(V1)), 752.91/207.96 activate^#(V1)) 752.91/207.96 , 5: activate^#(n__0()) -> c_7(0^#()) 752.91/207.96 , 6: activate^#(n__plus(X1, X2)) -> 752.91/207.96 c_8(plus^#(activate(X1), activate(X2)), 752.91/207.96 activate^#(X1), 752.91/207.96 activate^#(X2)) 752.91/207.96 , 7: activate^#(n__s(X)) -> c_9(s^#(activate(X)), activate^#(X)) 752.91/207.96 , 8: U13^#(tt(), V1, V2) -> 752.91/207.96 c_10(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.96 isNatKind^#(activate(V2)), 752.91/207.96 activate^#(V2), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V2)) 752.91/207.96 , 9: U31^#(tt(), V2) -> 752.91/207.96 c_20(U32^#(isNatKind(activate(V2))), 752.91/207.96 isNatKind^#(activate(V2)), 752.91/207.96 activate^#(V2)) 752.91/207.96 , 10: U14^#(tt(), V1, V2) -> 752.91/207.96 c_11(U15^#(isNat(activate(V1)), activate(V2)), 752.91/207.96 isNat^#(activate(V1)), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V2)) 752.91/207.96 , 11: U15^#(tt(), V2) -> 752.91/207.96 c_12(U16^#(isNat(activate(V2))), 752.91/207.96 isNat^#(activate(V2)), 752.91/207.96 activate^#(V2)) 752.91/207.96 , 12: isNat^#(n__plus(V1, V2)) -> 752.91/207.96 c_14(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.96 isNatKind^#(activate(V1)), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V1), 752.91/207.96 activate^#(V2)) 752.91/207.96 , 13: isNat^#(n__s(V1)) -> 752.91/207.96 c_15(U21^#(isNatKind(activate(V1)), activate(V1)), 752.91/207.96 isNatKind^#(activate(V1)), 752.91/207.96 activate^#(V1), 752.91/207.97 activate^#(V1)) 752.91/207.97 , 14: U21^#(tt(), V1) -> 752.91/207.97 c_17(U22^#(isNatKind(activate(V1)), activate(V1)), 752.91/207.97 isNatKind^#(activate(V1)), 752.91/207.97 activate^#(V1), 752.91/207.97 activate^#(V1)) 752.91/207.97 , 15: U22^#(tt(), V1) -> 752.91/207.97 c_18(U23^#(isNat(activate(V1))), 752.91/207.97 isNat^#(activate(V1)), 752.91/207.97 activate^#(V1)) 752.91/207.97 , 16: U51^#(tt(), N) -> 752.91/207.97 c_23(U52^#(isNatKind(activate(N)), activate(N)), 752.91/207.97 isNatKind^#(activate(N)), 752.91/207.97 activate^#(N), 752.91/207.97 activate^#(N)) 752.91/207.97 , 17: U52^#(tt(), N) -> c_24(activate^#(N)) 752.91/207.97 , 18: U61^#(tt(), M, N) -> 752.91/207.97 c_25(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 752.91/207.97 isNatKind^#(activate(M)), 752.91/207.97 activate^#(M), 752.91/207.97 activate^#(M), 752.91/207.97 activate^#(N)) 752.91/207.97 , 19: U62^#(tt(), M, N) -> 752.91/207.97 c_26(U63^#(isNat(activate(N)), activate(M), activate(N)), 752.91/207.97 isNat^#(activate(N)), 752.91/207.97 activate^#(N), 752.91/207.97 activate^#(M), 752.91/207.97 activate^#(N)) 752.91/207.97 , 20: U63^#(tt(), M, N) -> 752.91/207.97 c_27(U64^#(isNatKind(activate(N)), activate(M), activate(N)), 752.91/207.97 isNatKind^#(activate(N)), 752.91/207.97 activate^#(N), 752.91/207.97 activate^#(M), 752.91/207.97 activate^#(N)) 752.91/207.97 , 21: U64^#(tt(), M, N) -> 752.91/207.97 c_28(s^#(plus(activate(N), activate(M))), 752.91/207.97 plus^#(activate(N), activate(M)), 752.91/207.97 activate^#(N), 752.91/207.97 activate^#(M)) 752.91/207.97 , 22: isNatKind^#(n__0()) -> c_3() 752.91/207.97 , 23: activate^#(X) -> c_6() 752.91/207.97 , 24: U41^#(tt()) -> c_22() 752.91/207.97 , 25: 0^#() -> c_31() 752.91/207.97 , 26: plus^#(X1, X2) -> c_30() 752.91/207.97 , 27: s^#(X) -> c_29() 752.91/207.97 , 28: isNat^#(n__0()) -> c_13() 752.91/207.97 , 29: U16^#(tt()) -> c_16() 752.91/207.97 , 30: U23^#(tt()) -> c_19() 752.91/207.97 , 31: U32^#(tt()) -> c_21() } 752.91/207.97 752.91/207.97 We are left with following problem, upon which TcT provides the 752.91/207.97 certificate YES(O(1),O(n^3)). 752.91/207.97 752.91/207.97 Strict DPs: 752.91/207.97 { U11^#(tt(), V1, V2) -> 752.91/207.97 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.97 isNatKind^#(activate(V1)), 752.91/207.97 activate^#(V1), 752.91/207.97 activate^#(V1), 752.91/207.97 activate^#(V2)) 752.91/207.97 , U12^#(tt(), V1, V2) -> 752.91/207.97 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.97 isNatKind^#(activate(V2)), 752.91/207.97 activate^#(V2), 752.91/207.97 activate^#(V1), 752.91/207.97 activate^#(V2)) 752.91/207.97 , isNatKind^#(n__plus(V1, V2)) -> 752.91/207.97 c_4(U31^#(isNatKind(activate(V1)), activate(V2)), 752.91/207.97 isNatKind^#(activate(V1)), 752.91/207.97 activate^#(V1), 752.91/207.97 activate^#(V2)) 752.91/207.97 , isNatKind^#(n__s(V1)) -> 752.91/207.97 c_5(U41^#(isNatKind(activate(V1))), 752.91/207.97 isNatKind^#(activate(V1)), 752.91/207.97 activate^#(V1)) 752.91/207.97 , activate^#(n__plus(X1, X2)) -> 752.91/207.97 c_8(plus^#(activate(X1), activate(X2)), 752.91/207.97 activate^#(X1), 752.91/207.97 activate^#(X2)) 752.91/207.97 , activate^#(n__s(X)) -> c_9(s^#(activate(X)), activate^#(X)) 752.91/207.97 , U13^#(tt(), V1, V2) -> 752.91/207.97 c_10(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.97 isNatKind^#(activate(V2)), 752.91/207.97 activate^#(V2), 752.91/207.97 activate^#(V1), 752.91/207.97 activate^#(V2)) 752.91/207.97 , U31^#(tt(), V2) -> 752.91/207.97 c_20(U32^#(isNatKind(activate(V2))), 752.91/207.97 isNatKind^#(activate(V2)), 752.91/207.97 activate^#(V2)) 752.91/207.97 , U14^#(tt(), V1, V2) -> 752.91/207.97 c_11(U15^#(isNat(activate(V1)), activate(V2)), 752.91/207.97 isNat^#(activate(V1)), 752.91/207.97 activate^#(V1), 752.91/207.97 activate^#(V2)) 752.91/207.97 , U15^#(tt(), V2) -> 752.91/207.97 c_12(U16^#(isNat(activate(V2))), 752.91/207.97 isNat^#(activate(V2)), 752.91/207.97 activate^#(V2)) 752.91/207.97 , isNat^#(n__plus(V1, V2)) -> 752.91/207.97 c_14(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.97 isNatKind^#(activate(V1)), 752.91/207.97 activate^#(V1), 752.91/207.97 activate^#(V1), 752.91/207.97 activate^#(V2)) 752.91/207.97 , isNat^#(n__s(V1)) -> 752.91/207.97 c_15(U21^#(isNatKind(activate(V1)), activate(V1)), 752.91/207.97 isNatKind^#(activate(V1)), 752.91/207.97 activate^#(V1), 752.91/207.97 activate^#(V1)) 752.91/207.97 , U21^#(tt(), V1) -> 752.91/207.97 c_17(U22^#(isNatKind(activate(V1)), activate(V1)), 752.91/207.97 isNatKind^#(activate(V1)), 752.91/207.97 activate^#(V1), 752.91/207.97 activate^#(V1)) 752.91/207.97 , U22^#(tt(), V1) -> 752.91/207.97 c_18(U23^#(isNat(activate(V1))), 752.91/207.97 isNat^#(activate(V1)), 752.91/207.97 activate^#(V1)) 752.91/207.97 , U51^#(tt(), N) -> 752.91/207.97 c_23(U52^#(isNatKind(activate(N)), activate(N)), 752.91/207.97 isNatKind^#(activate(N)), 752.91/207.97 activate^#(N), 752.91/207.97 activate^#(N)) 752.91/207.97 , U52^#(tt(), N) -> c_24(activate^#(N)) 752.91/207.97 , U61^#(tt(), M, N) -> 752.91/207.97 c_25(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 752.91/207.97 isNatKind^#(activate(M)), 752.91/207.97 activate^#(M), 752.91/207.97 activate^#(M), 752.91/207.97 activate^#(N)) 752.91/207.97 , U62^#(tt(), M, N) -> 752.91/207.97 c_26(U63^#(isNat(activate(N)), activate(M), activate(N)), 752.91/207.97 isNat^#(activate(N)), 752.91/207.97 activate^#(N), 752.91/207.97 activate^#(M), 752.91/207.97 activate^#(N)) 752.91/207.97 , U63^#(tt(), M, N) -> 752.91/207.97 c_27(U64^#(isNatKind(activate(N)), activate(M), activate(N)), 752.91/207.97 isNatKind^#(activate(N)), 752.91/207.97 activate^#(N), 752.91/207.97 activate^#(M), 752.91/207.97 activate^#(N)) 752.91/207.97 , U64^#(tt(), M, N) -> 752.91/207.97 c_28(s^#(plus(activate(N), activate(M))), 752.91/207.97 plus^#(activate(N), activate(M)), 752.91/207.97 activate^#(N), 752.91/207.97 activate^#(M)) } 752.91/207.97 Weak DPs: 752.91/207.97 { isNatKind^#(n__0()) -> c_3() 752.91/207.97 , activate^#(X) -> c_6() 752.91/207.97 , activate^#(n__0()) -> c_7(0^#()) 752.91/207.97 , U41^#(tt()) -> c_22() 752.91/207.97 , 0^#() -> c_31() 752.91/207.97 , plus^#(X1, X2) -> c_30() 752.91/207.97 , s^#(X) -> c_29() 752.91/207.97 , isNat^#(n__0()) -> c_13() 752.91/207.97 , U16^#(tt()) -> c_16() 752.91/207.97 , U23^#(tt()) -> c_19() 752.91/207.97 , U32^#(tt()) -> c_21() } 752.91/207.97 Weak Trs: 752.91/207.97 { U11(tt(), V1, V2) -> 752.91/207.97 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 752.91/207.97 , U12(tt(), V1, V2) -> 752.91/207.97 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 752.91/207.97 , isNatKind(n__0()) -> tt() 752.91/207.97 , isNatKind(n__plus(V1, V2)) -> 752.91/207.97 U31(isNatKind(activate(V1)), activate(V2)) 752.91/207.97 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 752.91/207.97 , activate(X) -> X 752.91/207.97 , activate(n__0()) -> 0() 752.91/207.97 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 752.91/207.97 , activate(n__s(X)) -> s(activate(X)) 752.91/207.97 , U13(tt(), V1, V2) -> 752.91/207.97 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 752.91/207.97 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 752.91/207.97 , U15(tt(), V2) -> U16(isNat(activate(V2))) 752.91/207.97 , isNat(n__0()) -> tt() 752.91/207.97 , isNat(n__plus(V1, V2)) -> 752.91/207.97 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 752.91/207.97 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 752.91/207.97 , U16(tt()) -> tt() 752.91/207.97 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 752.91/207.97 , U22(tt(), V1) -> U23(isNat(activate(V1))) 752.91/207.97 , U23(tt()) -> tt() 752.91/207.97 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 752.91/207.97 , U32(tt()) -> tt() 752.91/207.97 , U41(tt()) -> tt() 752.91/207.97 , U51(tt(), N) -> U52(isNatKind(activate(N)), activate(N)) 752.91/207.97 , U52(tt(), N) -> activate(N) 752.91/207.97 , U61(tt(), M, N) -> 752.91/207.97 U62(isNatKind(activate(M)), activate(M), activate(N)) 752.91/207.97 , U62(tt(), M, N) -> 752.91/207.97 U63(isNat(activate(N)), activate(M), activate(N)) 752.91/207.97 , U63(tt(), M, N) -> 752.91/207.97 U64(isNatKind(activate(N)), activate(M), activate(N)) 752.91/207.97 , U64(tt(), M, N) -> s(plus(activate(N), activate(M))) 752.91/207.97 , s(X) -> n__s(X) 752.91/207.97 , plus(X1, X2) -> n__plus(X1, X2) 752.91/207.97 , 0() -> n__0() } 752.91/207.97 Obligation: 752.91/207.97 innermost runtime complexity 752.91/207.97 Answer: 752.91/207.97 YES(O(1),O(n^3)) 752.91/207.97 752.91/207.97 The following weak DPs constitute a sub-graph of the DG that is 752.91/207.97 closed under successors. The DPs are removed. 752.91/207.97 752.91/207.97 { isNatKind^#(n__0()) -> c_3() 752.91/207.97 , activate^#(X) -> c_6() 752.91/207.97 , activate^#(n__0()) -> c_7(0^#()) 752.91/207.97 , U41^#(tt()) -> c_22() 752.91/207.97 , 0^#() -> c_31() 752.91/207.97 , plus^#(X1, X2) -> c_30() 752.91/207.97 , s^#(X) -> c_29() 752.91/207.97 , isNat^#(n__0()) -> c_13() 752.91/207.97 , U16^#(tt()) -> c_16() 752.91/207.97 , U23^#(tt()) -> c_19() 752.91/207.97 , U32^#(tt()) -> c_21() } 752.91/207.97 752.91/207.97 We are left with following problem, upon which TcT provides the 752.91/207.97 certificate YES(O(1),O(n^3)). 752.91/207.97 752.91/207.97 Strict DPs: 752.91/207.97 { U11^#(tt(), V1, V2) -> 752.91/207.97 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.97 isNatKind^#(activate(V1)), 752.91/207.97 activate^#(V1), 752.91/207.97 activate^#(V1), 752.91/207.97 activate^#(V2)) 752.91/207.97 , U12^#(tt(), V1, V2) -> 752.91/207.97 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.97 isNatKind^#(activate(V2)), 752.91/207.97 activate^#(V2), 752.91/207.97 activate^#(V1), 752.91/207.97 activate^#(V2)) 752.91/207.97 , isNatKind^#(n__plus(V1, V2)) -> 752.91/207.97 c_4(U31^#(isNatKind(activate(V1)), activate(V2)), 752.91/207.97 isNatKind^#(activate(V1)), 752.91/207.97 activate^#(V1), 752.91/207.97 activate^#(V2)) 752.91/207.97 , isNatKind^#(n__s(V1)) -> 752.91/207.97 c_5(U41^#(isNatKind(activate(V1))), 752.91/207.97 isNatKind^#(activate(V1)), 752.91/207.97 activate^#(V1)) 752.91/207.97 , activate^#(n__plus(X1, X2)) -> 752.91/207.97 c_8(plus^#(activate(X1), activate(X2)), 752.91/207.97 activate^#(X1), 752.91/207.97 activate^#(X2)) 752.91/207.97 , activate^#(n__s(X)) -> c_9(s^#(activate(X)), activate^#(X)) 752.91/207.97 , U13^#(tt(), V1, V2) -> 752.91/207.97 c_10(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.97 isNatKind^#(activate(V2)), 752.91/207.97 activate^#(V2), 752.91/207.97 activate^#(V1), 752.91/207.97 activate^#(V2)) 752.91/207.97 , U31^#(tt(), V2) -> 752.91/207.97 c_20(U32^#(isNatKind(activate(V2))), 752.91/207.97 isNatKind^#(activate(V2)), 752.91/207.97 activate^#(V2)) 752.91/207.97 , U14^#(tt(), V1, V2) -> 752.91/207.97 c_11(U15^#(isNat(activate(V1)), activate(V2)), 752.91/207.97 isNat^#(activate(V1)), 752.91/207.97 activate^#(V1), 752.91/207.97 activate^#(V2)) 752.91/207.97 , U15^#(tt(), V2) -> 752.91/207.97 c_12(U16^#(isNat(activate(V2))), 752.91/207.97 isNat^#(activate(V2)), 752.91/207.97 activate^#(V2)) 752.91/207.97 , isNat^#(n__plus(V1, V2)) -> 752.91/207.97 c_14(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.97 isNatKind^#(activate(V1)), 752.91/207.97 activate^#(V1), 752.91/207.97 activate^#(V1), 752.91/207.97 activate^#(V2)) 752.91/207.97 , isNat^#(n__s(V1)) -> 752.91/207.97 c_15(U21^#(isNatKind(activate(V1)), activate(V1)), 752.91/207.97 isNatKind^#(activate(V1)), 752.91/207.97 activate^#(V1), 752.91/207.97 activate^#(V1)) 752.91/207.97 , U21^#(tt(), V1) -> 752.91/207.97 c_17(U22^#(isNatKind(activate(V1)), activate(V1)), 752.91/207.97 isNatKind^#(activate(V1)), 752.91/207.97 activate^#(V1), 752.91/207.97 activate^#(V1)) 752.91/207.97 , U22^#(tt(), V1) -> 752.91/207.97 c_18(U23^#(isNat(activate(V1))), 752.91/207.97 isNat^#(activate(V1)), 752.91/207.97 activate^#(V1)) 752.91/207.97 , U51^#(tt(), N) -> 752.91/207.97 c_23(U52^#(isNatKind(activate(N)), activate(N)), 752.91/207.97 isNatKind^#(activate(N)), 752.91/207.97 activate^#(N), 752.91/207.97 activate^#(N)) 752.91/207.97 , U52^#(tt(), N) -> c_24(activate^#(N)) 752.91/207.97 , U61^#(tt(), M, N) -> 752.91/207.97 c_25(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 752.91/207.97 isNatKind^#(activate(M)), 752.91/207.97 activate^#(M), 752.91/207.97 activate^#(M), 752.91/207.97 activate^#(N)) 752.91/207.97 , U62^#(tt(), M, N) -> 752.91/207.97 c_26(U63^#(isNat(activate(N)), activate(M), activate(N)), 752.91/207.97 isNat^#(activate(N)), 752.91/207.97 activate^#(N), 752.91/207.97 activate^#(M), 752.91/207.97 activate^#(N)) 752.91/207.97 , U63^#(tt(), M, N) -> 752.91/207.97 c_27(U64^#(isNatKind(activate(N)), activate(M), activate(N)), 752.91/207.97 isNatKind^#(activate(N)), 752.91/207.97 activate^#(N), 752.91/207.97 activate^#(M), 752.91/207.97 activate^#(N)) 752.91/207.97 , U64^#(tt(), M, N) -> 752.91/207.97 c_28(s^#(plus(activate(N), activate(M))), 752.91/207.97 plus^#(activate(N), activate(M)), 752.91/207.97 activate^#(N), 752.91/207.97 activate^#(M)) } 752.91/207.97 Weak Trs: 752.91/207.97 { U11(tt(), V1, V2) -> 752.91/207.97 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 752.91/207.97 , U12(tt(), V1, V2) -> 752.91/207.97 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 752.91/207.97 , isNatKind(n__0()) -> tt() 752.91/207.97 , isNatKind(n__plus(V1, V2)) -> 752.91/207.97 U31(isNatKind(activate(V1)), activate(V2)) 752.91/207.97 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 752.91/207.97 , activate(X) -> X 752.91/207.97 , activate(n__0()) -> 0() 752.91/207.97 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 752.91/207.97 , activate(n__s(X)) -> s(activate(X)) 752.91/207.97 , U13(tt(), V1, V2) -> 752.91/207.97 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 752.91/207.97 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 752.91/207.97 , U15(tt(), V2) -> U16(isNat(activate(V2))) 752.91/207.97 , isNat(n__0()) -> tt() 752.91/207.97 , isNat(n__plus(V1, V2)) -> 752.91/207.97 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 752.91/207.97 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 752.91/207.97 , U16(tt()) -> tt() 752.91/207.97 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 752.91/207.97 , U22(tt(), V1) -> U23(isNat(activate(V1))) 752.91/207.97 , U23(tt()) -> tt() 752.91/207.97 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 752.91/207.97 , U32(tt()) -> tt() 752.91/207.97 , U41(tt()) -> tt() 752.91/207.97 , U51(tt(), N) -> U52(isNatKind(activate(N)), activate(N)) 752.91/207.97 , U52(tt(), N) -> activate(N) 752.91/207.97 , U61(tt(), M, N) -> 752.91/207.97 U62(isNatKind(activate(M)), activate(M), activate(N)) 752.91/207.97 , U62(tt(), M, N) -> 752.91/207.97 U63(isNat(activate(N)), activate(M), activate(N)) 752.91/207.97 , U63(tt(), M, N) -> 752.91/207.97 U64(isNatKind(activate(N)), activate(M), activate(N)) 752.91/207.97 , U64(tt(), M, N) -> s(plus(activate(N), activate(M))) 752.91/207.97 , s(X) -> n__s(X) 752.91/207.97 , plus(X1, X2) -> n__plus(X1, X2) 752.91/207.97 , 0() -> n__0() } 752.91/207.97 Obligation: 752.91/207.97 innermost runtime complexity 752.91/207.97 Answer: 752.91/207.97 YES(O(1),O(n^3)) 752.91/207.97 752.91/207.97 Due to missing edges in the dependency-graph, the right-hand sides 752.91/207.97 of following rules could be simplified: 752.91/207.97 752.91/207.97 { isNatKind^#(n__s(V1)) -> 752.91/207.97 c_5(U41^#(isNatKind(activate(V1))), 752.91/207.97 isNatKind^#(activate(V1)), 752.91/207.97 activate^#(V1)) 752.91/207.97 , activate^#(n__plus(X1, X2)) -> 752.91/207.97 c_8(plus^#(activate(X1), activate(X2)), 752.91/207.97 activate^#(X1), 752.91/207.97 activate^#(X2)) 752.91/207.97 , activate^#(n__s(X)) -> c_9(s^#(activate(X)), activate^#(X)) 752.91/207.97 , U31^#(tt(), V2) -> 752.91/207.97 c_20(U32^#(isNatKind(activate(V2))), 752.91/207.97 isNatKind^#(activate(V2)), 752.91/207.97 activate^#(V2)) 752.91/207.97 , U15^#(tt(), V2) -> 752.91/207.97 c_12(U16^#(isNat(activate(V2))), 752.91/207.97 isNat^#(activate(V2)), 752.91/207.97 activate^#(V2)) 752.91/207.97 , U22^#(tt(), V1) -> 752.91/207.97 c_18(U23^#(isNat(activate(V1))), 752.91/207.97 isNat^#(activate(V1)), 752.91/207.97 activate^#(V1)) 752.91/207.97 , U64^#(tt(), M, N) -> 752.91/207.97 c_28(s^#(plus(activate(N), activate(M))), 752.91/207.97 plus^#(activate(N), activate(M)), 752.91/207.97 activate^#(N), 752.91/207.97 activate^#(M)) } 752.91/207.97 752.91/207.97 We are left with following problem, upon which TcT provides the 752.91/207.97 certificate YES(O(1),O(n^3)). 752.91/207.97 752.91/207.97 Strict DPs: 752.91/207.97 { U11^#(tt(), V1, V2) -> 752.91/207.97 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.97 isNatKind^#(activate(V1)), 752.91/207.97 activate^#(V1), 752.91/207.97 activate^#(V1), 752.91/207.97 activate^#(V2)) 752.91/207.97 , U12^#(tt(), V1, V2) -> 752.91/207.97 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.97 isNatKind^#(activate(V2)), 752.91/207.97 activate^#(V2), 752.91/207.97 activate^#(V1), 752.91/207.97 activate^#(V2)) 752.91/207.97 , isNatKind^#(n__plus(V1, V2)) -> 752.91/207.97 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 752.91/207.97 isNatKind^#(activate(V1)), 752.91/207.97 activate^#(V1), 752.91/207.97 activate^#(V2)) 752.91/207.97 , isNatKind^#(n__s(V1)) -> 752.91/207.97 c_4(isNatKind^#(activate(V1)), activate^#(V1)) 752.91/207.97 , activate^#(n__plus(X1, X2)) -> 752.91/207.97 c_5(activate^#(X1), activate^#(X2)) 752.91/207.97 , activate^#(n__s(X)) -> c_6(activate^#(X)) 752.91/207.97 , U13^#(tt(), V1, V2) -> 752.91/207.97 c_7(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.97 isNatKind^#(activate(V2)), 752.91/207.97 activate^#(V2), 752.91/207.97 activate^#(V1), 752.91/207.97 activate^#(V2)) 752.91/207.97 , U31^#(tt(), V2) -> c_8(isNatKind^#(activate(V2)), activate^#(V2)) 752.91/207.97 , U14^#(tt(), V1, V2) -> 752.91/207.97 c_9(U15^#(isNat(activate(V1)), activate(V2)), 752.91/207.97 isNat^#(activate(V1)), 752.91/207.97 activate^#(V1), 752.91/207.97 activate^#(V2)) 752.91/207.97 , U15^#(tt(), V2) -> c_10(isNat^#(activate(V2)), activate^#(V2)) 752.91/207.97 , isNat^#(n__plus(V1, V2)) -> 752.91/207.97 c_11(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.97 isNatKind^#(activate(V1)), 752.91/207.97 activate^#(V1), 752.91/207.97 activate^#(V1), 752.91/207.97 activate^#(V2)) 752.91/207.97 , isNat^#(n__s(V1)) -> 752.91/207.97 c_12(U21^#(isNatKind(activate(V1)), activate(V1)), 752.91/207.97 isNatKind^#(activate(V1)), 752.91/207.97 activate^#(V1), 752.91/207.97 activate^#(V1)) 752.91/207.97 , U21^#(tt(), V1) -> 752.91/207.97 c_13(U22^#(isNatKind(activate(V1)), activate(V1)), 752.91/207.97 isNatKind^#(activate(V1)), 752.91/207.97 activate^#(V1), 752.91/207.97 activate^#(V1)) 752.91/207.97 , U22^#(tt(), V1) -> c_14(isNat^#(activate(V1)), activate^#(V1)) 752.91/207.97 , U51^#(tt(), N) -> 752.91/207.97 c_15(U52^#(isNatKind(activate(N)), activate(N)), 752.91/207.97 isNatKind^#(activate(N)), 752.91/207.97 activate^#(N), 752.91/207.97 activate^#(N)) 752.91/207.97 , U52^#(tt(), N) -> c_16(activate^#(N)) 752.91/207.97 , U61^#(tt(), M, N) -> 752.91/207.97 c_17(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 752.91/207.97 isNatKind^#(activate(M)), 752.91/207.97 activate^#(M), 752.91/207.97 activate^#(M), 752.91/207.97 activate^#(N)) 752.91/207.97 , U62^#(tt(), M, N) -> 752.91/207.97 c_18(U63^#(isNat(activate(N)), activate(M), activate(N)), 752.91/207.97 isNat^#(activate(N)), 752.91/207.97 activate^#(N), 752.91/207.97 activate^#(M), 752.91/207.97 activate^#(N)) 752.91/207.97 , U63^#(tt(), M, N) -> 752.91/207.97 c_19(U64^#(isNatKind(activate(N)), activate(M), activate(N)), 752.91/207.97 isNatKind^#(activate(N)), 752.91/207.97 activate^#(N), 752.91/207.97 activate^#(M), 752.91/207.97 activate^#(N)) 752.91/207.97 , U64^#(tt(), M, N) -> c_20(activate^#(N), activate^#(M)) } 752.91/207.97 Weak Trs: 752.91/207.97 { U11(tt(), V1, V2) -> 752.91/207.97 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 752.91/207.97 , U12(tt(), V1, V2) -> 752.91/207.97 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 752.91/207.97 , isNatKind(n__0()) -> tt() 752.91/207.97 , isNatKind(n__plus(V1, V2)) -> 752.91/207.97 U31(isNatKind(activate(V1)), activate(V2)) 752.91/207.97 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 752.91/207.97 , activate(X) -> X 752.91/207.97 , activate(n__0()) -> 0() 752.91/207.97 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 752.91/207.97 , activate(n__s(X)) -> s(activate(X)) 752.91/207.97 , U13(tt(), V1, V2) -> 752.91/207.97 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 752.91/207.97 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 752.91/207.97 , U15(tt(), V2) -> U16(isNat(activate(V2))) 752.91/207.97 , isNat(n__0()) -> tt() 752.91/207.97 , isNat(n__plus(V1, V2)) -> 752.91/207.97 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 752.91/207.97 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 752.91/207.97 , U16(tt()) -> tt() 752.91/207.97 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 752.91/207.97 , U22(tt(), V1) -> U23(isNat(activate(V1))) 752.91/207.97 , U23(tt()) -> tt() 752.91/207.97 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 752.91/207.97 , U32(tt()) -> tt() 752.91/207.97 , U41(tt()) -> tt() 752.91/207.97 , U51(tt(), N) -> U52(isNatKind(activate(N)), activate(N)) 752.91/207.97 , U52(tt(), N) -> activate(N) 752.91/207.97 , U61(tt(), M, N) -> 752.91/207.97 U62(isNatKind(activate(M)), activate(M), activate(N)) 752.91/207.97 , U62(tt(), M, N) -> 752.91/207.97 U63(isNat(activate(N)), activate(M), activate(N)) 752.91/207.97 , U63(tt(), M, N) -> 752.91/207.97 U64(isNatKind(activate(N)), activate(M), activate(N)) 752.91/207.97 , U64(tt(), M, N) -> s(plus(activate(N), activate(M))) 752.91/207.97 , s(X) -> n__s(X) 752.91/207.97 , plus(X1, X2) -> n__plus(X1, X2) 752.91/207.97 , 0() -> n__0() } 752.91/207.97 Obligation: 752.91/207.97 innermost runtime complexity 752.91/207.97 Answer: 752.91/207.97 YES(O(1),O(n^3)) 752.91/207.97 752.91/207.97 We replace rewrite rules by usable rules: 752.91/207.97 752.91/207.97 Weak Usable Rules: 752.91/207.97 { U11(tt(), V1, V2) -> 752.91/207.97 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 752.91/207.97 , U12(tt(), V1, V2) -> 752.91/207.97 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 752.91/207.97 , isNatKind(n__0()) -> tt() 752.91/207.97 , isNatKind(n__plus(V1, V2)) -> 752.91/207.97 U31(isNatKind(activate(V1)), activate(V2)) 752.91/207.97 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 752.91/207.97 , activate(X) -> X 752.91/207.97 , activate(n__0()) -> 0() 752.91/207.98 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 752.91/207.98 , activate(n__s(X)) -> s(activate(X)) 752.91/207.98 , U13(tt(), V1, V2) -> 752.91/207.98 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 752.91/207.98 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 752.91/207.98 , U15(tt(), V2) -> U16(isNat(activate(V2))) 752.91/207.98 , isNat(n__0()) -> tt() 752.91/207.98 , isNat(n__plus(V1, V2)) -> 752.91/207.98 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 752.91/207.98 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 752.91/207.98 , U16(tt()) -> tt() 752.91/207.98 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 752.91/207.98 , U22(tt(), V1) -> U23(isNat(activate(V1))) 752.91/207.98 , U23(tt()) -> tt() 752.91/207.98 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 752.91/207.98 , U32(tt()) -> tt() 752.91/207.98 , U41(tt()) -> tt() 752.91/207.98 , s(X) -> n__s(X) 752.91/207.98 , plus(X1, X2) -> n__plus(X1, X2) 752.91/207.98 , 0() -> n__0() } 752.91/207.98 752.91/207.98 We are left with following problem, upon which TcT provides the 752.91/207.98 certificate YES(O(1),O(n^3)). 752.91/207.98 752.91/207.98 Strict DPs: 752.91/207.98 { U11^#(tt(), V1, V2) -> 752.91/207.98 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.98 isNatKind^#(activate(V1)), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V2)) 752.91/207.98 , U12^#(tt(), V1, V2) -> 752.91/207.98 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.98 isNatKind^#(activate(V2)), 752.91/207.98 activate^#(V2), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V2)) 752.91/207.98 , isNatKind^#(n__plus(V1, V2)) -> 752.91/207.98 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 752.91/207.98 isNatKind^#(activate(V1)), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V2)) 752.91/207.98 , isNatKind^#(n__s(V1)) -> 752.91/207.98 c_4(isNatKind^#(activate(V1)), activate^#(V1)) 752.91/207.98 , activate^#(n__plus(X1, X2)) -> 752.91/207.98 c_5(activate^#(X1), activate^#(X2)) 752.91/207.98 , activate^#(n__s(X)) -> c_6(activate^#(X)) 752.91/207.98 , U13^#(tt(), V1, V2) -> 752.91/207.98 c_7(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.98 isNatKind^#(activate(V2)), 752.91/207.98 activate^#(V2), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V2)) 752.91/207.98 , U31^#(tt(), V2) -> c_8(isNatKind^#(activate(V2)), activate^#(V2)) 752.91/207.98 , U14^#(tt(), V1, V2) -> 752.91/207.98 c_9(U15^#(isNat(activate(V1)), activate(V2)), 752.91/207.98 isNat^#(activate(V1)), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V2)) 752.91/207.98 , U15^#(tt(), V2) -> c_10(isNat^#(activate(V2)), activate^#(V2)) 752.91/207.98 , isNat^#(n__plus(V1, V2)) -> 752.91/207.98 c_11(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.98 isNatKind^#(activate(V1)), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V2)) 752.91/207.98 , isNat^#(n__s(V1)) -> 752.91/207.98 c_12(U21^#(isNatKind(activate(V1)), activate(V1)), 752.91/207.98 isNatKind^#(activate(V1)), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V1)) 752.91/207.98 , U21^#(tt(), V1) -> 752.91/207.98 c_13(U22^#(isNatKind(activate(V1)), activate(V1)), 752.91/207.98 isNatKind^#(activate(V1)), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V1)) 752.91/207.98 , U22^#(tt(), V1) -> c_14(isNat^#(activate(V1)), activate^#(V1)) 752.91/207.98 , U51^#(tt(), N) -> 752.91/207.98 c_15(U52^#(isNatKind(activate(N)), activate(N)), 752.91/207.98 isNatKind^#(activate(N)), 752.91/207.98 activate^#(N), 752.91/207.98 activate^#(N)) 752.91/207.98 , U52^#(tt(), N) -> c_16(activate^#(N)) 752.91/207.98 , U61^#(tt(), M, N) -> 752.91/207.98 c_17(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 752.91/207.98 isNatKind^#(activate(M)), 752.91/207.98 activate^#(M), 752.91/207.98 activate^#(M), 752.91/207.98 activate^#(N)) 752.91/207.98 , U62^#(tt(), M, N) -> 752.91/207.98 c_18(U63^#(isNat(activate(N)), activate(M), activate(N)), 752.91/207.98 isNat^#(activate(N)), 752.91/207.98 activate^#(N), 752.91/207.98 activate^#(M), 752.91/207.98 activate^#(N)) 752.91/207.98 , U63^#(tt(), M, N) -> 752.91/207.98 c_19(U64^#(isNatKind(activate(N)), activate(M), activate(N)), 752.91/207.98 isNatKind^#(activate(N)), 752.91/207.98 activate^#(N), 752.91/207.98 activate^#(M), 752.91/207.98 activate^#(N)) 752.91/207.98 , U64^#(tt(), M, N) -> c_20(activate^#(N), activate^#(M)) } 752.91/207.98 Weak Trs: 752.91/207.98 { U11(tt(), V1, V2) -> 752.91/207.98 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 752.91/207.98 , U12(tt(), V1, V2) -> 752.91/207.98 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 752.91/207.98 , isNatKind(n__0()) -> tt() 752.91/207.98 , isNatKind(n__plus(V1, V2)) -> 752.91/207.98 U31(isNatKind(activate(V1)), activate(V2)) 752.91/207.98 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 752.91/207.98 , activate(X) -> X 752.91/207.98 , activate(n__0()) -> 0() 752.91/207.98 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 752.91/207.98 , activate(n__s(X)) -> s(activate(X)) 752.91/207.98 , U13(tt(), V1, V2) -> 752.91/207.98 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 752.91/207.98 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 752.91/207.98 , U15(tt(), V2) -> U16(isNat(activate(V2))) 752.91/207.98 , isNat(n__0()) -> tt() 752.91/207.98 , isNat(n__plus(V1, V2)) -> 752.91/207.98 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 752.91/207.98 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 752.91/207.98 , U16(tt()) -> tt() 752.91/207.98 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 752.91/207.98 , U22(tt(), V1) -> U23(isNat(activate(V1))) 752.91/207.98 , U23(tt()) -> tt() 752.91/207.98 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 752.91/207.98 , U32(tt()) -> tt() 752.91/207.98 , U41(tt()) -> tt() 752.91/207.98 , s(X) -> n__s(X) 752.91/207.98 , plus(X1, X2) -> n__plus(X1, X2) 752.91/207.98 , 0() -> n__0() } 752.91/207.98 Obligation: 752.91/207.98 innermost runtime complexity 752.91/207.98 Answer: 752.91/207.98 YES(O(1),O(n^3)) 752.91/207.98 752.91/207.98 We analyse the complexity of following sub-problems (R) and (S). 752.91/207.98 Problem (S) is obtained from the input problem by shifting strict 752.91/207.98 rules from (R) into the weak component: 752.91/207.98 752.91/207.98 Problem (R): 752.91/207.98 ------------ 752.91/207.98 Strict DPs: 752.91/207.98 { activate^#(n__plus(X1, X2)) -> 752.91/207.98 c_5(activate^#(X1), activate^#(X2)) 752.91/207.98 , activate^#(n__s(X)) -> c_6(activate^#(X)) 752.91/207.98 , U51^#(tt(), N) -> 752.91/207.98 c_15(U52^#(isNatKind(activate(N)), activate(N)), 752.91/207.98 isNatKind^#(activate(N)), 752.91/207.98 activate^#(N), 752.91/207.98 activate^#(N)) 752.91/207.98 , U52^#(tt(), N) -> c_16(activate^#(N)) } 752.91/207.98 Weak DPs: 752.91/207.98 { U11^#(tt(), V1, V2) -> 752.91/207.98 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.98 isNatKind^#(activate(V1)), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V2)) 752.91/207.98 , U12^#(tt(), V1, V2) -> 752.91/207.98 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.98 isNatKind^#(activate(V2)), 752.91/207.98 activate^#(V2), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V2)) 752.91/207.98 , isNatKind^#(n__plus(V1, V2)) -> 752.91/207.98 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 752.91/207.98 isNatKind^#(activate(V1)), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V2)) 752.91/207.98 , isNatKind^#(n__s(V1)) -> 752.91/207.98 c_4(isNatKind^#(activate(V1)), activate^#(V1)) 752.91/207.98 , U13^#(tt(), V1, V2) -> 752.91/207.98 c_7(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.98 isNatKind^#(activate(V2)), 752.91/207.98 activate^#(V2), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V2)) 752.91/207.98 , U31^#(tt(), V2) -> c_8(isNatKind^#(activate(V2)), activate^#(V2)) 752.91/207.98 , U14^#(tt(), V1, V2) -> 752.91/207.98 c_9(U15^#(isNat(activate(V1)), activate(V2)), 752.91/207.98 isNat^#(activate(V1)), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V2)) 752.91/207.98 , U15^#(tt(), V2) -> c_10(isNat^#(activate(V2)), activate^#(V2)) 752.91/207.98 , isNat^#(n__plus(V1, V2)) -> 752.91/207.98 c_11(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.98 isNatKind^#(activate(V1)), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V2)) 752.91/207.98 , isNat^#(n__s(V1)) -> 752.91/207.98 c_12(U21^#(isNatKind(activate(V1)), activate(V1)), 752.91/207.98 isNatKind^#(activate(V1)), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V1)) 752.91/207.98 , U21^#(tt(), V1) -> 752.91/207.98 c_13(U22^#(isNatKind(activate(V1)), activate(V1)), 752.91/207.98 isNatKind^#(activate(V1)), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V1)) 752.91/207.98 , U22^#(tt(), V1) -> c_14(isNat^#(activate(V1)), activate^#(V1)) 752.91/207.98 , U61^#(tt(), M, N) -> 752.91/207.98 c_17(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 752.91/207.98 isNatKind^#(activate(M)), 752.91/207.98 activate^#(M), 752.91/207.98 activate^#(M), 752.91/207.98 activate^#(N)) 752.91/207.98 , U62^#(tt(), M, N) -> 752.91/207.98 c_18(U63^#(isNat(activate(N)), activate(M), activate(N)), 752.91/207.98 isNat^#(activate(N)), 752.91/207.98 activate^#(N), 752.91/207.98 activate^#(M), 752.91/207.98 activate^#(N)) 752.91/207.98 , U63^#(tt(), M, N) -> 752.91/207.98 c_19(U64^#(isNatKind(activate(N)), activate(M), activate(N)), 752.91/207.98 isNatKind^#(activate(N)), 752.91/207.98 activate^#(N), 752.91/207.98 activate^#(M), 752.91/207.98 activate^#(N)) 752.91/207.98 , U64^#(tt(), M, N) -> c_20(activate^#(N), activate^#(M)) } 752.91/207.98 Weak Trs: 752.91/207.98 { U11(tt(), V1, V2) -> 752.91/207.98 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 752.91/207.98 , U12(tt(), V1, V2) -> 752.91/207.98 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 752.91/207.98 , isNatKind(n__0()) -> tt() 752.91/207.98 , isNatKind(n__plus(V1, V2)) -> 752.91/207.98 U31(isNatKind(activate(V1)), activate(V2)) 752.91/207.98 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 752.91/207.98 , activate(X) -> X 752.91/207.98 , activate(n__0()) -> 0() 752.91/207.98 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 752.91/207.98 , activate(n__s(X)) -> s(activate(X)) 752.91/207.98 , U13(tt(), V1, V2) -> 752.91/207.98 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 752.91/207.98 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 752.91/207.98 , U15(tt(), V2) -> U16(isNat(activate(V2))) 752.91/207.98 , isNat(n__0()) -> tt() 752.91/207.98 , isNat(n__plus(V1, V2)) -> 752.91/207.98 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 752.91/207.98 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 752.91/207.98 , U16(tt()) -> tt() 752.91/207.98 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 752.91/207.98 , U22(tt(), V1) -> U23(isNat(activate(V1))) 752.91/207.98 , U23(tt()) -> tt() 752.91/207.98 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 752.91/207.98 , U32(tt()) -> tt() 752.91/207.98 , U41(tt()) -> tt() 752.91/207.98 , s(X) -> n__s(X) 752.91/207.98 , plus(X1, X2) -> n__plus(X1, X2) 752.91/207.98 , 0() -> n__0() } 752.91/207.98 StartTerms: basic terms 752.91/207.98 Strategy: innermost 752.91/207.98 752.91/207.98 Problem (S): 752.91/207.98 ------------ 752.91/207.98 Strict DPs: 752.91/207.98 { U11^#(tt(), V1, V2) -> 752.91/207.98 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.98 isNatKind^#(activate(V1)), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V2)) 752.91/207.98 , U12^#(tt(), V1, V2) -> 752.91/207.98 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.98 isNatKind^#(activate(V2)), 752.91/207.98 activate^#(V2), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V2)) 752.91/207.98 , isNatKind^#(n__plus(V1, V2)) -> 752.91/207.98 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 752.91/207.98 isNatKind^#(activate(V1)), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V2)) 752.91/207.98 , isNatKind^#(n__s(V1)) -> 752.91/207.98 c_4(isNatKind^#(activate(V1)), activate^#(V1)) 752.91/207.98 , U13^#(tt(), V1, V2) -> 752.91/207.98 c_7(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.98 isNatKind^#(activate(V2)), 752.91/207.98 activate^#(V2), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V2)) 752.91/207.98 , U31^#(tt(), V2) -> c_8(isNatKind^#(activate(V2)), activate^#(V2)) 752.91/207.98 , U14^#(tt(), V1, V2) -> 752.91/207.98 c_9(U15^#(isNat(activate(V1)), activate(V2)), 752.91/207.98 isNat^#(activate(V1)), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V2)) 752.91/207.98 , U15^#(tt(), V2) -> c_10(isNat^#(activate(V2)), activate^#(V2)) 752.91/207.98 , isNat^#(n__plus(V1, V2)) -> 752.91/207.98 c_11(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.98 isNatKind^#(activate(V1)), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V2)) 752.91/207.98 , isNat^#(n__s(V1)) -> 752.91/207.98 c_12(U21^#(isNatKind(activate(V1)), activate(V1)), 752.91/207.98 isNatKind^#(activate(V1)), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V1)) 752.91/207.98 , U21^#(tt(), V1) -> 752.91/207.98 c_13(U22^#(isNatKind(activate(V1)), activate(V1)), 752.91/207.98 isNatKind^#(activate(V1)), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V1)) 752.91/207.98 , U22^#(tt(), V1) -> c_14(isNat^#(activate(V1)), activate^#(V1)) 752.91/207.98 , U61^#(tt(), M, N) -> 752.91/207.98 c_17(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 752.91/207.98 isNatKind^#(activate(M)), 752.91/207.98 activate^#(M), 752.91/207.98 activate^#(M), 752.91/207.98 activate^#(N)) 752.91/207.98 , U62^#(tt(), M, N) -> 752.91/207.98 c_18(U63^#(isNat(activate(N)), activate(M), activate(N)), 752.91/207.98 isNat^#(activate(N)), 752.91/207.98 activate^#(N), 752.91/207.98 activate^#(M), 752.91/207.98 activate^#(N)) 752.91/207.98 , U63^#(tt(), M, N) -> 752.91/207.98 c_19(U64^#(isNatKind(activate(N)), activate(M), activate(N)), 752.91/207.98 isNatKind^#(activate(N)), 752.91/207.98 activate^#(N), 752.91/207.98 activate^#(M), 752.91/207.98 activate^#(N)) 752.91/207.98 , U64^#(tt(), M, N) -> c_20(activate^#(N), activate^#(M)) } 752.91/207.98 Weak DPs: 752.91/207.98 { activate^#(n__plus(X1, X2)) -> 752.91/207.98 c_5(activate^#(X1), activate^#(X2)) 752.91/207.98 , activate^#(n__s(X)) -> c_6(activate^#(X)) 752.91/207.98 , U51^#(tt(), N) -> 752.91/207.98 c_15(U52^#(isNatKind(activate(N)), activate(N)), 752.91/207.98 isNatKind^#(activate(N)), 752.91/207.98 activate^#(N), 752.91/207.98 activate^#(N)) 752.91/207.98 , U52^#(tt(), N) -> c_16(activate^#(N)) } 752.91/207.98 Weak Trs: 752.91/207.98 { U11(tt(), V1, V2) -> 752.91/207.98 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 752.91/207.98 , U12(tt(), V1, V2) -> 752.91/207.98 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 752.91/207.98 , isNatKind(n__0()) -> tt() 752.91/207.98 , isNatKind(n__plus(V1, V2)) -> 752.91/207.98 U31(isNatKind(activate(V1)), activate(V2)) 752.91/207.98 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 752.91/207.98 , activate(X) -> X 752.91/207.98 , activate(n__0()) -> 0() 752.91/207.98 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 752.91/207.98 , activate(n__s(X)) -> s(activate(X)) 752.91/207.98 , U13(tt(), V1, V2) -> 752.91/207.98 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 752.91/207.98 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 752.91/207.98 , U15(tt(), V2) -> U16(isNat(activate(V2))) 752.91/207.98 , isNat(n__0()) -> tt() 752.91/207.98 , isNat(n__plus(V1, V2)) -> 752.91/207.98 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 752.91/207.98 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 752.91/207.98 , U16(tt()) -> tt() 752.91/207.98 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 752.91/207.98 , U22(tt(), V1) -> U23(isNat(activate(V1))) 752.91/207.98 , U23(tt()) -> tt() 752.91/207.98 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 752.91/207.98 , U32(tt()) -> tt() 752.91/207.98 , U41(tt()) -> tt() 752.91/207.98 , s(X) -> n__s(X) 752.91/207.98 , plus(X1, X2) -> n__plus(X1, X2) 752.91/207.98 , 0() -> n__0() } 752.91/207.98 StartTerms: basic terms 752.91/207.98 Strategy: innermost 752.91/207.98 752.91/207.98 Overall, the transformation results in the following sub-problem(s): 752.91/207.98 752.91/207.98 Generated new problems: 752.91/207.98 ----------------------- 752.91/207.98 R) Strict DPs: 752.91/207.98 { activate^#(n__plus(X1, X2)) -> 752.91/207.98 c_5(activate^#(X1), activate^#(X2)) 752.91/207.98 , activate^#(n__s(X)) -> c_6(activate^#(X)) 752.91/207.98 , U51^#(tt(), N) -> 752.91/207.98 c_15(U52^#(isNatKind(activate(N)), activate(N)), 752.91/207.98 isNatKind^#(activate(N)), 752.91/207.98 activate^#(N), 752.91/207.98 activate^#(N)) 752.91/207.98 , U52^#(tt(), N) -> c_16(activate^#(N)) } 752.91/207.98 Weak DPs: 752.91/207.98 { U11^#(tt(), V1, V2) -> 752.91/207.98 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.98 isNatKind^#(activate(V1)), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V2)) 752.91/207.98 , U12^#(tt(), V1, V2) -> 752.91/207.98 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.98 isNatKind^#(activate(V2)), 752.91/207.98 activate^#(V2), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V2)) 752.91/207.98 , isNatKind^#(n__plus(V1, V2)) -> 752.91/207.98 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 752.91/207.98 isNatKind^#(activate(V1)), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V2)) 752.91/207.98 , isNatKind^#(n__s(V1)) -> 752.91/207.98 c_4(isNatKind^#(activate(V1)), activate^#(V1)) 752.91/207.98 , U13^#(tt(), V1, V2) -> 752.91/207.98 c_7(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.98 isNatKind^#(activate(V2)), 752.91/207.98 activate^#(V2), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V2)) 752.91/207.98 , U31^#(tt(), V2) -> c_8(isNatKind^#(activate(V2)), activate^#(V2)) 752.91/207.98 , U14^#(tt(), V1, V2) -> 752.91/207.98 c_9(U15^#(isNat(activate(V1)), activate(V2)), 752.91/207.98 isNat^#(activate(V1)), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V2)) 752.91/207.98 , U15^#(tt(), V2) -> c_10(isNat^#(activate(V2)), activate^#(V2)) 752.91/207.98 , isNat^#(n__plus(V1, V2)) -> 752.91/207.98 c_11(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.98 isNatKind^#(activate(V1)), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V2)) 752.91/207.98 , isNat^#(n__s(V1)) -> 752.91/207.98 c_12(U21^#(isNatKind(activate(V1)), activate(V1)), 752.91/207.98 isNatKind^#(activate(V1)), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V1)) 752.91/207.98 , U21^#(tt(), V1) -> 752.91/207.98 c_13(U22^#(isNatKind(activate(V1)), activate(V1)), 752.91/207.98 isNatKind^#(activate(V1)), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V1)) 752.91/207.98 , U22^#(tt(), V1) -> c_14(isNat^#(activate(V1)), activate^#(V1)) 752.91/207.98 , U61^#(tt(), M, N) -> 752.91/207.98 c_17(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 752.91/207.98 isNatKind^#(activate(M)), 752.91/207.98 activate^#(M), 752.91/207.98 activate^#(M), 752.91/207.98 activate^#(N)) 752.91/207.98 , U62^#(tt(), M, N) -> 752.91/207.98 c_18(U63^#(isNat(activate(N)), activate(M), activate(N)), 752.91/207.98 isNat^#(activate(N)), 752.91/207.98 activate^#(N), 752.91/207.98 activate^#(M), 752.91/207.98 activate^#(N)) 752.91/207.98 , U63^#(tt(), M, N) -> 752.91/207.98 c_19(U64^#(isNatKind(activate(N)), activate(M), activate(N)), 752.91/207.98 isNatKind^#(activate(N)), 752.91/207.98 activate^#(N), 752.91/207.98 activate^#(M), 752.91/207.98 activate^#(N)) 752.91/207.98 , U64^#(tt(), M, N) -> c_20(activate^#(N), activate^#(M)) } 752.91/207.98 Weak Trs: 752.91/207.98 { U11(tt(), V1, V2) -> 752.91/207.98 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 752.91/207.98 , U12(tt(), V1, V2) -> 752.91/207.98 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 752.91/207.98 , isNatKind(n__0()) -> tt() 752.91/207.98 , isNatKind(n__plus(V1, V2)) -> 752.91/207.98 U31(isNatKind(activate(V1)), activate(V2)) 752.91/207.98 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 752.91/207.98 , activate(X) -> X 752.91/207.98 , activate(n__0()) -> 0() 752.91/207.98 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 752.91/207.98 , activate(n__s(X)) -> s(activate(X)) 752.91/207.98 , U13(tt(), V1, V2) -> 752.91/207.98 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 752.91/207.98 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 752.91/207.98 , U15(tt(), V2) -> U16(isNat(activate(V2))) 752.91/207.98 , isNat(n__0()) -> tt() 752.91/207.98 , isNat(n__plus(V1, V2)) -> 752.91/207.98 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 752.91/207.98 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 752.91/207.98 , U16(tt()) -> tt() 752.91/207.98 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 752.91/207.98 , U22(tt(), V1) -> U23(isNat(activate(V1))) 752.91/207.98 , U23(tt()) -> tt() 752.91/207.98 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 752.91/207.98 , U32(tt()) -> tt() 752.91/207.98 , U41(tt()) -> tt() 752.91/207.98 , s(X) -> n__s(X) 752.91/207.98 , plus(X1, X2) -> n__plus(X1, X2) 752.91/207.98 , 0() -> n__0() } 752.91/207.98 StartTerms: basic terms 752.91/207.98 Strategy: innermost 752.91/207.98 752.91/207.98 This problem was proven YES(O(1),O(n^3)). 752.91/207.98 752.91/207.98 S) Strict DPs: 752.91/207.98 { U11^#(tt(), V1, V2) -> 752.91/207.98 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.98 isNatKind^#(activate(V1)), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V2)) 752.91/207.98 , U12^#(tt(), V1, V2) -> 752.91/207.98 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.98 isNatKind^#(activate(V2)), 752.91/207.98 activate^#(V2), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V2)) 752.91/207.98 , isNatKind^#(n__plus(V1, V2)) -> 752.91/207.98 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 752.91/207.98 isNatKind^#(activate(V1)), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V2)) 752.91/207.98 , isNatKind^#(n__s(V1)) -> 752.91/207.98 c_4(isNatKind^#(activate(V1)), activate^#(V1)) 752.91/207.98 , U13^#(tt(), V1, V2) -> 752.91/207.98 c_7(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.98 isNatKind^#(activate(V2)), 752.91/207.98 activate^#(V2), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V2)) 752.91/207.98 , U31^#(tt(), V2) -> c_8(isNatKind^#(activate(V2)), activate^#(V2)) 752.91/207.98 , U14^#(tt(), V1, V2) -> 752.91/207.98 c_9(U15^#(isNat(activate(V1)), activate(V2)), 752.91/207.98 isNat^#(activate(V1)), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V2)) 752.91/207.98 , U15^#(tt(), V2) -> c_10(isNat^#(activate(V2)), activate^#(V2)) 752.91/207.98 , isNat^#(n__plus(V1, V2)) -> 752.91/207.98 c_11(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.98 isNatKind^#(activate(V1)), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V2)) 752.91/207.98 , isNat^#(n__s(V1)) -> 752.91/207.98 c_12(U21^#(isNatKind(activate(V1)), activate(V1)), 752.91/207.98 isNatKind^#(activate(V1)), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V1)) 752.91/207.98 , U21^#(tt(), V1) -> 752.91/207.98 c_13(U22^#(isNatKind(activate(V1)), activate(V1)), 752.91/207.98 isNatKind^#(activate(V1)), 752.91/207.98 activate^#(V1), 752.91/207.98 activate^#(V1)) 752.91/207.98 , U22^#(tt(), V1) -> c_14(isNat^#(activate(V1)), activate^#(V1)) 752.91/207.98 , U61^#(tt(), M, N) -> 752.91/207.98 c_17(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 752.91/207.98 isNatKind^#(activate(M)), 752.91/207.98 activate^#(M), 752.91/207.98 activate^#(M), 752.91/207.98 activate^#(N)) 752.91/207.98 , U62^#(tt(), M, N) -> 752.91/207.98 c_18(U63^#(isNat(activate(N)), activate(M), activate(N)), 752.91/207.98 isNat^#(activate(N)), 752.91/207.98 activate^#(N), 752.91/207.98 activate^#(M), 752.91/207.98 activate^#(N)) 752.91/207.98 , U63^#(tt(), M, N) -> 752.91/207.98 c_19(U64^#(isNatKind(activate(N)), activate(M), activate(N)), 752.91/207.98 isNatKind^#(activate(N)), 752.91/207.98 activate^#(N), 752.91/207.98 activate^#(M), 752.91/207.98 activate^#(N)) 752.91/207.98 , U64^#(tt(), M, N) -> c_20(activate^#(N), activate^#(M)) } 752.91/207.98 Weak DPs: 752.91/207.98 { activate^#(n__plus(X1, X2)) -> 752.91/207.98 c_5(activate^#(X1), activate^#(X2)) 752.91/207.98 , activate^#(n__s(X)) -> c_6(activate^#(X)) 752.91/207.98 , U51^#(tt(), N) -> 752.91/207.98 c_15(U52^#(isNatKind(activate(N)), activate(N)), 752.91/207.98 isNatKind^#(activate(N)), 752.91/207.98 activate^#(N), 752.91/207.98 activate^#(N)) 752.91/207.98 , U52^#(tt(), N) -> c_16(activate^#(N)) } 752.91/207.98 Weak Trs: 752.91/207.98 { U11(tt(), V1, V2) -> 752.91/207.98 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 752.91/207.98 , U12(tt(), V1, V2) -> 752.91/207.98 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 752.91/207.98 , isNatKind(n__0()) -> tt() 752.91/207.98 , isNatKind(n__plus(V1, V2)) -> 752.91/207.98 U31(isNatKind(activate(V1)), activate(V2)) 752.91/207.98 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 752.91/207.98 , activate(X) -> X 752.91/207.98 , activate(n__0()) -> 0() 752.91/207.98 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 752.91/207.98 , activate(n__s(X)) -> s(activate(X)) 752.91/207.98 , U13(tt(), V1, V2) -> 752.91/207.98 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 752.91/207.98 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 752.91/207.98 , U15(tt(), V2) -> U16(isNat(activate(V2))) 752.91/207.98 , isNat(n__0()) -> tt() 752.91/207.98 , isNat(n__plus(V1, V2)) -> 752.91/207.98 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 752.91/207.98 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 752.91/207.98 , U16(tt()) -> tt() 752.91/207.98 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 752.91/207.98 , U22(tt(), V1) -> U23(isNat(activate(V1))) 752.91/207.99 , U23(tt()) -> tt() 752.91/207.99 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 752.91/207.99 , U32(tt()) -> tt() 752.91/207.99 , U41(tt()) -> tt() 752.91/207.99 , s(X) -> n__s(X) 752.91/207.99 , plus(X1, X2) -> n__plus(X1, X2) 752.91/207.99 , 0() -> n__0() } 752.91/207.99 StartTerms: basic terms 752.91/207.99 Strategy: innermost 752.91/207.99 752.91/207.99 This problem was proven YES(O(1),O(n^2)). 752.91/207.99 752.91/207.99 752.91/207.99 Proofs for generated problems: 752.91/207.99 ------------------------------ 752.91/207.99 R) We are left with following problem, upon which TcT provides the 752.91/207.99 certificate YES(O(1),O(n^3)). 752.91/207.99 752.91/207.99 Strict DPs: 752.91/207.99 { activate^#(n__plus(X1, X2)) -> 752.91/207.99 c_5(activate^#(X1), activate^#(X2)) 752.91/207.99 , activate^#(n__s(X)) -> c_6(activate^#(X)) 752.91/207.99 , U51^#(tt(), N) -> 752.91/207.99 c_15(U52^#(isNatKind(activate(N)), activate(N)), 752.91/207.99 isNatKind^#(activate(N)), 752.91/207.99 activate^#(N), 752.91/207.99 activate^#(N)) 752.91/207.99 , U52^#(tt(), N) -> c_16(activate^#(N)) } 752.91/207.99 Weak DPs: 752.91/207.99 { U11^#(tt(), V1, V2) -> 752.91/207.99 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.99 isNatKind^#(activate(V1)), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V2)) 752.91/207.99 , U12^#(tt(), V1, V2) -> 752.91/207.99 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.99 isNatKind^#(activate(V2)), 752.91/207.99 activate^#(V2), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V2)) 752.91/207.99 , isNatKind^#(n__plus(V1, V2)) -> 752.91/207.99 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 752.91/207.99 isNatKind^#(activate(V1)), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V2)) 752.91/207.99 , isNatKind^#(n__s(V1)) -> 752.91/207.99 c_4(isNatKind^#(activate(V1)), activate^#(V1)) 752.91/207.99 , U13^#(tt(), V1, V2) -> 752.91/207.99 c_7(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.99 isNatKind^#(activate(V2)), 752.91/207.99 activate^#(V2), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V2)) 752.91/207.99 , U31^#(tt(), V2) -> c_8(isNatKind^#(activate(V2)), activate^#(V2)) 752.91/207.99 , U14^#(tt(), V1, V2) -> 752.91/207.99 c_9(U15^#(isNat(activate(V1)), activate(V2)), 752.91/207.99 isNat^#(activate(V1)), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V2)) 752.91/207.99 , U15^#(tt(), V2) -> c_10(isNat^#(activate(V2)), activate^#(V2)) 752.91/207.99 , isNat^#(n__plus(V1, V2)) -> 752.91/207.99 c_11(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.99 isNatKind^#(activate(V1)), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V2)) 752.91/207.99 , isNat^#(n__s(V1)) -> 752.91/207.99 c_12(U21^#(isNatKind(activate(V1)), activate(V1)), 752.91/207.99 isNatKind^#(activate(V1)), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V1)) 752.91/207.99 , U21^#(tt(), V1) -> 752.91/207.99 c_13(U22^#(isNatKind(activate(V1)), activate(V1)), 752.91/207.99 isNatKind^#(activate(V1)), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V1)) 752.91/207.99 , U22^#(tt(), V1) -> c_14(isNat^#(activate(V1)), activate^#(V1)) 752.91/207.99 , U61^#(tt(), M, N) -> 752.91/207.99 c_17(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 752.91/207.99 isNatKind^#(activate(M)), 752.91/207.99 activate^#(M), 752.91/207.99 activate^#(M), 752.91/207.99 activate^#(N)) 752.91/207.99 , U62^#(tt(), M, N) -> 752.91/207.99 c_18(U63^#(isNat(activate(N)), activate(M), activate(N)), 752.91/207.99 isNat^#(activate(N)), 752.91/207.99 activate^#(N), 752.91/207.99 activate^#(M), 752.91/207.99 activate^#(N)) 752.91/207.99 , U63^#(tt(), M, N) -> 752.91/207.99 c_19(U64^#(isNatKind(activate(N)), activate(M), activate(N)), 752.91/207.99 isNatKind^#(activate(N)), 752.91/207.99 activate^#(N), 752.91/207.99 activate^#(M), 752.91/207.99 activate^#(N)) 752.91/207.99 , U64^#(tt(), M, N) -> c_20(activate^#(N), activate^#(M)) } 752.91/207.99 Weak Trs: 752.91/207.99 { U11(tt(), V1, V2) -> 752.91/207.99 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 752.91/207.99 , U12(tt(), V1, V2) -> 752.91/207.99 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 752.91/207.99 , isNatKind(n__0()) -> tt() 752.91/207.99 , isNatKind(n__plus(V1, V2)) -> 752.91/207.99 U31(isNatKind(activate(V1)), activate(V2)) 752.91/207.99 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 752.91/207.99 , activate(X) -> X 752.91/207.99 , activate(n__0()) -> 0() 752.91/207.99 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 752.91/207.99 , activate(n__s(X)) -> s(activate(X)) 752.91/207.99 , U13(tt(), V1, V2) -> 752.91/207.99 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 752.91/207.99 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 752.91/207.99 , U15(tt(), V2) -> U16(isNat(activate(V2))) 752.91/207.99 , isNat(n__0()) -> tt() 752.91/207.99 , isNat(n__plus(V1, V2)) -> 752.91/207.99 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 752.91/207.99 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 752.91/207.99 , U16(tt()) -> tt() 752.91/207.99 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 752.91/207.99 , U22(tt(), V1) -> U23(isNat(activate(V1))) 752.91/207.99 , U23(tt()) -> tt() 752.91/207.99 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 752.91/207.99 , U32(tt()) -> tt() 752.91/207.99 , U41(tt()) -> tt() 752.91/207.99 , s(X) -> n__s(X) 752.91/207.99 , plus(X1, X2) -> n__plus(X1, X2) 752.91/207.99 , 0() -> n__0() } 752.91/207.99 Obligation: 752.91/207.99 innermost runtime complexity 752.91/207.99 Answer: 752.91/207.99 YES(O(1),O(n^3)) 752.91/207.99 752.91/207.99 We analyse the complexity of following sub-problems (R) and (S). 752.91/207.99 Problem (S) is obtained from the input problem by shifting strict 752.91/207.99 rules from (R) into the weak component: 752.91/207.99 752.91/207.99 Problem (R): 752.91/207.99 ------------ 752.91/207.99 Strict DPs: 752.91/207.99 { activate^#(n__plus(X1, X2)) -> 752.91/207.99 c_5(activate^#(X1), activate^#(X2)) 752.91/207.99 , activate^#(n__s(X)) -> c_6(activate^#(X)) 752.91/207.99 , U51^#(tt(), N) -> 752.91/207.99 c_15(U52^#(isNatKind(activate(N)), activate(N)), 752.91/207.99 isNatKind^#(activate(N)), 752.91/207.99 activate^#(N), 752.91/207.99 activate^#(N)) } 752.91/207.99 Weak DPs: 752.91/207.99 { U11^#(tt(), V1, V2) -> 752.91/207.99 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.99 isNatKind^#(activate(V1)), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V2)) 752.91/207.99 , U12^#(tt(), V1, V2) -> 752.91/207.99 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.99 isNatKind^#(activate(V2)), 752.91/207.99 activate^#(V2), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V2)) 752.91/207.99 , isNatKind^#(n__plus(V1, V2)) -> 752.91/207.99 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 752.91/207.99 isNatKind^#(activate(V1)), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V2)) 752.91/207.99 , isNatKind^#(n__s(V1)) -> 752.91/207.99 c_4(isNatKind^#(activate(V1)), activate^#(V1)) 752.91/207.99 , U13^#(tt(), V1, V2) -> 752.91/207.99 c_7(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.99 isNatKind^#(activate(V2)), 752.91/207.99 activate^#(V2), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V2)) 752.91/207.99 , U31^#(tt(), V2) -> c_8(isNatKind^#(activate(V2)), activate^#(V2)) 752.91/207.99 , U14^#(tt(), V1, V2) -> 752.91/207.99 c_9(U15^#(isNat(activate(V1)), activate(V2)), 752.91/207.99 isNat^#(activate(V1)), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V2)) 752.91/207.99 , U15^#(tt(), V2) -> c_10(isNat^#(activate(V2)), activate^#(V2)) 752.91/207.99 , isNat^#(n__plus(V1, V2)) -> 752.91/207.99 c_11(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.99 isNatKind^#(activate(V1)), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V2)) 752.91/207.99 , isNat^#(n__s(V1)) -> 752.91/207.99 c_12(U21^#(isNatKind(activate(V1)), activate(V1)), 752.91/207.99 isNatKind^#(activate(V1)), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V1)) 752.91/207.99 , U21^#(tt(), V1) -> 752.91/207.99 c_13(U22^#(isNatKind(activate(V1)), activate(V1)), 752.91/207.99 isNatKind^#(activate(V1)), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V1)) 752.91/207.99 , U22^#(tt(), V1) -> c_14(isNat^#(activate(V1)), activate^#(V1)) 752.91/207.99 , U52^#(tt(), N) -> c_16(activate^#(N)) 752.91/207.99 , U61^#(tt(), M, N) -> 752.91/207.99 c_17(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 752.91/207.99 isNatKind^#(activate(M)), 752.91/207.99 activate^#(M), 752.91/207.99 activate^#(M), 752.91/207.99 activate^#(N)) 752.91/207.99 , U62^#(tt(), M, N) -> 752.91/207.99 c_18(U63^#(isNat(activate(N)), activate(M), activate(N)), 752.91/207.99 isNat^#(activate(N)), 752.91/207.99 activate^#(N), 752.91/207.99 activate^#(M), 752.91/207.99 activate^#(N)) 752.91/207.99 , U63^#(tt(), M, N) -> 752.91/207.99 c_19(U64^#(isNatKind(activate(N)), activate(M), activate(N)), 752.91/207.99 isNatKind^#(activate(N)), 752.91/207.99 activate^#(N), 752.91/207.99 activate^#(M), 752.91/207.99 activate^#(N)) 752.91/207.99 , U64^#(tt(), M, N) -> c_20(activate^#(N), activate^#(M)) } 752.91/207.99 Weak Trs: 752.91/207.99 { U11(tt(), V1, V2) -> 752.91/207.99 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 752.91/207.99 , U12(tt(), V1, V2) -> 752.91/207.99 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 752.91/207.99 , isNatKind(n__0()) -> tt() 752.91/207.99 , isNatKind(n__plus(V1, V2)) -> 752.91/207.99 U31(isNatKind(activate(V1)), activate(V2)) 752.91/207.99 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 752.91/207.99 , activate(X) -> X 752.91/207.99 , activate(n__0()) -> 0() 752.91/207.99 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 752.91/207.99 , activate(n__s(X)) -> s(activate(X)) 752.91/207.99 , U13(tt(), V1, V2) -> 752.91/207.99 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 752.91/207.99 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 752.91/207.99 , U15(tt(), V2) -> U16(isNat(activate(V2))) 752.91/207.99 , isNat(n__0()) -> tt() 752.91/207.99 , isNat(n__plus(V1, V2)) -> 752.91/207.99 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 752.91/207.99 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 752.91/207.99 , U16(tt()) -> tt() 752.91/207.99 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 752.91/207.99 , U22(tt(), V1) -> U23(isNat(activate(V1))) 752.91/207.99 , U23(tt()) -> tt() 752.91/207.99 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 752.91/207.99 , U32(tt()) -> tt() 752.91/207.99 , U41(tt()) -> tt() 752.91/207.99 , s(X) -> n__s(X) 752.91/207.99 , plus(X1, X2) -> n__plus(X1, X2) 752.91/207.99 , 0() -> n__0() } 752.91/207.99 StartTerms: basic terms 752.91/207.99 Strategy: innermost 752.91/207.99 752.91/207.99 Problem (S): 752.91/207.99 ------------ 752.91/207.99 Strict DPs: { U52^#(tt(), N) -> c_16(activate^#(N)) } 752.91/207.99 Weak DPs: 752.91/207.99 { U11^#(tt(), V1, V2) -> 752.91/207.99 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.99 isNatKind^#(activate(V1)), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V2)) 752.91/207.99 , U12^#(tt(), V1, V2) -> 752.91/207.99 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.99 isNatKind^#(activate(V2)), 752.91/207.99 activate^#(V2), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V2)) 752.91/207.99 , isNatKind^#(n__plus(V1, V2)) -> 752.91/207.99 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 752.91/207.99 isNatKind^#(activate(V1)), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V2)) 752.91/207.99 , isNatKind^#(n__s(V1)) -> 752.91/207.99 c_4(isNatKind^#(activate(V1)), activate^#(V1)) 752.91/207.99 , activate^#(n__plus(X1, X2)) -> 752.91/207.99 c_5(activate^#(X1), activate^#(X2)) 752.91/207.99 , activate^#(n__s(X)) -> c_6(activate^#(X)) 752.91/207.99 , U13^#(tt(), V1, V2) -> 752.91/207.99 c_7(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.99 isNatKind^#(activate(V2)), 752.91/207.99 activate^#(V2), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V2)) 752.91/207.99 , U31^#(tt(), V2) -> c_8(isNatKind^#(activate(V2)), activate^#(V2)) 752.91/207.99 , U14^#(tt(), V1, V2) -> 752.91/207.99 c_9(U15^#(isNat(activate(V1)), activate(V2)), 752.91/207.99 isNat^#(activate(V1)), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V2)) 752.91/207.99 , U15^#(tt(), V2) -> c_10(isNat^#(activate(V2)), activate^#(V2)) 752.91/207.99 , isNat^#(n__plus(V1, V2)) -> 752.91/207.99 c_11(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.99 isNatKind^#(activate(V1)), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V2)) 752.91/207.99 , isNat^#(n__s(V1)) -> 752.91/207.99 c_12(U21^#(isNatKind(activate(V1)), activate(V1)), 752.91/207.99 isNatKind^#(activate(V1)), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V1)) 752.91/207.99 , U21^#(tt(), V1) -> 752.91/207.99 c_13(U22^#(isNatKind(activate(V1)), activate(V1)), 752.91/207.99 isNatKind^#(activate(V1)), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V1)) 752.91/207.99 , U22^#(tt(), V1) -> c_14(isNat^#(activate(V1)), activate^#(V1)) 752.91/207.99 , U51^#(tt(), N) -> 752.91/207.99 c_15(U52^#(isNatKind(activate(N)), activate(N)), 752.91/207.99 isNatKind^#(activate(N)), 752.91/207.99 activate^#(N), 752.91/207.99 activate^#(N)) 752.91/207.99 , U61^#(tt(), M, N) -> 752.91/207.99 c_17(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 752.91/207.99 isNatKind^#(activate(M)), 752.91/207.99 activate^#(M), 752.91/207.99 activate^#(M), 752.91/207.99 activate^#(N)) 752.91/207.99 , U62^#(tt(), M, N) -> 752.91/207.99 c_18(U63^#(isNat(activate(N)), activate(M), activate(N)), 752.91/207.99 isNat^#(activate(N)), 752.91/207.99 activate^#(N), 752.91/207.99 activate^#(M), 752.91/207.99 activate^#(N)) 752.91/207.99 , U63^#(tt(), M, N) -> 752.91/207.99 c_19(U64^#(isNatKind(activate(N)), activate(M), activate(N)), 752.91/207.99 isNatKind^#(activate(N)), 752.91/207.99 activate^#(N), 752.91/207.99 activate^#(M), 752.91/207.99 activate^#(N)) 752.91/207.99 , U64^#(tt(), M, N) -> c_20(activate^#(N), activate^#(M)) } 752.91/207.99 Weak Trs: 752.91/207.99 { U11(tt(), V1, V2) -> 752.91/207.99 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 752.91/207.99 , U12(tt(), V1, V2) -> 752.91/207.99 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 752.91/207.99 , isNatKind(n__0()) -> tt() 752.91/207.99 , isNatKind(n__plus(V1, V2)) -> 752.91/207.99 U31(isNatKind(activate(V1)), activate(V2)) 752.91/207.99 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 752.91/207.99 , activate(X) -> X 752.91/207.99 , activate(n__0()) -> 0() 752.91/207.99 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 752.91/207.99 , activate(n__s(X)) -> s(activate(X)) 752.91/207.99 , U13(tt(), V1, V2) -> 752.91/207.99 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 752.91/207.99 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 752.91/207.99 , U15(tt(), V2) -> U16(isNat(activate(V2))) 752.91/207.99 , isNat(n__0()) -> tt() 752.91/207.99 , isNat(n__plus(V1, V2)) -> 752.91/207.99 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 752.91/207.99 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 752.91/207.99 , U16(tt()) -> tt() 752.91/207.99 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 752.91/207.99 , U22(tt(), V1) -> U23(isNat(activate(V1))) 752.91/207.99 , U23(tt()) -> tt() 752.91/207.99 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 752.91/207.99 , U32(tt()) -> tt() 752.91/207.99 , U41(tt()) -> tt() 752.91/207.99 , s(X) -> n__s(X) 752.91/207.99 , plus(X1, X2) -> n__plus(X1, X2) 752.91/207.99 , 0() -> n__0() } 752.91/207.99 StartTerms: basic terms 752.91/207.99 Strategy: innermost 752.91/207.99 752.91/207.99 Overall, the transformation results in the following sub-problem(s): 752.91/207.99 752.91/207.99 Generated new problems: 752.91/207.99 ----------------------- 752.91/207.99 R) Strict DPs: 752.91/207.99 { activate^#(n__plus(X1, X2)) -> 752.91/207.99 c_5(activate^#(X1), activate^#(X2)) 752.91/207.99 , activate^#(n__s(X)) -> c_6(activate^#(X)) 752.91/207.99 , U51^#(tt(), N) -> 752.91/207.99 c_15(U52^#(isNatKind(activate(N)), activate(N)), 752.91/207.99 isNatKind^#(activate(N)), 752.91/207.99 activate^#(N), 752.91/207.99 activate^#(N)) } 752.91/207.99 Weak DPs: 752.91/207.99 { U11^#(tt(), V1, V2) -> 752.91/207.99 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.99 isNatKind^#(activate(V1)), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V2)) 752.91/207.99 , U12^#(tt(), V1, V2) -> 752.91/207.99 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.99 isNatKind^#(activate(V2)), 752.91/207.99 activate^#(V2), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V2)) 752.91/207.99 , isNatKind^#(n__plus(V1, V2)) -> 752.91/207.99 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 752.91/207.99 isNatKind^#(activate(V1)), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V2)) 752.91/207.99 , isNatKind^#(n__s(V1)) -> 752.91/207.99 c_4(isNatKind^#(activate(V1)), activate^#(V1)) 752.91/207.99 , U13^#(tt(), V1, V2) -> 752.91/207.99 c_7(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 752.91/207.99 isNatKind^#(activate(V2)), 752.91/207.99 activate^#(V2), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V2)) 752.91/207.99 , U31^#(tt(), V2) -> c_8(isNatKind^#(activate(V2)), activate^#(V2)) 752.91/207.99 , U14^#(tt(), V1, V2) -> 752.91/207.99 c_9(U15^#(isNat(activate(V1)), activate(V2)), 752.91/207.99 isNat^#(activate(V1)), 752.91/207.99 activate^#(V1), 752.91/207.99 activate^#(V2)) 752.91/207.99 , U15^#(tt(), V2) -> c_10(isNat^#(activate(V2)), activate^#(V2)) 752.91/207.99 , isNat^#(n__plus(V1, V2)) -> 752.91/207.99 c_11(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 752.91/207.99 isNatKind^#(activate(V1)), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V2)) 753.12/208.00 , isNat^#(n__s(V1)) -> 753.12/208.00 c_12(U21^#(isNatKind(activate(V1)), activate(V1)), 753.12/208.00 isNatKind^#(activate(V1)), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V1)) 753.12/208.00 , U21^#(tt(), V1) -> 753.12/208.00 c_13(U22^#(isNatKind(activate(V1)), activate(V1)), 753.12/208.00 isNatKind^#(activate(V1)), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V1)) 753.12/208.00 , U22^#(tt(), V1) -> c_14(isNat^#(activate(V1)), activate^#(V1)) 753.12/208.00 , U52^#(tt(), N) -> c_16(activate^#(N)) 753.12/208.00 , U61^#(tt(), M, N) -> 753.12/208.00 c_17(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.12/208.00 isNatKind^#(activate(M)), 753.12/208.00 activate^#(M), 753.12/208.00 activate^#(M), 753.12/208.00 activate^#(N)) 753.12/208.00 , U62^#(tt(), M, N) -> 753.12/208.00 c_18(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.12/208.00 isNat^#(activate(N)), 753.12/208.00 activate^#(N), 753.12/208.00 activate^#(M), 753.12/208.00 activate^#(N)) 753.12/208.00 , U63^#(tt(), M, N) -> 753.12/208.00 c_19(U64^#(isNatKind(activate(N)), activate(M), activate(N)), 753.12/208.00 isNatKind^#(activate(N)), 753.12/208.00 activate^#(N), 753.12/208.00 activate^#(M), 753.12/208.00 activate^#(N)) 753.12/208.00 , U64^#(tt(), M, N) -> c_20(activate^#(N), activate^#(M)) } 753.12/208.00 Weak Trs: 753.12/208.00 { U11(tt(), V1, V2) -> 753.12/208.00 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.00 , U12(tt(), V1, V2) -> 753.12/208.00 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.00 , isNatKind(n__0()) -> tt() 753.12/208.00 , isNatKind(n__plus(V1, V2)) -> 753.12/208.00 U31(isNatKind(activate(V1)), activate(V2)) 753.12/208.00 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.12/208.00 , activate(X) -> X 753.12/208.00 , activate(n__0()) -> 0() 753.12/208.00 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.12/208.00 , activate(n__s(X)) -> s(activate(X)) 753.12/208.00 , U13(tt(), V1, V2) -> 753.12/208.00 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.00 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.12/208.00 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.12/208.00 , isNat(n__0()) -> tt() 753.12/208.00 , isNat(n__plus(V1, V2)) -> 753.12/208.00 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.00 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.12/208.00 , U16(tt()) -> tt() 753.12/208.00 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.12/208.00 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.12/208.00 , U23(tt()) -> tt() 753.12/208.00 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.12/208.00 , U32(tt()) -> tt() 753.12/208.00 , U41(tt()) -> tt() 753.12/208.00 , s(X) -> n__s(X) 753.12/208.00 , plus(X1, X2) -> n__plus(X1, X2) 753.12/208.00 , 0() -> n__0() } 753.12/208.00 StartTerms: basic terms 753.12/208.00 Strategy: innermost 753.12/208.00 753.12/208.00 This problem was proven YES(O(1),O(n^3)). 753.12/208.00 753.12/208.00 S) Strict DPs: { U52^#(tt(), N) -> c_16(activate^#(N)) } 753.12/208.00 Weak DPs: 753.12/208.00 { U11^#(tt(), V1, V2) -> 753.12/208.00 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.12/208.00 isNatKind^#(activate(V1)), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V2)) 753.12/208.00 , U12^#(tt(), V1, V2) -> 753.12/208.00 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.12/208.00 isNatKind^#(activate(V2)), 753.12/208.00 activate^#(V2), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V2)) 753.12/208.00 , isNatKind^#(n__plus(V1, V2)) -> 753.12/208.00 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.12/208.00 isNatKind^#(activate(V1)), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V2)) 753.12/208.00 , isNatKind^#(n__s(V1)) -> 753.12/208.00 c_4(isNatKind^#(activate(V1)), activate^#(V1)) 753.12/208.00 , activate^#(n__plus(X1, X2)) -> 753.12/208.00 c_5(activate^#(X1), activate^#(X2)) 753.12/208.00 , activate^#(n__s(X)) -> c_6(activate^#(X)) 753.12/208.00 , U13^#(tt(), V1, V2) -> 753.12/208.00 c_7(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.12/208.00 isNatKind^#(activate(V2)), 753.12/208.00 activate^#(V2), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V2)) 753.12/208.00 , U31^#(tt(), V2) -> c_8(isNatKind^#(activate(V2)), activate^#(V2)) 753.12/208.00 , U14^#(tt(), V1, V2) -> 753.12/208.00 c_9(U15^#(isNat(activate(V1)), activate(V2)), 753.12/208.00 isNat^#(activate(V1)), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V2)) 753.12/208.00 , U15^#(tt(), V2) -> c_10(isNat^#(activate(V2)), activate^#(V2)) 753.12/208.00 , isNat^#(n__plus(V1, V2)) -> 753.12/208.00 c_11(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.12/208.00 isNatKind^#(activate(V1)), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V2)) 753.12/208.00 , isNat^#(n__s(V1)) -> 753.12/208.00 c_12(U21^#(isNatKind(activate(V1)), activate(V1)), 753.12/208.00 isNatKind^#(activate(V1)), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V1)) 753.12/208.00 , U21^#(tt(), V1) -> 753.12/208.00 c_13(U22^#(isNatKind(activate(V1)), activate(V1)), 753.12/208.00 isNatKind^#(activate(V1)), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V1)) 753.12/208.00 , U22^#(tt(), V1) -> c_14(isNat^#(activate(V1)), activate^#(V1)) 753.12/208.00 , U51^#(tt(), N) -> 753.12/208.00 c_15(U52^#(isNatKind(activate(N)), activate(N)), 753.12/208.00 isNatKind^#(activate(N)), 753.12/208.00 activate^#(N), 753.12/208.00 activate^#(N)) 753.12/208.00 , U61^#(tt(), M, N) -> 753.12/208.00 c_17(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.12/208.00 isNatKind^#(activate(M)), 753.12/208.00 activate^#(M), 753.12/208.00 activate^#(M), 753.12/208.00 activate^#(N)) 753.12/208.00 , U62^#(tt(), M, N) -> 753.12/208.00 c_18(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.12/208.00 isNat^#(activate(N)), 753.12/208.00 activate^#(N), 753.12/208.00 activate^#(M), 753.12/208.00 activate^#(N)) 753.12/208.00 , U63^#(tt(), M, N) -> 753.12/208.00 c_19(U64^#(isNatKind(activate(N)), activate(M), activate(N)), 753.12/208.00 isNatKind^#(activate(N)), 753.12/208.00 activate^#(N), 753.12/208.00 activate^#(M), 753.12/208.00 activate^#(N)) 753.12/208.00 , U64^#(tt(), M, N) -> c_20(activate^#(N), activate^#(M)) } 753.12/208.00 Weak Trs: 753.12/208.00 { U11(tt(), V1, V2) -> 753.12/208.00 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.00 , U12(tt(), V1, V2) -> 753.12/208.00 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.00 , isNatKind(n__0()) -> tt() 753.12/208.00 , isNatKind(n__plus(V1, V2)) -> 753.12/208.00 U31(isNatKind(activate(V1)), activate(V2)) 753.12/208.00 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.12/208.00 , activate(X) -> X 753.12/208.00 , activate(n__0()) -> 0() 753.12/208.00 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.12/208.00 , activate(n__s(X)) -> s(activate(X)) 753.12/208.00 , U13(tt(), V1, V2) -> 753.12/208.00 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.00 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.12/208.00 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.12/208.00 , isNat(n__0()) -> tt() 753.12/208.00 , isNat(n__plus(V1, V2)) -> 753.12/208.00 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.00 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.12/208.00 , U16(tt()) -> tt() 753.12/208.00 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.12/208.00 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.12/208.00 , U23(tt()) -> tt() 753.12/208.00 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.12/208.00 , U32(tt()) -> tt() 753.12/208.00 , U41(tt()) -> tt() 753.12/208.00 , s(X) -> n__s(X) 753.12/208.00 , plus(X1, X2) -> n__plus(X1, X2) 753.12/208.00 , 0() -> n__0() } 753.12/208.00 StartTerms: basic terms 753.12/208.00 Strategy: innermost 753.12/208.00 753.12/208.00 This problem was proven YES(O(1),O(1)). 753.12/208.00 753.12/208.00 753.12/208.00 Proofs for generated problems: 753.12/208.00 ------------------------------ 753.12/208.00 R) We are left with following problem, upon which TcT provides the 753.12/208.00 certificate YES(O(1),O(n^3)). 753.12/208.00 753.12/208.00 Strict DPs: 753.12/208.00 { activate^#(n__plus(X1, X2)) -> 753.12/208.00 c_5(activate^#(X1), activate^#(X2)) 753.12/208.00 , activate^#(n__s(X)) -> c_6(activate^#(X)) 753.12/208.00 , U51^#(tt(), N) -> 753.12/208.00 c_15(U52^#(isNatKind(activate(N)), activate(N)), 753.12/208.00 isNatKind^#(activate(N)), 753.12/208.00 activate^#(N), 753.12/208.00 activate^#(N)) } 753.12/208.00 Weak DPs: 753.12/208.00 { U11^#(tt(), V1, V2) -> 753.12/208.00 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.12/208.00 isNatKind^#(activate(V1)), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V2)) 753.12/208.00 , U12^#(tt(), V1, V2) -> 753.12/208.00 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.12/208.00 isNatKind^#(activate(V2)), 753.12/208.00 activate^#(V2), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V2)) 753.12/208.00 , isNatKind^#(n__plus(V1, V2)) -> 753.12/208.00 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.12/208.00 isNatKind^#(activate(V1)), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V2)) 753.12/208.00 , isNatKind^#(n__s(V1)) -> 753.12/208.00 c_4(isNatKind^#(activate(V1)), activate^#(V1)) 753.12/208.00 , U13^#(tt(), V1, V2) -> 753.12/208.00 c_7(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.12/208.00 isNatKind^#(activate(V2)), 753.12/208.00 activate^#(V2), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V2)) 753.12/208.00 , U31^#(tt(), V2) -> c_8(isNatKind^#(activate(V2)), activate^#(V2)) 753.12/208.00 , U14^#(tt(), V1, V2) -> 753.12/208.00 c_9(U15^#(isNat(activate(V1)), activate(V2)), 753.12/208.00 isNat^#(activate(V1)), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V2)) 753.12/208.00 , U15^#(tt(), V2) -> c_10(isNat^#(activate(V2)), activate^#(V2)) 753.12/208.00 , isNat^#(n__plus(V1, V2)) -> 753.12/208.00 c_11(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.12/208.00 isNatKind^#(activate(V1)), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V2)) 753.12/208.00 , isNat^#(n__s(V1)) -> 753.12/208.00 c_12(U21^#(isNatKind(activate(V1)), activate(V1)), 753.12/208.00 isNatKind^#(activate(V1)), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V1)) 753.12/208.00 , U21^#(tt(), V1) -> 753.12/208.00 c_13(U22^#(isNatKind(activate(V1)), activate(V1)), 753.12/208.00 isNatKind^#(activate(V1)), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V1)) 753.12/208.00 , U22^#(tt(), V1) -> c_14(isNat^#(activate(V1)), activate^#(V1)) 753.12/208.00 , U52^#(tt(), N) -> c_16(activate^#(N)) 753.12/208.00 , U61^#(tt(), M, N) -> 753.12/208.00 c_17(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.12/208.00 isNatKind^#(activate(M)), 753.12/208.00 activate^#(M), 753.12/208.00 activate^#(M), 753.12/208.00 activate^#(N)) 753.12/208.00 , U62^#(tt(), M, N) -> 753.12/208.00 c_18(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.12/208.00 isNat^#(activate(N)), 753.12/208.00 activate^#(N), 753.12/208.00 activate^#(M), 753.12/208.00 activate^#(N)) 753.12/208.00 , U63^#(tt(), M, N) -> 753.12/208.00 c_19(U64^#(isNatKind(activate(N)), activate(M), activate(N)), 753.12/208.00 isNatKind^#(activate(N)), 753.12/208.00 activate^#(N), 753.12/208.00 activate^#(M), 753.12/208.00 activate^#(N)) 753.12/208.00 , U64^#(tt(), M, N) -> c_20(activate^#(N), activate^#(M)) } 753.12/208.00 Weak Trs: 753.12/208.00 { U11(tt(), V1, V2) -> 753.12/208.00 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.00 , U12(tt(), V1, V2) -> 753.12/208.00 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.00 , isNatKind(n__0()) -> tt() 753.12/208.00 , isNatKind(n__plus(V1, V2)) -> 753.12/208.00 U31(isNatKind(activate(V1)), activate(V2)) 753.12/208.00 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.12/208.00 , activate(X) -> X 753.12/208.00 , activate(n__0()) -> 0() 753.12/208.00 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.12/208.00 , activate(n__s(X)) -> s(activate(X)) 753.12/208.00 , U13(tt(), V1, V2) -> 753.12/208.00 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.00 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.12/208.00 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.12/208.00 , isNat(n__0()) -> tt() 753.12/208.00 , isNat(n__plus(V1, V2)) -> 753.12/208.00 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.00 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.12/208.00 , U16(tt()) -> tt() 753.12/208.00 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.12/208.00 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.12/208.00 , U23(tt()) -> tt() 753.12/208.00 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.12/208.00 , U32(tt()) -> tt() 753.12/208.00 , U41(tt()) -> tt() 753.12/208.00 , s(X) -> n__s(X) 753.12/208.00 , plus(X1, X2) -> n__plus(X1, X2) 753.12/208.00 , 0() -> n__0() } 753.12/208.00 Obligation: 753.12/208.00 innermost runtime complexity 753.12/208.00 Answer: 753.12/208.00 YES(O(1),O(n^3)) 753.12/208.00 753.12/208.00 We decompose the input problem according to the dependency graph 753.12/208.00 into the upper component 753.12/208.00 753.12/208.00 { U11^#(tt(), V1, V2) -> 753.12/208.00 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.12/208.00 isNatKind^#(activate(V1)), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V2)) 753.12/208.00 , U12^#(tt(), V1, V2) -> 753.12/208.00 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.12/208.00 isNatKind^#(activate(V2)), 753.12/208.00 activate^#(V2), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V2)) 753.12/208.00 , U13^#(tt(), V1, V2) -> 753.12/208.00 c_7(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.12/208.00 isNatKind^#(activate(V2)), 753.12/208.00 activate^#(V2), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V2)) 753.12/208.00 , U14^#(tt(), V1, V2) -> 753.12/208.00 c_9(U15^#(isNat(activate(V1)), activate(V2)), 753.12/208.00 isNat^#(activate(V1)), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V2)) 753.12/208.00 , U15^#(tt(), V2) -> c_10(isNat^#(activate(V2)), activate^#(V2)) 753.12/208.00 , isNat^#(n__plus(V1, V2)) -> 753.12/208.00 c_11(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.12/208.00 isNatKind^#(activate(V1)), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V2)) 753.12/208.00 , isNat^#(n__s(V1)) -> 753.12/208.00 c_12(U21^#(isNatKind(activate(V1)), activate(V1)), 753.12/208.00 isNatKind^#(activate(V1)), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V1)) 753.12/208.00 , U21^#(tt(), V1) -> 753.12/208.00 c_13(U22^#(isNatKind(activate(V1)), activate(V1)), 753.12/208.00 isNatKind^#(activate(V1)), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V1)) 753.12/208.00 , U22^#(tt(), V1) -> c_14(isNat^#(activate(V1)), activate^#(V1)) 753.12/208.00 , U51^#(tt(), N) -> 753.12/208.00 c_15(U52^#(isNatKind(activate(N)), activate(N)), 753.12/208.00 isNatKind^#(activate(N)), 753.12/208.00 activate^#(N), 753.12/208.00 activate^#(N)) 753.12/208.00 , U52^#(tt(), N) -> c_16(activate^#(N)) 753.12/208.00 , U61^#(tt(), M, N) -> 753.12/208.00 c_17(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.12/208.00 isNatKind^#(activate(M)), 753.12/208.00 activate^#(M), 753.12/208.00 activate^#(M), 753.12/208.00 activate^#(N)) 753.12/208.00 , U62^#(tt(), M, N) -> 753.12/208.00 c_18(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.12/208.00 isNat^#(activate(N)), 753.12/208.00 activate^#(N), 753.12/208.00 activate^#(M), 753.12/208.00 activate^#(N)) 753.12/208.00 , U63^#(tt(), M, N) -> 753.12/208.00 c_19(U64^#(isNatKind(activate(N)), activate(M), activate(N)), 753.12/208.00 isNatKind^#(activate(N)), 753.12/208.00 activate^#(N), 753.12/208.00 activate^#(M), 753.12/208.00 activate^#(N)) 753.12/208.00 , U64^#(tt(), M, N) -> c_20(activate^#(N), activate^#(M)) } 753.12/208.00 753.12/208.00 and lower component 753.12/208.00 753.12/208.00 { isNatKind^#(n__plus(V1, V2)) -> 753.12/208.00 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.12/208.00 isNatKind^#(activate(V1)), 753.12/208.00 activate^#(V1), 753.12/208.00 activate^#(V2)) 753.12/208.00 , isNatKind^#(n__s(V1)) -> 753.12/208.00 c_4(isNatKind^#(activate(V1)), activate^#(V1)) 753.12/208.00 , activate^#(n__plus(X1, X2)) -> 753.12/208.00 c_5(activate^#(X1), activate^#(X2)) 753.12/208.00 , activate^#(n__s(X)) -> c_6(activate^#(X)) 753.12/208.00 , U31^#(tt(), V2) -> 753.12/208.00 c_8(isNatKind^#(activate(V2)), activate^#(V2)) } 753.12/208.00 753.12/208.00 Further, following extension rules are added to the lower 753.12/208.00 component. 753.12/208.00 753.12/208.00 { U11^#(tt(), V1, V2) -> 753.12/208.00 U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.00 , U11^#(tt(), V1, V2) -> isNatKind^#(activate(V1)) 753.12/208.00 , U11^#(tt(), V1, V2) -> activate^#(V1) 753.12/208.01 , U11^#(tt(), V1, V2) -> activate^#(V2) 753.12/208.01 , U12^#(tt(), V1, V2) -> isNatKind^#(activate(V2)) 753.12/208.01 , U12^#(tt(), V1, V2) -> activate^#(V1) 753.12/208.01 , U12^#(tt(), V1, V2) -> activate^#(V2) 753.12/208.01 , U12^#(tt(), V1, V2) -> 753.12/208.01 U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.01 , U13^#(tt(), V1, V2) -> isNatKind^#(activate(V2)) 753.12/208.01 , U13^#(tt(), V1, V2) -> activate^#(V1) 753.12/208.01 , U13^#(tt(), V1, V2) -> activate^#(V2) 753.12/208.01 , U13^#(tt(), V1, V2) -> 753.12/208.01 U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.01 , U14^#(tt(), V1, V2) -> activate^#(V1) 753.12/208.01 , U14^#(tt(), V1, V2) -> activate^#(V2) 753.12/208.01 , U14^#(tt(), V1, V2) -> U15^#(isNat(activate(V1)), activate(V2)) 753.12/208.01 , U14^#(tt(), V1, V2) -> isNat^#(activate(V1)) 753.12/208.01 , U15^#(tt(), V2) -> activate^#(V2) 753.12/208.01 , U15^#(tt(), V2) -> isNat^#(activate(V2)) 753.12/208.01 , isNat^#(n__plus(V1, V2)) -> 753.12/208.01 U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.01 , isNat^#(n__plus(V1, V2)) -> isNatKind^#(activate(V1)) 753.12/208.01 , isNat^#(n__plus(V1, V2)) -> activate^#(V1) 753.12/208.01 , isNat^#(n__plus(V1, V2)) -> activate^#(V2) 753.12/208.01 , isNat^#(n__s(V1)) -> isNatKind^#(activate(V1)) 753.12/208.01 , isNat^#(n__s(V1)) -> activate^#(V1) 753.12/208.01 , isNat^#(n__s(V1)) -> U21^#(isNatKind(activate(V1)), activate(V1)) 753.12/208.01 , U21^#(tt(), V1) -> isNatKind^#(activate(V1)) 753.12/208.01 , U21^#(tt(), V1) -> activate^#(V1) 753.12/208.01 , U21^#(tt(), V1) -> U22^#(isNatKind(activate(V1)), activate(V1)) 753.12/208.01 , U22^#(tt(), V1) -> activate^#(V1) 753.12/208.01 , U22^#(tt(), V1) -> isNat^#(activate(V1)) 753.12/208.01 , U51^#(tt(), N) -> isNatKind^#(activate(N)) 753.12/208.01 , U51^#(tt(), N) -> activate^#(N) 753.12/208.01 , U51^#(tt(), N) -> U52^#(isNatKind(activate(N)), activate(N)) 753.12/208.01 , U52^#(tt(), N) -> activate^#(N) 753.12/208.01 , U61^#(tt(), M, N) -> isNatKind^#(activate(M)) 753.12/208.01 , U61^#(tt(), M, N) -> activate^#(M) 753.12/208.01 , U61^#(tt(), M, N) -> activate^#(N) 753.12/208.01 , U61^#(tt(), M, N) -> 753.12/208.01 U62^#(isNatKind(activate(M)), activate(M), activate(N)) 753.12/208.01 , U62^#(tt(), M, N) -> activate^#(M) 753.12/208.01 , U62^#(tt(), M, N) -> activate^#(N) 753.12/208.01 , U62^#(tt(), M, N) -> isNat^#(activate(N)) 753.12/208.01 , U62^#(tt(), M, N) -> 753.12/208.01 U63^#(isNat(activate(N)), activate(M), activate(N)) 753.12/208.01 , U63^#(tt(), M, N) -> isNatKind^#(activate(N)) 753.12/208.01 , U63^#(tt(), M, N) -> activate^#(M) 753.12/208.01 , U63^#(tt(), M, N) -> activate^#(N) 753.12/208.01 , U63^#(tt(), M, N) -> 753.12/208.01 U64^#(isNatKind(activate(N)), activate(M), activate(N)) 753.12/208.01 , U64^#(tt(), M, N) -> activate^#(M) 753.12/208.01 , U64^#(tt(), M, N) -> activate^#(N) } 753.12/208.01 753.12/208.01 TcT solves the upper component with certificate YES(O(1),O(n^1)). 753.12/208.01 753.12/208.01 Sub-proof: 753.12/208.01 ---------- 753.12/208.01 We are left with following problem, upon which TcT provides the 753.12/208.01 certificate YES(O(1),O(n^1)). 753.12/208.01 753.12/208.01 Strict DPs: 753.12/208.01 { U11^#(tt(), V1, V2) -> 753.12/208.01 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.12/208.01 isNatKind^#(activate(V1)), 753.12/208.01 activate^#(V1), 753.12/208.01 activate^#(V1), 753.12/208.01 activate^#(V2)) 753.12/208.01 , U12^#(tt(), V1, V2) -> 753.12/208.01 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.12/208.01 isNatKind^#(activate(V2)), 753.12/208.01 activate^#(V2), 753.12/208.01 activate^#(V1), 753.12/208.01 activate^#(V2)) 753.12/208.01 , U13^#(tt(), V1, V2) -> 753.12/208.01 c_7(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.12/208.01 isNatKind^#(activate(V2)), 753.12/208.01 activate^#(V2), 753.12/208.01 activate^#(V1), 753.12/208.01 activate^#(V2)) 753.12/208.01 , U14^#(tt(), V1, V2) -> 753.12/208.01 c_9(U15^#(isNat(activate(V1)), activate(V2)), 753.12/208.01 isNat^#(activate(V1)), 753.12/208.01 activate^#(V1), 753.12/208.01 activate^#(V2)) 753.12/208.01 , U15^#(tt(), V2) -> c_10(isNat^#(activate(V2)), activate^#(V2)) 753.12/208.01 , isNat^#(n__plus(V1, V2)) -> 753.12/208.01 c_11(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.12/208.01 isNatKind^#(activate(V1)), 753.12/208.01 activate^#(V1), 753.12/208.01 activate^#(V1), 753.12/208.01 activate^#(V2)) 753.12/208.01 , isNat^#(n__s(V1)) -> 753.12/208.01 c_12(U21^#(isNatKind(activate(V1)), activate(V1)), 753.12/208.01 isNatKind^#(activate(V1)), 753.12/208.01 activate^#(V1), 753.12/208.01 activate^#(V1)) 753.12/208.01 , U21^#(tt(), V1) -> 753.12/208.01 c_13(U22^#(isNatKind(activate(V1)), activate(V1)), 753.12/208.01 isNatKind^#(activate(V1)), 753.12/208.01 activate^#(V1), 753.12/208.01 activate^#(V1)) 753.12/208.01 , U22^#(tt(), V1) -> c_14(isNat^#(activate(V1)), activate^#(V1)) 753.12/208.01 , U51^#(tt(), N) -> 753.12/208.01 c_15(U52^#(isNatKind(activate(N)), activate(N)), 753.12/208.01 isNatKind^#(activate(N)), 753.12/208.01 activate^#(N), 753.12/208.01 activate^#(N)) 753.12/208.01 , U52^#(tt(), N) -> c_16(activate^#(N)) 753.12/208.01 , U61^#(tt(), M, N) -> 753.12/208.01 c_17(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.12/208.01 isNatKind^#(activate(M)), 753.12/208.01 activate^#(M), 753.12/208.01 activate^#(M), 753.12/208.01 activate^#(N)) 753.12/208.01 , U62^#(tt(), M, N) -> 753.12/208.01 c_18(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.12/208.01 isNat^#(activate(N)), 753.12/208.01 activate^#(N), 753.12/208.01 activate^#(M), 753.12/208.01 activate^#(N)) 753.12/208.01 , U63^#(tt(), M, N) -> 753.12/208.01 c_19(U64^#(isNatKind(activate(N)), activate(M), activate(N)), 753.12/208.01 isNatKind^#(activate(N)), 753.12/208.01 activate^#(N), 753.12/208.01 activate^#(M), 753.12/208.01 activate^#(N)) 753.12/208.01 , U64^#(tt(), M, N) -> c_20(activate^#(N), activate^#(M)) } 753.12/208.01 Weak Trs: 753.12/208.01 { U11(tt(), V1, V2) -> 753.12/208.01 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.01 , U12(tt(), V1, V2) -> 753.12/208.01 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.01 , isNatKind(n__0()) -> tt() 753.12/208.01 , isNatKind(n__plus(V1, V2)) -> 753.12/208.01 U31(isNatKind(activate(V1)), activate(V2)) 753.12/208.01 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.12/208.01 , activate(X) -> X 753.12/208.01 , activate(n__0()) -> 0() 753.12/208.01 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.12/208.01 , activate(n__s(X)) -> s(activate(X)) 753.12/208.01 , U13(tt(), V1, V2) -> 753.12/208.01 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.01 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.12/208.01 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.12/208.01 , isNat(n__0()) -> tt() 753.12/208.01 , isNat(n__plus(V1, V2)) -> 753.12/208.01 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.01 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.12/208.01 , U16(tt()) -> tt() 753.12/208.01 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.12/208.01 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.12/208.01 , U23(tt()) -> tt() 753.12/208.01 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.12/208.01 , U32(tt()) -> tt() 753.12/208.01 , U41(tt()) -> tt() 753.12/208.01 , s(X) -> n__s(X) 753.12/208.01 , plus(X1, X2) -> n__plus(X1, X2) 753.12/208.01 , 0() -> n__0() } 753.12/208.01 Obligation: 753.12/208.01 innermost runtime complexity 753.12/208.01 Answer: 753.12/208.01 YES(O(1),O(n^1)) 753.12/208.01 753.12/208.01 We estimate the number of application of {11,15} by applications of 753.12/208.01 Pre({11,15}) = {10,14}. Here rules are labeled as follows: 753.12/208.01 753.12/208.01 DPs: 753.12/208.01 { 1: U11^#(tt(), V1, V2) -> 753.12/208.01 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.12/208.01 isNatKind^#(activate(V1)), 753.12/208.01 activate^#(V1), 753.12/208.01 activate^#(V1), 753.12/208.01 activate^#(V2)) 753.12/208.01 , 2: U12^#(tt(), V1, V2) -> 753.12/208.01 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.12/208.01 isNatKind^#(activate(V2)), 753.12/208.01 activate^#(V2), 753.12/208.01 activate^#(V1), 753.12/208.01 activate^#(V2)) 753.12/208.01 , 3: U13^#(tt(), V1, V2) -> 753.12/208.01 c_7(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.12/208.01 isNatKind^#(activate(V2)), 753.12/208.01 activate^#(V2), 753.12/208.01 activate^#(V1), 753.12/208.01 activate^#(V2)) 753.12/208.01 , 4: U14^#(tt(), V1, V2) -> 753.12/208.01 c_9(U15^#(isNat(activate(V1)), activate(V2)), 753.12/208.01 isNat^#(activate(V1)), 753.12/208.01 activate^#(V1), 753.12/208.01 activate^#(V2)) 753.12/208.01 , 5: U15^#(tt(), V2) -> c_10(isNat^#(activate(V2)), activate^#(V2)) 753.12/208.01 , 6: isNat^#(n__plus(V1, V2)) -> 753.12/208.01 c_11(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.12/208.01 isNatKind^#(activate(V1)), 753.12/208.01 activate^#(V1), 753.12/208.01 activate^#(V1), 753.12/208.01 activate^#(V2)) 753.12/208.01 , 7: isNat^#(n__s(V1)) -> 753.12/208.01 c_12(U21^#(isNatKind(activate(V1)), activate(V1)), 753.12/208.01 isNatKind^#(activate(V1)), 753.12/208.01 activate^#(V1), 753.12/208.01 activate^#(V1)) 753.12/208.01 , 8: U21^#(tt(), V1) -> 753.12/208.01 c_13(U22^#(isNatKind(activate(V1)), activate(V1)), 753.12/208.01 isNatKind^#(activate(V1)), 753.12/208.01 activate^#(V1), 753.12/208.01 activate^#(V1)) 753.12/208.01 , 9: U22^#(tt(), V1) -> c_14(isNat^#(activate(V1)), activate^#(V1)) 753.12/208.01 , 10: U51^#(tt(), N) -> 753.12/208.01 c_15(U52^#(isNatKind(activate(N)), activate(N)), 753.12/208.01 isNatKind^#(activate(N)), 753.12/208.01 activate^#(N), 753.12/208.01 activate^#(N)) 753.12/208.01 , 11: U52^#(tt(), N) -> c_16(activate^#(N)) 753.12/208.01 , 12: U61^#(tt(), M, N) -> 753.12/208.01 c_17(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.12/208.01 isNatKind^#(activate(M)), 753.12/208.01 activate^#(M), 753.12/208.01 activate^#(M), 753.12/208.01 activate^#(N)) 753.12/208.01 , 13: U62^#(tt(), M, N) -> 753.12/208.01 c_18(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.12/208.01 isNat^#(activate(N)), 753.12/208.01 activate^#(N), 753.12/208.01 activate^#(M), 753.12/208.01 activate^#(N)) 753.12/208.01 , 14: U63^#(tt(), M, N) -> 753.12/208.01 c_19(U64^#(isNatKind(activate(N)), activate(M), activate(N)), 753.12/208.01 isNatKind^#(activate(N)), 753.12/208.01 activate^#(N), 753.12/208.01 activate^#(M), 753.12/208.01 activate^#(N)) 753.12/208.01 , 15: U64^#(tt(), M, N) -> c_20(activate^#(N), activate^#(M)) } 753.12/208.01 753.12/208.01 We are left with following problem, upon which TcT provides the 753.12/208.01 certificate YES(O(1),O(n^1)). 753.12/208.01 753.12/208.01 Strict DPs: 753.12/208.01 { U11^#(tt(), V1, V2) -> 753.12/208.01 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.12/208.01 isNatKind^#(activate(V1)), 753.12/208.01 activate^#(V1), 753.12/208.01 activate^#(V1), 753.12/208.01 activate^#(V2)) 753.12/208.01 , U12^#(tt(), V1, V2) -> 753.12/208.01 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.12/208.01 isNatKind^#(activate(V2)), 753.12/208.01 activate^#(V2), 753.12/208.01 activate^#(V1), 753.12/208.01 activate^#(V2)) 753.12/208.01 , U13^#(tt(), V1, V2) -> 753.12/208.01 c_7(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.12/208.01 isNatKind^#(activate(V2)), 753.12/208.01 activate^#(V2), 753.12/208.01 activate^#(V1), 753.12/208.01 activate^#(V2)) 753.12/208.01 , U14^#(tt(), V1, V2) -> 753.12/208.01 c_9(U15^#(isNat(activate(V1)), activate(V2)), 753.12/208.01 isNat^#(activate(V1)), 753.12/208.01 activate^#(V1), 753.12/208.01 activate^#(V2)) 753.12/208.01 , U15^#(tt(), V2) -> c_10(isNat^#(activate(V2)), activate^#(V2)) 753.12/208.01 , isNat^#(n__plus(V1, V2)) -> 753.12/208.01 c_11(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.12/208.01 isNatKind^#(activate(V1)), 753.12/208.01 activate^#(V1), 753.12/208.01 activate^#(V1), 753.12/208.01 activate^#(V2)) 753.12/208.01 , isNat^#(n__s(V1)) -> 753.12/208.01 c_12(U21^#(isNatKind(activate(V1)), activate(V1)), 753.12/208.01 isNatKind^#(activate(V1)), 753.12/208.01 activate^#(V1), 753.12/208.01 activate^#(V1)) 753.12/208.01 , U21^#(tt(), V1) -> 753.12/208.01 c_13(U22^#(isNatKind(activate(V1)), activate(V1)), 753.12/208.01 isNatKind^#(activate(V1)), 753.12/208.01 activate^#(V1), 753.12/208.01 activate^#(V1)) 753.12/208.01 , U22^#(tt(), V1) -> c_14(isNat^#(activate(V1)), activate^#(V1)) 753.12/208.01 , U51^#(tt(), N) -> 753.12/208.01 c_15(U52^#(isNatKind(activate(N)), activate(N)), 753.12/208.01 isNatKind^#(activate(N)), 753.12/208.01 activate^#(N), 753.12/208.01 activate^#(N)) 753.12/208.01 , U61^#(tt(), M, N) -> 753.12/208.01 c_17(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.12/208.01 isNatKind^#(activate(M)), 753.12/208.01 activate^#(M), 753.12/208.01 activate^#(M), 753.12/208.01 activate^#(N)) 753.12/208.01 , U62^#(tt(), M, N) -> 753.12/208.01 c_18(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.12/208.01 isNat^#(activate(N)), 753.12/208.01 activate^#(N), 753.12/208.01 activate^#(M), 753.12/208.01 activate^#(N)) 753.12/208.01 , U63^#(tt(), M, N) -> 753.12/208.01 c_19(U64^#(isNatKind(activate(N)), activate(M), activate(N)), 753.12/208.01 isNatKind^#(activate(N)), 753.12/208.01 activate^#(N), 753.12/208.01 activate^#(M), 753.12/208.01 activate^#(N)) } 753.12/208.01 Weak DPs: 753.12/208.01 { U52^#(tt(), N) -> c_16(activate^#(N)) 753.12/208.01 , U64^#(tt(), M, N) -> c_20(activate^#(N), activate^#(M)) } 753.12/208.01 Weak Trs: 753.12/208.01 { U11(tt(), V1, V2) -> 753.12/208.01 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.01 , U12(tt(), V1, V2) -> 753.12/208.01 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.01 , isNatKind(n__0()) -> tt() 753.12/208.01 , isNatKind(n__plus(V1, V2)) -> 753.12/208.01 U31(isNatKind(activate(V1)), activate(V2)) 753.12/208.01 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.12/208.01 , activate(X) -> X 753.12/208.01 , activate(n__0()) -> 0() 753.12/208.01 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.12/208.01 , activate(n__s(X)) -> s(activate(X)) 753.12/208.01 , U13(tt(), V1, V2) -> 753.12/208.01 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.01 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.12/208.01 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.12/208.01 , isNat(n__0()) -> tt() 753.12/208.01 , isNat(n__plus(V1, V2)) -> 753.12/208.01 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.01 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.12/208.01 , U16(tt()) -> tt() 753.12/208.01 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.12/208.01 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.12/208.01 , U23(tt()) -> tt() 753.12/208.01 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.12/208.01 , U32(tt()) -> tt() 753.12/208.01 , U41(tt()) -> tt() 753.12/208.01 , s(X) -> n__s(X) 753.12/208.01 , plus(X1, X2) -> n__plus(X1, X2) 753.12/208.01 , 0() -> n__0() } 753.12/208.01 Obligation: 753.12/208.01 innermost runtime complexity 753.12/208.01 Answer: 753.12/208.01 YES(O(1),O(n^1)) 753.12/208.01 753.12/208.01 We estimate the number of application of {10,13} by applications of 753.12/208.01 Pre({10,13}) = {12}. Here rules are labeled as follows: 753.12/208.01 753.12/208.01 DPs: 753.12/208.01 { 1: U11^#(tt(), V1, V2) -> 753.12/208.01 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.12/208.01 isNatKind^#(activate(V1)), 753.12/208.01 activate^#(V1), 753.12/208.01 activate^#(V1), 753.12/208.01 activate^#(V2)) 753.12/208.01 , 2: U12^#(tt(), V1, V2) -> 753.12/208.01 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.12/208.01 isNatKind^#(activate(V2)), 753.12/208.01 activate^#(V2), 753.12/208.01 activate^#(V1), 753.12/208.01 activate^#(V2)) 753.12/208.01 , 3: U13^#(tt(), V1, V2) -> 753.12/208.01 c_7(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.12/208.01 isNatKind^#(activate(V2)), 753.12/208.01 activate^#(V2), 753.12/208.01 activate^#(V1), 753.12/208.01 activate^#(V2)) 753.12/208.01 , 4: U14^#(tt(), V1, V2) -> 753.12/208.01 c_9(U15^#(isNat(activate(V1)), activate(V2)), 753.12/208.01 isNat^#(activate(V1)), 753.12/208.02 activate^#(V1), 753.12/208.02 activate^#(V2)) 753.12/208.02 , 5: U15^#(tt(), V2) -> c_10(isNat^#(activate(V2)), activate^#(V2)) 753.12/208.02 , 6: isNat^#(n__plus(V1, V2)) -> 753.12/208.02 c_11(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.12/208.02 isNatKind^#(activate(V1)), 753.12/208.02 activate^#(V1), 753.12/208.02 activate^#(V1), 753.12/208.02 activate^#(V2)) 753.12/208.02 , 7: isNat^#(n__s(V1)) -> 753.12/208.02 c_12(U21^#(isNatKind(activate(V1)), activate(V1)), 753.12/208.02 isNatKind^#(activate(V1)), 753.12/208.02 activate^#(V1), 753.12/208.02 activate^#(V1)) 753.12/208.02 , 8: U21^#(tt(), V1) -> 753.12/208.02 c_13(U22^#(isNatKind(activate(V1)), activate(V1)), 753.12/208.02 isNatKind^#(activate(V1)), 753.12/208.02 activate^#(V1), 753.12/208.02 activate^#(V1)) 753.12/208.02 , 9: U22^#(tt(), V1) -> c_14(isNat^#(activate(V1)), activate^#(V1)) 753.12/208.02 , 10: U51^#(tt(), N) -> 753.12/208.02 c_15(U52^#(isNatKind(activate(N)), activate(N)), 753.12/208.02 isNatKind^#(activate(N)), 753.12/208.02 activate^#(N), 753.12/208.02 activate^#(N)) 753.12/208.02 , 11: U61^#(tt(), M, N) -> 753.12/208.02 c_17(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.12/208.02 isNatKind^#(activate(M)), 753.12/208.02 activate^#(M), 753.12/208.02 activate^#(M), 753.12/208.02 activate^#(N)) 753.12/208.02 , 12: U62^#(tt(), M, N) -> 753.12/208.02 c_18(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.12/208.02 isNat^#(activate(N)), 753.12/208.02 activate^#(N), 753.12/208.02 activate^#(M), 753.12/208.02 activate^#(N)) 753.12/208.02 , 13: U63^#(tt(), M, N) -> 753.12/208.02 c_19(U64^#(isNatKind(activate(N)), activate(M), activate(N)), 753.12/208.02 isNatKind^#(activate(N)), 753.12/208.02 activate^#(N), 753.12/208.02 activate^#(M), 753.12/208.02 activate^#(N)) 753.12/208.02 , 14: U52^#(tt(), N) -> c_16(activate^#(N)) 753.12/208.02 , 15: U64^#(tt(), M, N) -> c_20(activate^#(N), activate^#(M)) } 753.12/208.02 753.12/208.02 We are left with following problem, upon which TcT provides the 753.12/208.02 certificate YES(O(1),O(n^1)). 753.12/208.02 753.12/208.02 Strict DPs: 753.12/208.02 { U11^#(tt(), V1, V2) -> 753.12/208.02 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.12/208.02 isNatKind^#(activate(V1)), 753.12/208.02 activate^#(V1), 753.12/208.02 activate^#(V1), 753.12/208.02 activate^#(V2)) 753.12/208.02 , U12^#(tt(), V1, V2) -> 753.12/208.02 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.12/208.02 isNatKind^#(activate(V2)), 753.12/208.02 activate^#(V2), 753.12/208.02 activate^#(V1), 753.12/208.02 activate^#(V2)) 753.12/208.02 , U13^#(tt(), V1, V2) -> 753.12/208.02 c_7(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.12/208.02 isNatKind^#(activate(V2)), 753.12/208.02 activate^#(V2), 753.12/208.02 activate^#(V1), 753.12/208.02 activate^#(V2)) 753.12/208.02 , U14^#(tt(), V1, V2) -> 753.12/208.02 c_9(U15^#(isNat(activate(V1)), activate(V2)), 753.12/208.02 isNat^#(activate(V1)), 753.12/208.02 activate^#(V1), 753.12/208.02 activate^#(V2)) 753.12/208.02 , U15^#(tt(), V2) -> c_10(isNat^#(activate(V2)), activate^#(V2)) 753.12/208.02 , isNat^#(n__plus(V1, V2)) -> 753.12/208.02 c_11(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.12/208.02 isNatKind^#(activate(V1)), 753.12/208.02 activate^#(V1), 753.12/208.02 activate^#(V1), 753.12/208.02 activate^#(V2)) 753.12/208.02 , isNat^#(n__s(V1)) -> 753.12/208.02 c_12(U21^#(isNatKind(activate(V1)), activate(V1)), 753.12/208.02 isNatKind^#(activate(V1)), 753.12/208.02 activate^#(V1), 753.12/208.02 activate^#(V1)) 753.12/208.02 , U21^#(tt(), V1) -> 753.12/208.02 c_13(U22^#(isNatKind(activate(V1)), activate(V1)), 753.12/208.02 isNatKind^#(activate(V1)), 753.12/208.02 activate^#(V1), 753.12/208.02 activate^#(V1)) 753.12/208.02 , U22^#(tt(), V1) -> c_14(isNat^#(activate(V1)), activate^#(V1)) 753.12/208.02 , U61^#(tt(), M, N) -> 753.12/208.02 c_17(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.12/208.02 isNatKind^#(activate(M)), 753.12/208.02 activate^#(M), 753.12/208.02 activate^#(M), 753.12/208.02 activate^#(N)) 753.12/208.02 , U62^#(tt(), M, N) -> 753.12/208.02 c_18(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.12/208.02 isNat^#(activate(N)), 753.12/208.02 activate^#(N), 753.12/208.02 activate^#(M), 753.12/208.02 activate^#(N)) } 753.12/208.02 Weak DPs: 753.12/208.02 { U51^#(tt(), N) -> 753.12/208.02 c_15(U52^#(isNatKind(activate(N)), activate(N)), 753.12/208.02 isNatKind^#(activate(N)), 753.12/208.02 activate^#(N), 753.12/208.02 activate^#(N)) 753.12/208.02 , U52^#(tt(), N) -> c_16(activate^#(N)) 753.12/208.02 , U63^#(tt(), M, N) -> 753.12/208.02 c_19(U64^#(isNatKind(activate(N)), activate(M), activate(N)), 753.12/208.02 isNatKind^#(activate(N)), 753.12/208.02 activate^#(N), 753.12/208.02 activate^#(M), 753.12/208.02 activate^#(N)) 753.12/208.02 , U64^#(tt(), M, N) -> c_20(activate^#(N), activate^#(M)) } 753.12/208.02 Weak Trs: 753.12/208.02 { U11(tt(), V1, V2) -> 753.12/208.02 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.02 , U12(tt(), V1, V2) -> 753.12/208.02 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.02 , isNatKind(n__0()) -> tt() 753.12/208.02 , isNatKind(n__plus(V1, V2)) -> 753.12/208.02 U31(isNatKind(activate(V1)), activate(V2)) 753.12/208.02 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.12/208.02 , activate(X) -> X 753.12/208.02 , activate(n__0()) -> 0() 753.12/208.02 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.12/208.02 , activate(n__s(X)) -> s(activate(X)) 753.12/208.02 , U13(tt(), V1, V2) -> 753.12/208.02 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.02 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.12/208.02 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.12/208.02 , isNat(n__0()) -> tt() 753.12/208.02 , isNat(n__plus(V1, V2)) -> 753.12/208.02 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.02 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.12/208.02 , U16(tt()) -> tt() 753.12/208.02 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.12/208.02 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.12/208.02 , U23(tt()) -> tt() 753.12/208.02 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.12/208.02 , U32(tt()) -> tt() 753.12/208.02 , U41(tt()) -> tt() 753.12/208.02 , s(X) -> n__s(X) 753.12/208.02 , plus(X1, X2) -> n__plus(X1, X2) 753.12/208.02 , 0() -> n__0() } 753.12/208.02 Obligation: 753.12/208.02 innermost runtime complexity 753.12/208.02 Answer: 753.12/208.02 YES(O(1),O(n^1)) 753.12/208.02 753.12/208.02 The following weak DPs constitute a sub-graph of the DG that is 753.12/208.02 closed under successors. The DPs are removed. 753.12/208.02 753.12/208.02 { U51^#(tt(), N) -> 753.12/208.02 c_15(U52^#(isNatKind(activate(N)), activate(N)), 753.12/208.02 isNatKind^#(activate(N)), 753.12/208.02 activate^#(N), 753.12/208.02 activate^#(N)) 753.12/208.02 , U52^#(tt(), N) -> c_16(activate^#(N)) 753.12/208.02 , U63^#(tt(), M, N) -> 753.12/208.02 c_19(U64^#(isNatKind(activate(N)), activate(M), activate(N)), 753.12/208.02 isNatKind^#(activate(N)), 753.12/208.02 activate^#(N), 753.12/208.02 activate^#(M), 753.12/208.02 activate^#(N)) 753.12/208.02 , U64^#(tt(), M, N) -> c_20(activate^#(N), activate^#(M)) } 753.12/208.02 753.12/208.02 We are left with following problem, upon which TcT provides the 753.12/208.02 certificate YES(O(1),O(n^1)). 753.12/208.02 753.12/208.02 Strict DPs: 753.12/208.02 { U11^#(tt(), V1, V2) -> 753.12/208.02 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.12/208.02 isNatKind^#(activate(V1)), 753.12/208.02 activate^#(V1), 753.12/208.02 activate^#(V1), 753.12/208.02 activate^#(V2)) 753.12/208.02 , U12^#(tt(), V1, V2) -> 753.12/208.02 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.12/208.02 isNatKind^#(activate(V2)), 753.12/208.02 activate^#(V2), 753.12/208.02 activate^#(V1), 753.12/208.02 activate^#(V2)) 753.12/208.02 , U13^#(tt(), V1, V2) -> 753.12/208.02 c_7(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.12/208.02 isNatKind^#(activate(V2)), 753.12/208.02 activate^#(V2), 753.12/208.02 activate^#(V1), 753.12/208.02 activate^#(V2)) 753.12/208.02 , U14^#(tt(), V1, V2) -> 753.12/208.02 c_9(U15^#(isNat(activate(V1)), activate(V2)), 753.12/208.02 isNat^#(activate(V1)), 753.12/208.02 activate^#(V1), 753.12/208.02 activate^#(V2)) 753.12/208.02 , U15^#(tt(), V2) -> c_10(isNat^#(activate(V2)), activate^#(V2)) 753.12/208.02 , isNat^#(n__plus(V1, V2)) -> 753.12/208.02 c_11(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.12/208.02 isNatKind^#(activate(V1)), 753.12/208.02 activate^#(V1), 753.12/208.02 activate^#(V1), 753.12/208.02 activate^#(V2)) 753.12/208.02 , isNat^#(n__s(V1)) -> 753.12/208.02 c_12(U21^#(isNatKind(activate(V1)), activate(V1)), 753.12/208.02 isNatKind^#(activate(V1)), 753.12/208.02 activate^#(V1), 753.12/208.02 activate^#(V1)) 753.12/208.02 , U21^#(tt(), V1) -> 753.12/208.02 c_13(U22^#(isNatKind(activate(V1)), activate(V1)), 753.12/208.02 isNatKind^#(activate(V1)), 753.12/208.02 activate^#(V1), 753.12/208.02 activate^#(V1)) 753.12/208.02 , U22^#(tt(), V1) -> c_14(isNat^#(activate(V1)), activate^#(V1)) 753.12/208.02 , U61^#(tt(), M, N) -> 753.12/208.02 c_17(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.12/208.02 isNatKind^#(activate(M)), 753.12/208.02 activate^#(M), 753.12/208.02 activate^#(M), 753.12/208.02 activate^#(N)) 753.12/208.02 , U62^#(tt(), M, N) -> 753.12/208.02 c_18(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.12/208.02 isNat^#(activate(N)), 753.12/208.02 activate^#(N), 753.12/208.02 activate^#(M), 753.12/208.02 activate^#(N)) } 753.12/208.02 Weak Trs: 753.12/208.02 { U11(tt(), V1, V2) -> 753.12/208.02 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.02 , U12(tt(), V1, V2) -> 753.12/208.02 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.02 , isNatKind(n__0()) -> tt() 753.12/208.02 , isNatKind(n__plus(V1, V2)) -> 753.12/208.02 U31(isNatKind(activate(V1)), activate(V2)) 753.12/208.02 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.12/208.02 , activate(X) -> X 753.12/208.02 , activate(n__0()) -> 0() 753.12/208.02 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.12/208.02 , activate(n__s(X)) -> s(activate(X)) 753.12/208.02 , U13(tt(), V1, V2) -> 753.12/208.02 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.02 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.12/208.02 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.12/208.02 , isNat(n__0()) -> tt() 753.12/208.02 , isNat(n__plus(V1, V2)) -> 753.12/208.02 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.02 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.12/208.02 , U16(tt()) -> tt() 753.12/208.02 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.12/208.02 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.12/208.02 , U23(tt()) -> tt() 753.12/208.02 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.12/208.02 , U32(tt()) -> tt() 753.12/208.02 , U41(tt()) -> tt() 753.12/208.02 , s(X) -> n__s(X) 753.12/208.02 , plus(X1, X2) -> n__plus(X1, X2) 753.12/208.02 , 0() -> n__0() } 753.12/208.02 Obligation: 753.12/208.02 innermost runtime complexity 753.12/208.02 Answer: 753.12/208.02 YES(O(1),O(n^1)) 753.12/208.02 753.12/208.02 Due to missing edges in the dependency-graph, the right-hand sides 753.12/208.02 of following rules could be simplified: 753.12/208.02 753.12/208.02 { U11^#(tt(), V1, V2) -> 753.12/208.02 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.12/208.02 isNatKind^#(activate(V1)), 753.12/208.02 activate^#(V1), 753.12/208.02 activate^#(V1), 753.12/208.02 activate^#(V2)) 753.12/208.02 , U12^#(tt(), V1, V2) -> 753.12/208.02 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.12/208.02 isNatKind^#(activate(V2)), 753.12/208.02 activate^#(V2), 753.12/208.02 activate^#(V1), 753.12/208.02 activate^#(V2)) 753.12/208.02 , U13^#(tt(), V1, V2) -> 753.12/208.02 c_7(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.12/208.02 isNatKind^#(activate(V2)), 753.12/208.02 activate^#(V2), 753.12/208.02 activate^#(V1), 753.12/208.02 activate^#(V2)) 753.12/208.02 , U14^#(tt(), V1, V2) -> 753.12/208.02 c_9(U15^#(isNat(activate(V1)), activate(V2)), 753.12/208.02 isNat^#(activate(V1)), 753.12/208.02 activate^#(V1), 753.12/208.02 activate^#(V2)) 753.12/208.02 , U15^#(tt(), V2) -> c_10(isNat^#(activate(V2)), activate^#(V2)) 753.12/208.02 , isNat^#(n__plus(V1, V2)) -> 753.12/208.02 c_11(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.12/208.02 isNatKind^#(activate(V1)), 753.12/208.02 activate^#(V1), 753.12/208.02 activate^#(V1), 753.12/208.02 activate^#(V2)) 753.12/208.02 , isNat^#(n__s(V1)) -> 753.12/208.02 c_12(U21^#(isNatKind(activate(V1)), activate(V1)), 753.12/208.02 isNatKind^#(activate(V1)), 753.12/208.02 activate^#(V1), 753.12/208.02 activate^#(V1)) 753.12/208.02 , U21^#(tt(), V1) -> 753.12/208.02 c_13(U22^#(isNatKind(activate(V1)), activate(V1)), 753.12/208.02 isNatKind^#(activate(V1)), 753.12/208.02 activate^#(V1), 753.12/208.02 activate^#(V1)) 753.12/208.02 , U22^#(tt(), V1) -> c_14(isNat^#(activate(V1)), activate^#(V1)) 753.12/208.02 , U61^#(tt(), M, N) -> 753.12/208.02 c_17(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.12/208.02 isNatKind^#(activate(M)), 753.12/208.02 activate^#(M), 753.12/208.02 activate^#(M), 753.12/208.02 activate^#(N)) 753.12/208.02 , U62^#(tt(), M, N) -> 753.12/208.02 c_18(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.12/208.02 isNat^#(activate(N)), 753.12/208.02 activate^#(N), 753.12/208.02 activate^#(M), 753.12/208.02 activate^#(N)) } 753.12/208.02 753.12/208.02 We are left with following problem, upon which TcT provides the 753.12/208.02 certificate YES(O(1),O(n^1)). 753.12/208.02 753.12/208.02 Strict DPs: 753.12/208.02 { U11^#(tt(), V1, V2) -> 753.12/208.02 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.12/208.02 , U12^#(tt(), V1, V2) -> 753.12/208.02 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.12/208.02 , U13^#(tt(), V1, V2) -> 753.12/208.02 c_3(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.12/208.02 , U14^#(tt(), V1, V2) -> 753.12/208.02 c_4(U15^#(isNat(activate(V1)), activate(V2)), 753.12/208.02 isNat^#(activate(V1))) 753.12/208.02 , U15^#(tt(), V2) -> c_5(isNat^#(activate(V2))) 753.12/208.02 , isNat^#(n__plus(V1, V2)) -> 753.12/208.02 c_6(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.12/208.02 , isNat^#(n__s(V1)) -> 753.12/208.02 c_7(U21^#(isNatKind(activate(V1)), activate(V1))) 753.12/208.02 , U21^#(tt(), V1) -> 753.12/208.02 c_8(U22^#(isNatKind(activate(V1)), activate(V1))) 753.12/208.02 , U22^#(tt(), V1) -> c_9(isNat^#(activate(V1))) 753.12/208.02 , U61^#(tt(), M, N) -> 753.12/208.02 c_10(U62^#(isNatKind(activate(M)), activate(M), activate(N))) 753.12/208.02 , U62^#(tt(), M, N) -> c_11(isNat^#(activate(N))) } 753.12/208.02 Weak Trs: 753.12/208.02 { U11(tt(), V1, V2) -> 753.12/208.02 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.02 , U12(tt(), V1, V2) -> 753.12/208.02 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.02 , isNatKind(n__0()) -> tt() 753.12/208.02 , isNatKind(n__plus(V1, V2)) -> 753.12/208.02 U31(isNatKind(activate(V1)), activate(V2)) 753.12/208.02 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.12/208.02 , activate(X) -> X 753.12/208.02 , activate(n__0()) -> 0() 753.12/208.02 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.12/208.02 , activate(n__s(X)) -> s(activate(X)) 753.12/208.02 , U13(tt(), V1, V2) -> 753.12/208.02 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.02 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.12/208.02 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.12/208.02 , isNat(n__0()) -> tt() 753.12/208.02 , isNat(n__plus(V1, V2)) -> 753.12/208.02 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.02 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.12/208.02 , U16(tt()) -> tt() 753.12/208.02 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.12/208.02 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.12/208.02 , U23(tt()) -> tt() 753.12/208.02 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.12/208.02 , U32(tt()) -> tt() 753.12/208.02 , U41(tt()) -> tt() 753.12/208.02 , s(X) -> n__s(X) 753.12/208.02 , plus(X1, X2) -> n__plus(X1, X2) 753.12/208.02 , 0() -> n__0() } 753.12/208.02 Obligation: 753.12/208.02 innermost runtime complexity 753.12/208.02 Answer: 753.12/208.02 YES(O(1),O(n^1)) 753.12/208.02 753.12/208.02 We use the processor 'matrix interpretation of dimension 1' to 753.12/208.02 orient following rules strictly. 753.12/208.02 753.12/208.02 DPs: 753.12/208.02 { 1: U11^#(tt(), V1, V2) -> 753.12/208.02 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.12/208.02 , 10: U61^#(tt(), M, N) -> 753.12/208.02 c_10(U62^#(isNatKind(activate(M)), activate(M), activate(N))) } 753.12/208.02 753.12/208.02 Sub-proof: 753.12/208.02 ---------- 753.12/208.02 The following argument positions are usable: 753.12/208.02 Uargs(c_1) = {1}, Uargs(c_2) = {1}, Uargs(c_3) = {1}, 753.12/208.02 Uargs(c_4) = {1, 2}, Uargs(c_5) = {1}, Uargs(c_6) = {1}, 753.12/208.02 Uargs(c_7) = {1}, Uargs(c_8) = {1}, Uargs(c_9) = {1}, 753.12/208.02 Uargs(c_10) = {1}, Uargs(c_11) = {1} 753.12/208.02 753.12/208.02 TcT has computed the following constructor-based matrix 753.12/208.02 interpretation satisfying not(EDA). 753.12/208.02 753.12/208.02 [U11](x1, x2, x3) = [0] 753.12/208.02 753.12/208.02 [tt] = [0] 753.12/208.02 753.12/208.02 [U12](x1, x2, x3) = [0] 753.12/208.02 753.12/208.02 [isNatKind](x1) = [0] 753.12/208.02 753.12/208.02 [activate](x1) = [1] x1 + [0] 753.12/208.02 753.12/208.02 [U13](x1, x2, x3) = [0] 753.12/208.02 753.12/208.02 [U14](x1, x2, x3) = [0] 753.12/208.02 753.12/208.02 [U15](x1, x2) = [0] 753.12/208.02 753.12/208.02 [isNat](x1) = [0] 753.12/208.02 753.12/208.02 [U16](x1) = [0] 753.12/208.02 753.12/208.02 [U21](x1, x2) = [0] 753.12/208.02 753.12/208.02 [U22](x1, x2) = [0] 753.12/208.02 753.12/208.02 [U23](x1) = [0] 753.12/208.02 753.12/208.02 [U31](x1, x2) = [0] 753.12/208.02 753.12/208.02 [U32](x1) = [0] 753.12/208.02 753.12/208.02 [U41](x1) = [0] 753.12/208.02 753.12/208.02 [s](x1) = [1] x1 + [0] 753.12/208.02 753.12/208.02 [plus](x1, x2) = [1] x1 + [1] x2 + [2] 753.12/208.02 753.12/208.02 [n__0] = [0] 753.12/208.02 753.12/208.02 [n__plus](x1, x2) = [1] x1 + [1] x2 + [2] 753.12/208.02 753.12/208.02 [n__s](x1) = [1] x1 + [0] 753.12/208.02 753.12/208.02 [0] = [0] 753.12/208.02 753.12/208.02 [U11^#](x1, x2, x3) = [2] x2 + [2] x3 + [4] 753.12/208.02 753.12/208.02 [U12^#](x1, x2, x3) = [2] x2 + [2] x3 + [0] 753.12/208.02 753.12/208.02 [isNatKind^#](x1) = [7] x1 + [0] 753.12/208.02 753.12/208.02 [activate^#](x1) = [7] x1 + [0] 753.12/208.02 753.12/208.02 [U13^#](x1, x2, x3) = [2] x2 + [2] x3 + [0] 753.12/208.02 753.12/208.02 [U14^#](x1, x2, x3) = [2] x2 + [2] x3 + [0] 753.12/208.02 753.12/208.02 [U15^#](x1, x2) = [2] x2 + [0] 753.12/208.02 753.12/208.02 [isNat^#](x1) = [2] x1 + [0] 753.12/208.02 753.12/208.02 [U21^#](x1, x2) = [2] x2 + [0] 753.12/208.02 753.12/208.02 [U22^#](x1, x2) = [2] x2 + [0] 753.12/208.02 753.12/208.02 [U51^#](x1, x2) = [7] x1 + [7] x2 + [0] 753.12/208.02 753.12/208.02 [U52^#](x1, x2) = [7] x1 + [7] x2 + [0] 753.12/208.02 753.12/208.02 [U61^#](x1, x2, x3) = [7] x1 + [7] x2 + [7] x3 + [7] 753.12/208.02 753.12/208.02 [U62^#](x1, x2, x3) = [4] x3 + [0] 753.12/208.02 753.12/208.02 [U63^#](x1, x2, x3) = [7] x1 + [7] x2 + [7] x3 + [0] 753.12/208.02 753.12/208.02 [U64^#](x1, x2, x3) = [7] x1 + [7] x2 + [7] x3 + [0] 753.12/208.02 753.12/208.02 [c_1](x1, x2, x3, x4, x5) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [7] x5 + [0] 753.12/208.02 753.12/208.02 [c_2](x1, x2, x3, x4, x5) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [7] x5 + [0] 753.12/208.02 753.12/208.02 [c_7](x1, x2, x3, x4, x5) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [7] x5 + [0] 753.12/208.02 753.12/208.02 [c_9](x1, x2, x3, x4) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [0] 753.12/208.02 753.12/208.02 [c_10](x1, x2) = [7] x1 + [7] x2 + [0] 753.12/208.02 753.12/208.02 [c_11](x1, x2, x3, x4, x5) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [7] x5 + [0] 753.12/208.02 753.12/208.02 [c_12](x1, x2, x3, x4) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [0] 753.12/208.02 753.12/208.02 [c_13](x1, x2, x3, x4) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [0] 753.12/208.02 753.12/208.02 [c_14](x1, x2) = [7] x1 + [7] x2 + [0] 753.12/208.02 753.12/208.02 [c_15](x1, x2, x3, x4) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [0] 753.12/208.02 753.12/208.02 [c_16](x1) = [7] x1 + [0] 753.12/208.02 753.12/208.02 [c_17](x1, x2, x3, x4, x5) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [7] x5 + [0] 753.12/208.02 753.12/208.02 [c_18](x1, x2, x3, x4, x5) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [7] x5 + [0] 753.12/208.02 753.12/208.02 [c_19](x1, x2, x3, x4, x5) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [7] x5 + [0] 753.12/208.02 753.12/208.02 [c_20](x1, x2) = [7] x1 + [7] x2 + [0] 753.12/208.02 753.12/208.02 [c] = [0] 753.12/208.02 753.12/208.02 [c_1](x1) = [1] x1 + [1] 753.12/208.02 753.12/208.02 [c_2](x1) = [1] x1 + [0] 753.12/208.02 753.12/208.02 [c_3](x1) = [1] x1 + [0] 753.12/208.02 753.12/208.02 [c_4](x1, x2) = [1] x1 + [1] x2 + [0] 753.12/208.02 753.12/208.02 [c_5](x1) = [1] x1 + [0] 753.12/208.02 753.12/208.02 [c_6](x1) = [1] x1 + [0] 753.12/208.02 753.12/208.02 [c_7](x1) = [1] x1 + [0] 753.12/208.02 753.12/208.02 [c_8](x1) = [1] x1 + [0] 753.12/208.02 753.12/208.02 [c_9](x1) = [1] x1 + [0] 753.12/208.02 753.12/208.02 [c_10](x1) = [1] x1 + [3] 753.12/208.02 753.12/208.02 [c_11](x1) = [1] x1 + [0] 753.12/208.02 753.12/208.02 The order satisfies the following ordering constraints: 753.12/208.02 753.12/208.02 [U11(tt(), V1, V2)] = [0] 753.12/208.02 >= [0] 753.12/208.02 = [U12(isNatKind(activate(V1)), activate(V1), activate(V2))] 753.12/208.02 753.12/208.02 [U12(tt(), V1, V2)] = [0] 753.12/208.02 >= [0] 753.12/208.02 = [U13(isNatKind(activate(V2)), activate(V1), activate(V2))] 753.12/208.02 753.12/208.02 [isNatKind(n__0())] = [0] 753.12/208.02 >= [0] 753.12/208.02 = [tt()] 753.12/208.02 753.12/208.02 [isNatKind(n__plus(V1, V2))] = [0] 753.12/208.02 >= [0] 753.12/208.02 = [U31(isNatKind(activate(V1)), activate(V2))] 753.12/208.02 753.12/208.02 [isNatKind(n__s(V1))] = [0] 753.12/208.02 >= [0] 753.12/208.02 = [U41(isNatKind(activate(V1)))] 753.12/208.02 753.12/208.02 [activate(X)] = [1] X + [0] 753.12/208.02 >= [1] X + [0] 753.12/208.02 = [X] 753.12/208.02 753.12/208.02 [activate(n__0())] = [0] 753.12/208.02 >= [0] 753.12/208.02 = [0()] 753.12/208.02 753.12/208.02 [activate(n__plus(X1, X2))] = [1] X1 + [1] X2 + [2] 753.12/208.02 >= [1] X1 + [1] X2 + [2] 753.12/208.03 = [plus(activate(X1), activate(X2))] 753.12/208.03 753.12/208.03 [activate(n__s(X))] = [1] X + [0] 753.12/208.03 >= [1] X + [0] 753.12/208.03 = [s(activate(X))] 753.12/208.03 753.12/208.03 [U13(tt(), V1, V2)] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [U14(isNatKind(activate(V2)), activate(V1), activate(V2))] 753.12/208.03 753.12/208.03 [U14(tt(), V1, V2)] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [U15(isNat(activate(V1)), activate(V2))] 753.12/208.03 753.12/208.03 [U15(tt(), V2)] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [U16(isNat(activate(V2)))] 753.12/208.03 753.12/208.03 [isNat(n__0())] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [tt()] 753.12/208.03 753.12/208.03 [isNat(n__plus(V1, V2))] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [U11(isNatKind(activate(V1)), activate(V1), activate(V2))] 753.12/208.03 753.12/208.03 [isNat(n__s(V1))] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [U21(isNatKind(activate(V1)), activate(V1))] 753.12/208.03 753.12/208.03 [U16(tt())] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [tt()] 753.12/208.03 753.12/208.03 [U21(tt(), V1)] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [U22(isNatKind(activate(V1)), activate(V1))] 753.12/208.03 753.12/208.03 [U22(tt(), V1)] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [U23(isNat(activate(V1)))] 753.12/208.03 753.12/208.03 [U23(tt())] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [tt()] 753.12/208.03 753.12/208.03 [U31(tt(), V2)] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [U32(isNatKind(activate(V2)))] 753.12/208.03 753.12/208.03 [U32(tt())] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [tt()] 753.12/208.03 753.12/208.03 [U41(tt())] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [tt()] 753.12/208.03 753.12/208.03 [s(X)] = [1] X + [0] 753.12/208.03 >= [1] X + [0] 753.12/208.03 = [n__s(X)] 753.12/208.03 753.12/208.03 [plus(X1, X2)] = [1] X1 + [1] X2 + [2] 753.12/208.03 >= [1] X1 + [1] X2 + [2] 753.12/208.03 = [n__plus(X1, X2)] 753.12/208.03 753.12/208.03 [0()] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [n__0()] 753.12/208.03 753.12/208.03 [U11^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [4] 753.12/208.03 > [2] V1 + [2] V2 + [1] 753.12/208.03 = [c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)))] 753.12/208.03 753.12/208.03 [U12^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [0] 753.12/208.03 >= [2] V1 + [2] V2 + [0] 753.12/208.03 = [c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)))] 753.12/208.03 753.12/208.03 [U13^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [0] 753.12/208.03 >= [2] V1 + [2] V2 + [0] 753.12/208.03 = [c_3(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)))] 753.12/208.03 753.12/208.03 [U14^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [0] 753.12/208.03 >= [2] V1 + [2] V2 + [0] 753.12/208.03 = [c_4(U15^#(isNat(activate(V1)), activate(V2)), 753.12/208.03 isNat^#(activate(V1)))] 753.12/208.03 753.12/208.03 [U15^#(tt(), V2)] = [2] V2 + [0] 753.12/208.03 >= [2] V2 + [0] 753.12/208.03 = [c_5(isNat^#(activate(V2)))] 753.12/208.03 753.12/208.03 [isNat^#(n__plus(V1, V2))] = [2] V1 + [2] V2 + [4] 753.12/208.03 >= [2] V1 + [2] V2 + [4] 753.12/208.03 = [c_6(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)))] 753.12/208.03 753.12/208.03 [isNat^#(n__s(V1))] = [2] V1 + [0] 753.12/208.03 >= [2] V1 + [0] 753.12/208.03 = [c_7(U21^#(isNatKind(activate(V1)), activate(V1)))] 753.12/208.03 753.12/208.03 [U21^#(tt(), V1)] = [2] V1 + [0] 753.12/208.03 >= [2] V1 + [0] 753.12/208.03 = [c_8(U22^#(isNatKind(activate(V1)), activate(V1)))] 753.12/208.03 753.12/208.03 [U22^#(tt(), V1)] = [2] V1 + [0] 753.12/208.03 >= [2] V1 + [0] 753.12/208.03 = [c_9(isNat^#(activate(V1)))] 753.12/208.03 753.12/208.03 [U61^#(tt(), M, N)] = [7] N + [7] M + [7] 753.12/208.03 > [4] N + [3] 753.12/208.03 = [c_10(U62^#(isNatKind(activate(M)), activate(M), activate(N)))] 753.12/208.03 753.12/208.03 [U62^#(tt(), M, N)] = [4] N + [0] 753.12/208.03 >= [2] N + [0] 753.12/208.03 = [c_11(isNat^#(activate(N)))] 753.12/208.03 753.12/208.03 753.12/208.03 We return to the main proof. Consider the set of all dependency 753.12/208.03 pairs 753.12/208.03 753.12/208.03 : 753.12/208.03 { 1: U11^#(tt(), V1, V2) -> 753.12/208.03 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.12/208.03 , 2: U12^#(tt(), V1, V2) -> 753.12/208.03 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.12/208.03 , 3: U13^#(tt(), V1, V2) -> 753.12/208.03 c_3(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.12/208.03 , 4: U14^#(tt(), V1, V2) -> 753.12/208.03 c_4(U15^#(isNat(activate(V1)), activate(V2)), 753.12/208.03 isNat^#(activate(V1))) 753.12/208.03 , 5: U15^#(tt(), V2) -> c_5(isNat^#(activate(V2))) 753.12/208.03 , 6: isNat^#(n__plus(V1, V2)) -> 753.12/208.03 c_6(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.12/208.03 , 7: isNat^#(n__s(V1)) -> 753.12/208.03 c_7(U21^#(isNatKind(activate(V1)), activate(V1))) 753.12/208.03 , 8: U21^#(tt(), V1) -> 753.12/208.03 c_8(U22^#(isNatKind(activate(V1)), activate(V1))) 753.12/208.03 , 9: U22^#(tt(), V1) -> c_9(isNat^#(activate(V1))) 753.12/208.03 , 10: U61^#(tt(), M, N) -> 753.12/208.03 c_10(U62^#(isNatKind(activate(M)), activate(M), activate(N))) 753.12/208.03 , 11: U62^#(tt(), M, N) -> c_11(isNat^#(activate(N))) } 753.12/208.03 753.12/208.03 Processor 'matrix interpretation of dimension 1' induces the 753.12/208.03 complexity certificate YES(?,O(n^1)) on application of dependency 753.12/208.03 pairs {1,10}. These cover all (indirect) predecessors of dependency 753.12/208.03 pairs {1,2,3,4,5,10,11}, their number of application is equally 753.12/208.03 bounded. The dependency pairs are shifted into the weak component. 753.12/208.03 753.12/208.03 We are left with following problem, upon which TcT provides the 753.12/208.03 certificate YES(O(1),O(n^1)). 753.12/208.03 753.12/208.03 Strict DPs: 753.12/208.03 { isNat^#(n__plus(V1, V2)) -> 753.12/208.03 c_6(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.12/208.03 , isNat^#(n__s(V1)) -> 753.12/208.03 c_7(U21^#(isNatKind(activate(V1)), activate(V1))) 753.12/208.03 , U21^#(tt(), V1) -> 753.12/208.03 c_8(U22^#(isNatKind(activate(V1)), activate(V1))) 753.12/208.03 , U22^#(tt(), V1) -> c_9(isNat^#(activate(V1))) } 753.12/208.03 Weak DPs: 753.12/208.03 { U11^#(tt(), V1, V2) -> 753.12/208.03 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.12/208.03 , U12^#(tt(), V1, V2) -> 753.12/208.03 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.12/208.03 , U13^#(tt(), V1, V2) -> 753.12/208.03 c_3(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.12/208.03 , U14^#(tt(), V1, V2) -> 753.12/208.03 c_4(U15^#(isNat(activate(V1)), activate(V2)), 753.12/208.03 isNat^#(activate(V1))) 753.12/208.03 , U15^#(tt(), V2) -> c_5(isNat^#(activate(V2))) 753.12/208.03 , U61^#(tt(), M, N) -> 753.12/208.03 c_10(U62^#(isNatKind(activate(M)), activate(M), activate(N))) 753.12/208.03 , U62^#(tt(), M, N) -> c_11(isNat^#(activate(N))) } 753.12/208.03 Weak Trs: 753.12/208.03 { U11(tt(), V1, V2) -> 753.12/208.03 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.03 , U12(tt(), V1, V2) -> 753.12/208.03 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.03 , isNatKind(n__0()) -> tt() 753.12/208.03 , isNatKind(n__plus(V1, V2)) -> 753.12/208.03 U31(isNatKind(activate(V1)), activate(V2)) 753.12/208.03 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.12/208.03 , activate(X) -> X 753.12/208.03 , activate(n__0()) -> 0() 753.12/208.03 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.12/208.03 , activate(n__s(X)) -> s(activate(X)) 753.12/208.03 , U13(tt(), V1, V2) -> 753.12/208.03 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.03 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.12/208.03 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.12/208.03 , isNat(n__0()) -> tt() 753.12/208.03 , isNat(n__plus(V1, V2)) -> 753.12/208.03 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.03 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.12/208.03 , U16(tt()) -> tt() 753.12/208.03 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.12/208.03 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.12/208.03 , U23(tt()) -> tt() 753.12/208.03 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.12/208.03 , U32(tt()) -> tt() 753.12/208.03 , U41(tt()) -> tt() 753.12/208.03 , s(X) -> n__s(X) 753.12/208.03 , plus(X1, X2) -> n__plus(X1, X2) 753.12/208.03 , 0() -> n__0() } 753.12/208.03 Obligation: 753.12/208.03 innermost runtime complexity 753.12/208.03 Answer: 753.12/208.03 YES(O(1),O(n^1)) 753.12/208.03 753.12/208.03 We use the processor 'matrix interpretation of dimension 1' to 753.12/208.03 orient following rules strictly. 753.12/208.03 753.12/208.03 DPs: 753.12/208.03 { 1: isNat^#(n__plus(V1, V2)) -> 753.12/208.03 c_6(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.12/208.03 , 10: U61^#(tt(), M, N) -> 753.12/208.03 c_10(U62^#(isNatKind(activate(M)), activate(M), activate(N))) } 753.12/208.03 753.12/208.03 Sub-proof: 753.12/208.03 ---------- 753.12/208.03 The following argument positions are usable: 753.12/208.03 Uargs(c_1) = {1}, Uargs(c_2) = {1}, Uargs(c_3) = {1}, 753.12/208.03 Uargs(c_4) = {1, 2}, Uargs(c_5) = {1}, Uargs(c_6) = {1}, 753.12/208.03 Uargs(c_7) = {1}, Uargs(c_8) = {1}, Uargs(c_9) = {1}, 753.12/208.03 Uargs(c_10) = {1}, Uargs(c_11) = {1} 753.12/208.03 753.12/208.03 TcT has computed the following constructor-based matrix 753.12/208.03 interpretation satisfying not(EDA). 753.12/208.03 753.12/208.03 [U11](x1, x2, x3) = [0] 753.12/208.03 753.12/208.03 [tt] = [0] 753.12/208.03 753.12/208.03 [U12](x1, x2, x3) = [0] 753.12/208.03 753.12/208.03 [isNatKind](x1) = [0] 753.12/208.03 753.12/208.03 [activate](x1) = [1] x1 + [0] 753.12/208.03 753.12/208.03 [U13](x1, x2, x3) = [0] 753.12/208.03 753.12/208.03 [U14](x1, x2, x3) = [0] 753.12/208.03 753.12/208.03 [U15](x1, x2) = [0] 753.12/208.03 753.12/208.03 [isNat](x1) = [0] 753.12/208.03 753.12/208.03 [U16](x1) = [0] 753.12/208.03 753.12/208.03 [U21](x1, x2) = [0] 753.12/208.03 753.12/208.03 [U22](x1, x2) = [0] 753.12/208.03 753.12/208.03 [U23](x1) = [0] 753.12/208.03 753.12/208.03 [U31](x1, x2) = [0] 753.12/208.03 753.12/208.03 [U32](x1) = [0] 753.12/208.03 753.12/208.03 [U41](x1) = [0] 753.12/208.03 753.12/208.03 [s](x1) = [1] x1 + [0] 753.12/208.03 753.12/208.03 [plus](x1, x2) = [1] x1 + [1] x2 + [2] 753.12/208.03 753.12/208.03 [n__0] = [0] 753.12/208.03 753.12/208.03 [n__plus](x1, x2) = [1] x1 + [1] x2 + [2] 753.12/208.03 753.12/208.03 [n__s](x1) = [1] x1 + [0] 753.12/208.03 753.12/208.03 [0] = [0] 753.12/208.03 753.12/208.03 [U11^#](x1, x2, x3) = [1] x2 + [1] x3 + [0] 753.12/208.03 753.12/208.03 [U12^#](x1, x2, x3) = [1] x2 + [1] x3 + [0] 753.12/208.03 753.12/208.03 [isNatKind^#](x1) = [7] x1 + [0] 753.12/208.03 753.12/208.03 [activate^#](x1) = [7] x1 + [0] 753.12/208.03 753.12/208.03 [U13^#](x1, x2, x3) = [1] x2 + [1] x3 + [0] 753.12/208.03 753.12/208.03 [U14^#](x1, x2, x3) = [1] x2 + [1] x3 + [0] 753.12/208.03 753.12/208.03 [U15^#](x1, x2) = [1] x2 + [0] 753.12/208.03 753.12/208.03 [isNat^#](x1) = [1] x1 + [0] 753.12/208.03 753.12/208.03 [U21^#](x1, x2) = [1] x2 + [0] 753.12/208.03 753.12/208.03 [U22^#](x1, x2) = [1] x2 + [0] 753.12/208.03 753.12/208.03 [U51^#](x1, x2) = [7] x1 + [7] x2 + [0] 753.12/208.03 753.12/208.03 [U52^#](x1, x2) = [7] x1 + [7] x2 + [0] 753.12/208.03 753.12/208.03 [U61^#](x1, x2, x3) = [7] x1 + [7] x2 + [7] x3 + [7] 753.12/208.03 753.12/208.03 [U62^#](x1, x2, x3) = [1] x3 + [0] 753.12/208.03 753.12/208.03 [U63^#](x1, x2, x3) = [7] x1 + [7] x2 + [7] x3 + [0] 753.12/208.03 753.12/208.03 [U64^#](x1, x2, x3) = [7] x1 + [7] x2 + [7] x3 + [0] 753.12/208.03 753.12/208.03 [c_1](x1, x2, x3, x4, x5) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [7] x5 + [0] 753.12/208.03 753.12/208.03 [c_2](x1, x2, x3, x4, x5) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [7] x5 + [0] 753.12/208.03 753.12/208.03 [c_7](x1, x2, x3, x4, x5) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [7] x5 + [0] 753.12/208.03 753.12/208.03 [c_9](x1, x2, x3, x4) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [0] 753.12/208.03 753.12/208.03 [c_10](x1, x2) = [7] x1 + [7] x2 + [0] 753.12/208.03 753.12/208.03 [c_11](x1, x2, x3, x4, x5) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [7] x5 + [0] 753.12/208.03 753.12/208.03 [c_12](x1, x2, x3, x4) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [0] 753.12/208.03 753.12/208.03 [c_13](x1, x2, x3, x4) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [0] 753.12/208.03 753.12/208.03 [c_14](x1, x2) = [7] x1 + [7] x2 + [0] 753.12/208.03 753.12/208.03 [c_15](x1, x2, x3, x4) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [0] 753.12/208.03 753.12/208.03 [c_16](x1) = [7] x1 + [0] 753.12/208.03 753.12/208.03 [c_17](x1, x2, x3, x4, x5) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [7] x5 + [0] 753.12/208.03 753.12/208.03 [c_18](x1, x2, x3, x4, x5) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [7] x5 + [0] 753.12/208.03 753.12/208.03 [c_19](x1, x2, x3, x4, x5) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [7] x5 + [0] 753.12/208.03 753.12/208.03 [c_20](x1, x2) = [7] x1 + [7] x2 + [0] 753.12/208.03 753.12/208.03 [c] = [0] 753.12/208.03 753.12/208.03 [c_1](x1) = [1] x1 + [0] 753.12/208.03 753.12/208.03 [c_2](x1) = [1] x1 + [0] 753.12/208.03 753.12/208.03 [c_3](x1) = [1] x1 + [0] 753.12/208.03 753.12/208.03 [c_4](x1, x2) = [1] x1 + [1] x2 + [0] 753.12/208.03 753.12/208.03 [c_5](x1) = [1] x1 + [0] 753.12/208.03 753.12/208.03 [c_6](x1) = [1] x1 + [1] 753.12/208.03 753.12/208.03 [c_7](x1) = [1] x1 + [0] 753.12/208.03 753.12/208.03 [c_8](x1) = [1] x1 + [0] 753.12/208.03 753.12/208.03 [c_9](x1) = [1] x1 + [0] 753.12/208.03 753.12/208.03 [c_10](x1) = [4] x1 + [3] 753.12/208.03 753.12/208.03 [c_11](x1) = [1] x1 + [0] 753.12/208.03 753.12/208.03 The order satisfies the following ordering constraints: 753.12/208.03 753.12/208.03 [U11(tt(), V1, V2)] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [U12(isNatKind(activate(V1)), activate(V1), activate(V2))] 753.12/208.03 753.12/208.03 [U12(tt(), V1, V2)] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [U13(isNatKind(activate(V2)), activate(V1), activate(V2))] 753.12/208.03 753.12/208.03 [isNatKind(n__0())] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [tt()] 753.12/208.03 753.12/208.03 [isNatKind(n__plus(V1, V2))] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [U31(isNatKind(activate(V1)), activate(V2))] 753.12/208.03 753.12/208.03 [isNatKind(n__s(V1))] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [U41(isNatKind(activate(V1)))] 753.12/208.03 753.12/208.03 [activate(X)] = [1] X + [0] 753.12/208.03 >= [1] X + [0] 753.12/208.03 = [X] 753.12/208.03 753.12/208.03 [activate(n__0())] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [0()] 753.12/208.03 753.12/208.03 [activate(n__plus(X1, X2))] = [1] X1 + [1] X2 + [2] 753.12/208.03 >= [1] X1 + [1] X2 + [2] 753.12/208.03 = [plus(activate(X1), activate(X2))] 753.12/208.03 753.12/208.03 [activate(n__s(X))] = [1] X + [0] 753.12/208.03 >= [1] X + [0] 753.12/208.03 = [s(activate(X))] 753.12/208.03 753.12/208.03 [U13(tt(), V1, V2)] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [U14(isNatKind(activate(V2)), activate(V1), activate(V2))] 753.12/208.03 753.12/208.03 [U14(tt(), V1, V2)] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [U15(isNat(activate(V1)), activate(V2))] 753.12/208.03 753.12/208.03 [U15(tt(), V2)] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [U16(isNat(activate(V2)))] 753.12/208.03 753.12/208.03 [isNat(n__0())] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [tt()] 753.12/208.03 753.12/208.03 [isNat(n__plus(V1, V2))] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [U11(isNatKind(activate(V1)), activate(V1), activate(V2))] 753.12/208.03 753.12/208.03 [isNat(n__s(V1))] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [U21(isNatKind(activate(V1)), activate(V1))] 753.12/208.03 753.12/208.03 [U16(tt())] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [tt()] 753.12/208.03 753.12/208.03 [U21(tt(), V1)] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [U22(isNatKind(activate(V1)), activate(V1))] 753.12/208.03 753.12/208.03 [U22(tt(), V1)] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [U23(isNat(activate(V1)))] 753.12/208.03 753.12/208.03 [U23(tt())] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [tt()] 753.12/208.03 753.12/208.03 [U31(tt(), V2)] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [U32(isNatKind(activate(V2)))] 753.12/208.03 753.12/208.03 [U32(tt())] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [tt()] 753.12/208.03 753.12/208.03 [U41(tt())] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [tt()] 753.12/208.03 753.12/208.03 [s(X)] = [1] X + [0] 753.12/208.03 >= [1] X + [0] 753.12/208.03 = [n__s(X)] 753.12/208.03 753.12/208.03 [plus(X1, X2)] = [1] X1 + [1] X2 + [2] 753.12/208.03 >= [1] X1 + [1] X2 + [2] 753.12/208.03 = [n__plus(X1, X2)] 753.12/208.03 753.12/208.03 [0()] = [0] 753.12/208.03 >= [0] 753.12/208.03 = [n__0()] 753.12/208.03 753.12/208.03 [U11^#(tt(), V1, V2)] = [1] V1 + [1] V2 + [0] 753.12/208.03 >= [1] V1 + [1] V2 + [0] 753.12/208.03 = [c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)))] 753.12/208.03 753.12/208.03 [U12^#(tt(), V1, V2)] = [1] V1 + [1] V2 + [0] 753.12/208.03 >= [1] V1 + [1] V2 + [0] 753.12/208.03 = [c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)))] 753.12/208.03 753.12/208.03 [U13^#(tt(), V1, V2)] = [1] V1 + [1] V2 + [0] 753.12/208.03 >= [1] V1 + [1] V2 + [0] 753.12/208.03 = [c_3(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)))] 753.12/208.03 753.12/208.03 [U14^#(tt(), V1, V2)] = [1] V1 + [1] V2 + [0] 753.12/208.03 >= [1] V1 + [1] V2 + [0] 753.12/208.03 = [c_4(U15^#(isNat(activate(V1)), activate(V2)), 753.12/208.03 isNat^#(activate(V1)))] 753.12/208.03 753.12/208.03 [U15^#(tt(), V2)] = [1] V2 + [0] 753.12/208.04 >= [1] V2 + [0] 753.12/208.04 = [c_5(isNat^#(activate(V2)))] 753.12/208.04 753.12/208.04 [isNat^#(n__plus(V1, V2))] = [1] V1 + [1] V2 + [2] 753.12/208.04 > [1] V1 + [1] V2 + [1] 753.12/208.04 = [c_6(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)))] 753.12/208.04 753.12/208.04 [isNat^#(n__s(V1))] = [1] V1 + [0] 753.12/208.04 >= [1] V1 + [0] 753.12/208.04 = [c_7(U21^#(isNatKind(activate(V1)), activate(V1)))] 753.12/208.04 753.12/208.04 [U21^#(tt(), V1)] = [1] V1 + [0] 753.12/208.04 >= [1] V1 + [0] 753.12/208.04 = [c_8(U22^#(isNatKind(activate(V1)), activate(V1)))] 753.12/208.04 753.12/208.04 [U22^#(tt(), V1)] = [1] V1 + [0] 753.12/208.04 >= [1] V1 + [0] 753.12/208.04 = [c_9(isNat^#(activate(V1)))] 753.12/208.04 753.12/208.04 [U61^#(tt(), M, N)] = [7] N + [7] M + [7] 753.12/208.04 > [4] N + [3] 753.12/208.04 = [c_10(U62^#(isNatKind(activate(M)), activate(M), activate(N)))] 753.12/208.04 753.12/208.04 [U62^#(tt(), M, N)] = [1] N + [0] 753.12/208.04 >= [1] N + [0] 753.12/208.04 = [c_11(isNat^#(activate(N)))] 753.12/208.04 753.12/208.04 753.12/208.04 We return to the main proof. Consider the set of all dependency 753.12/208.04 pairs 753.12/208.04 753.12/208.04 : 753.12/208.04 { 1: isNat^#(n__plus(V1, V2)) -> 753.12/208.04 c_6(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.12/208.04 , 2: isNat^#(n__s(V1)) -> 753.12/208.04 c_7(U21^#(isNatKind(activate(V1)), activate(V1))) 753.12/208.04 , 3: U21^#(tt(), V1) -> 753.12/208.04 c_8(U22^#(isNatKind(activate(V1)), activate(V1))) 753.12/208.04 , 4: U22^#(tt(), V1) -> c_9(isNat^#(activate(V1))) 753.12/208.04 , 5: U11^#(tt(), V1, V2) -> 753.12/208.04 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.12/208.04 , 6: U12^#(tt(), V1, V2) -> 753.12/208.04 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.12/208.04 , 7: U13^#(tt(), V1, V2) -> 753.12/208.04 c_3(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.12/208.04 , 8: U14^#(tt(), V1, V2) -> 753.12/208.04 c_4(U15^#(isNat(activate(V1)), activate(V2)), 753.12/208.04 isNat^#(activate(V1))) 753.12/208.04 , 9: U15^#(tt(), V2) -> c_5(isNat^#(activate(V2))) 753.12/208.04 , 10: U61^#(tt(), M, N) -> 753.12/208.04 c_10(U62^#(isNatKind(activate(M)), activate(M), activate(N))) 753.12/208.04 , 11: U62^#(tt(), M, N) -> c_11(isNat^#(activate(N))) } 753.12/208.04 753.12/208.04 Processor 'matrix interpretation of dimension 1' induces the 753.12/208.04 complexity certificate YES(?,O(n^1)) on application of dependency 753.12/208.04 pairs {1,10}. These cover all (indirect) predecessors of dependency 753.12/208.04 pairs {1,5,6,7,8,9,10,11}, their number of application is equally 753.12/208.04 bounded. The dependency pairs are shifted into the weak component. 753.12/208.04 753.12/208.04 We are left with following problem, upon which TcT provides the 753.12/208.04 certificate YES(O(1),O(n^1)). 753.12/208.04 753.12/208.04 Strict DPs: 753.12/208.04 { isNat^#(n__s(V1)) -> 753.12/208.04 c_7(U21^#(isNatKind(activate(V1)), activate(V1))) 753.12/208.04 , U21^#(tt(), V1) -> 753.12/208.04 c_8(U22^#(isNatKind(activate(V1)), activate(V1))) 753.12/208.04 , U22^#(tt(), V1) -> c_9(isNat^#(activate(V1))) } 753.12/208.04 Weak DPs: 753.12/208.04 { U11^#(tt(), V1, V2) -> 753.12/208.04 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.12/208.04 , U12^#(tt(), V1, V2) -> 753.12/208.04 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.12/208.04 , U13^#(tt(), V1, V2) -> 753.12/208.04 c_3(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.12/208.04 , U14^#(tt(), V1, V2) -> 753.12/208.04 c_4(U15^#(isNat(activate(V1)), activate(V2)), 753.12/208.04 isNat^#(activate(V1))) 753.12/208.04 , U15^#(tt(), V2) -> c_5(isNat^#(activate(V2))) 753.12/208.04 , isNat^#(n__plus(V1, V2)) -> 753.12/208.04 c_6(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.12/208.04 , U61^#(tt(), M, N) -> 753.12/208.04 c_10(U62^#(isNatKind(activate(M)), activate(M), activate(N))) 753.12/208.04 , U62^#(tt(), M, N) -> c_11(isNat^#(activate(N))) } 753.12/208.04 Weak Trs: 753.12/208.04 { U11(tt(), V1, V2) -> 753.12/208.04 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.04 , U12(tt(), V1, V2) -> 753.12/208.04 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.04 , isNatKind(n__0()) -> tt() 753.12/208.04 , isNatKind(n__plus(V1, V2)) -> 753.12/208.04 U31(isNatKind(activate(V1)), activate(V2)) 753.12/208.04 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.12/208.04 , activate(X) -> X 753.12/208.04 , activate(n__0()) -> 0() 753.12/208.04 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.12/208.04 , activate(n__s(X)) -> s(activate(X)) 753.12/208.04 , U13(tt(), V1, V2) -> 753.12/208.04 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.04 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.12/208.04 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.12/208.04 , isNat(n__0()) -> tt() 753.12/208.04 , isNat(n__plus(V1, V2)) -> 753.12/208.04 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.04 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.12/208.04 , U16(tt()) -> tt() 753.12/208.04 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.12/208.04 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.12/208.04 , U23(tt()) -> tt() 753.12/208.04 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.12/208.04 , U32(tt()) -> tt() 753.12/208.04 , U41(tt()) -> tt() 753.12/208.04 , s(X) -> n__s(X) 753.12/208.04 , plus(X1, X2) -> n__plus(X1, X2) 753.12/208.04 , 0() -> n__0() } 753.12/208.04 Obligation: 753.12/208.04 innermost runtime complexity 753.12/208.04 Answer: 753.12/208.04 YES(O(1),O(n^1)) 753.12/208.04 753.12/208.04 We use the processor 'matrix interpretation of dimension 1' to 753.12/208.04 orient following rules strictly. 753.12/208.04 753.12/208.04 DPs: 753.12/208.04 { 2: U21^#(tt(), V1) -> 753.12/208.04 c_8(U22^#(isNatKind(activate(V1)), activate(V1))) 753.12/208.04 , 10: U61^#(tt(), M, N) -> 753.12/208.04 c_10(U62^#(isNatKind(activate(M)), activate(M), activate(N))) } 753.12/208.04 753.12/208.04 Sub-proof: 753.12/208.04 ---------- 753.12/208.04 The following argument positions are usable: 753.12/208.04 Uargs(c_1) = {1}, Uargs(c_2) = {1}, Uargs(c_3) = {1}, 753.12/208.04 Uargs(c_4) = {1, 2}, Uargs(c_5) = {1}, Uargs(c_6) = {1}, 753.12/208.04 Uargs(c_7) = {1}, Uargs(c_8) = {1}, Uargs(c_9) = {1}, 753.12/208.04 Uargs(c_10) = {1}, Uargs(c_11) = {1} 753.12/208.04 753.12/208.04 TcT has computed the following constructor-based matrix 753.12/208.04 interpretation satisfying not(EDA). 753.12/208.04 753.12/208.04 [U11](x1, x2, x3) = [0] 753.12/208.04 753.12/208.04 [tt] = [0] 753.12/208.04 753.12/208.04 [U12](x1, x2, x3) = [0] 753.12/208.04 753.12/208.04 [isNatKind](x1) = [0] 753.12/208.04 753.12/208.04 [activate](x1) = [1] x1 + [0] 753.12/208.04 753.12/208.04 [U13](x1, x2, x3) = [0] 753.12/208.04 753.12/208.04 [U14](x1, x2, x3) = [0] 753.12/208.04 753.12/208.04 [U15](x1, x2) = [0] 753.12/208.04 753.12/208.04 [isNat](x1) = [0] 753.12/208.04 753.12/208.04 [U16](x1) = [0] 753.12/208.04 753.12/208.04 [U21](x1, x2) = [0] 753.12/208.04 753.12/208.04 [U22](x1, x2) = [0] 753.12/208.04 753.12/208.04 [U23](x1) = [0] 753.12/208.04 753.12/208.04 [U31](x1, x2) = [0] 753.12/208.04 753.12/208.04 [U32](x1) = [0] 753.12/208.04 753.12/208.04 [U41](x1) = [0] 753.12/208.04 753.12/208.04 [s](x1) = [1] x1 + [1] 753.12/208.04 753.12/208.04 [plus](x1, x2) = [1] x1 + [1] x2 + [0] 753.12/208.04 753.12/208.04 [n__0] = [0] 753.12/208.04 753.12/208.04 [n__plus](x1, x2) = [1] x1 + [1] x2 + [0] 753.12/208.04 753.12/208.04 [n__s](x1) = [1] x1 + [1] 753.12/208.04 753.12/208.04 [0] = [0] 753.12/208.04 753.12/208.04 [U11^#](x1, x2, x3) = [4] x2 + [4] x3 + [0] 753.12/208.04 753.12/208.04 [U12^#](x1, x2, x3) = [4] x2 + [4] x3 + [0] 753.12/208.04 753.12/208.04 [isNatKind^#](x1) = [7] x1 + [0] 753.12/208.04 753.12/208.04 [activate^#](x1) = [7] x1 + [0] 753.12/208.04 753.12/208.04 [U13^#](x1, x2, x3) = [4] x2 + [4] x3 + [0] 753.12/208.04 753.12/208.04 [U14^#](x1, x2, x3) = [4] x2 + [4] x3 + [0] 753.12/208.04 753.12/208.04 [U15^#](x1, x2) = [4] x2 + [0] 753.12/208.04 753.12/208.04 [isNat^#](x1) = [4] x1 + [0] 753.12/208.04 753.12/208.04 [U21^#](x1, x2) = [4] x2 + [4] 753.12/208.04 753.12/208.04 [U22^#](x1, x2) = [4] x2 + [0] 753.12/208.04 753.12/208.04 [U51^#](x1, x2) = [7] x1 + [7] x2 + [0] 753.12/208.04 753.12/208.04 [U52^#](x1, x2) = [7] x1 + [7] x2 + [0] 753.12/208.04 753.12/208.04 [U61^#](x1, x2, x3) = [7] x1 + [7] x2 + [7] x3 + [7] 753.12/208.04 753.12/208.04 [U62^#](x1, x2, x3) = [4] x3 + [0] 753.12/208.04 753.12/208.04 [U63^#](x1, x2, x3) = [7] x1 + [7] x2 + [7] x3 + [0] 753.12/208.04 753.12/208.04 [U64^#](x1, x2, x3) = [7] x1 + [7] x2 + [7] x3 + [0] 753.12/208.04 753.12/208.04 [c_1](x1, x2, x3, x4, x5) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [7] x5 + [0] 753.12/208.04 753.12/208.04 [c_2](x1, x2, x3, x4, x5) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [7] x5 + [0] 753.12/208.04 753.12/208.04 [c_7](x1, x2, x3, x4, x5) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [7] x5 + [0] 753.12/208.04 753.12/208.04 [c_9](x1, x2, x3, x4) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [0] 753.12/208.04 753.12/208.04 [c_10](x1, x2) = [7] x1 + [7] x2 + [0] 753.12/208.04 753.12/208.04 [c_11](x1, x2, x3, x4, x5) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [7] x5 + [0] 753.12/208.04 753.12/208.04 [c_12](x1, x2, x3, x4) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [0] 753.12/208.04 753.12/208.04 [c_13](x1, x2, x3, x4) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [0] 753.12/208.04 753.12/208.04 [c_14](x1, x2) = [7] x1 + [7] x2 + [0] 753.12/208.04 753.12/208.04 [c_15](x1, x2, x3, x4) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [0] 753.12/208.04 753.12/208.04 [c_16](x1) = [7] x1 + [0] 753.12/208.04 753.12/208.04 [c_17](x1, x2, x3, x4, x5) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [7] x5 + [0] 753.12/208.04 753.12/208.04 [c_18](x1, x2, x3, x4, x5) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [7] x5 + [0] 753.12/208.04 753.12/208.04 [c_19](x1, x2, x3, x4, x5) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [7] x5 + [0] 753.12/208.04 753.12/208.04 [c_20](x1, x2) = [7] x1 + [7] x2 + [0] 753.12/208.04 753.12/208.04 [c] = [0] 753.12/208.04 753.12/208.04 [c_1](x1) = [1] x1 + [0] 753.12/208.04 753.12/208.04 [c_2](x1) = [1] x1 + [0] 753.12/208.04 753.12/208.04 [c_3](x1) = [1] x1 + [0] 753.12/208.04 753.12/208.04 [c_4](x1, x2) = [1] x1 + [1] x2 + [0] 753.12/208.04 753.12/208.04 [c_5](x1) = [1] x1 + [0] 753.12/208.04 753.12/208.04 [c_6](x1) = [1] x1 + [0] 753.12/208.04 753.12/208.04 [c_7](x1) = [1] x1 + [0] 753.12/208.04 753.12/208.04 [c_8](x1) = [1] x1 + [1] 753.12/208.04 753.12/208.04 [c_9](x1) = [1] x1 + [0] 753.12/208.04 753.12/208.04 [c_10](x1) = [1] x1 + [3] 753.12/208.04 753.12/208.04 [c_11](x1) = [1] x1 + [0] 753.12/208.04 753.12/208.04 The order satisfies the following ordering constraints: 753.12/208.04 753.12/208.04 [U11(tt(), V1, V2)] = [0] 753.12/208.04 >= [0] 753.12/208.04 = [U12(isNatKind(activate(V1)), activate(V1), activate(V2))] 753.12/208.04 753.12/208.04 [U12(tt(), V1, V2)] = [0] 753.12/208.04 >= [0] 753.12/208.04 = [U13(isNatKind(activate(V2)), activate(V1), activate(V2))] 753.12/208.04 753.12/208.04 [isNatKind(n__0())] = [0] 753.12/208.04 >= [0] 753.12/208.04 = [tt()] 753.12/208.04 753.12/208.04 [isNatKind(n__plus(V1, V2))] = [0] 753.12/208.04 >= [0] 753.12/208.04 = [U31(isNatKind(activate(V1)), activate(V2))] 753.12/208.04 753.12/208.04 [isNatKind(n__s(V1))] = [0] 753.12/208.04 >= [0] 753.12/208.04 = [U41(isNatKind(activate(V1)))] 753.12/208.04 753.12/208.04 [activate(X)] = [1] X + [0] 753.12/208.04 >= [1] X + [0] 753.12/208.04 = [X] 753.12/208.04 753.12/208.04 [activate(n__0())] = [0] 753.12/208.04 >= [0] 753.12/208.04 = [0()] 753.12/208.04 753.12/208.04 [activate(n__plus(X1, X2))] = [1] X1 + [1] X2 + [0] 753.12/208.04 >= [1] X1 + [1] X2 + [0] 753.12/208.04 = [plus(activate(X1), activate(X2))] 753.12/208.04 753.12/208.04 [activate(n__s(X))] = [1] X + [1] 753.12/208.04 >= [1] X + [1] 753.12/208.04 = [s(activate(X))] 753.12/208.04 753.12/208.04 [U13(tt(), V1, V2)] = [0] 753.12/208.04 >= [0] 753.12/208.04 = [U14(isNatKind(activate(V2)), activate(V1), activate(V2))] 753.12/208.04 753.12/208.04 [U14(tt(), V1, V2)] = [0] 753.12/208.04 >= [0] 753.12/208.04 = [U15(isNat(activate(V1)), activate(V2))] 753.12/208.04 753.12/208.04 [U15(tt(), V2)] = [0] 753.12/208.04 >= [0] 753.12/208.04 = [U16(isNat(activate(V2)))] 753.12/208.04 753.12/208.04 [isNat(n__0())] = [0] 753.12/208.04 >= [0] 753.12/208.04 = [tt()] 753.12/208.04 753.12/208.04 [isNat(n__plus(V1, V2))] = [0] 753.12/208.04 >= [0] 753.12/208.04 = [U11(isNatKind(activate(V1)), activate(V1), activate(V2))] 753.12/208.04 753.12/208.04 [isNat(n__s(V1))] = [0] 753.12/208.04 >= [0] 753.12/208.04 = [U21(isNatKind(activate(V1)), activate(V1))] 753.12/208.04 753.12/208.04 [U16(tt())] = [0] 753.12/208.04 >= [0] 753.12/208.04 = [tt()] 753.12/208.04 753.12/208.04 [U21(tt(), V1)] = [0] 753.12/208.04 >= [0] 753.12/208.04 = [U22(isNatKind(activate(V1)), activate(V1))] 753.12/208.04 753.12/208.04 [U22(tt(), V1)] = [0] 753.12/208.04 >= [0] 753.12/208.04 = [U23(isNat(activate(V1)))] 753.12/208.04 753.12/208.04 [U23(tt())] = [0] 753.12/208.04 >= [0] 753.12/208.04 = [tt()] 753.12/208.04 753.12/208.04 [U31(tt(), V2)] = [0] 753.12/208.04 >= [0] 753.12/208.04 = [U32(isNatKind(activate(V2)))] 753.12/208.04 753.12/208.04 [U32(tt())] = [0] 753.12/208.04 >= [0] 753.12/208.04 = [tt()] 753.12/208.04 753.12/208.04 [U41(tt())] = [0] 753.12/208.04 >= [0] 753.12/208.04 = [tt()] 753.12/208.04 753.12/208.04 [s(X)] = [1] X + [1] 753.12/208.04 >= [1] X + [1] 753.12/208.04 = [n__s(X)] 753.12/208.04 753.12/208.04 [plus(X1, X2)] = [1] X1 + [1] X2 + [0] 753.12/208.04 >= [1] X1 + [1] X2 + [0] 753.12/208.04 = [n__plus(X1, X2)] 753.12/208.04 753.12/208.04 [0()] = [0] 753.12/208.04 >= [0] 753.12/208.04 = [n__0()] 753.12/208.04 753.12/208.04 [U11^#(tt(), V1, V2)] = [4] V1 + [4] V2 + [0] 753.12/208.04 >= [4] V1 + [4] V2 + [0] 753.12/208.04 = [c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)))] 753.12/208.04 753.12/208.04 [U12^#(tt(), V1, V2)] = [4] V1 + [4] V2 + [0] 753.12/208.04 >= [4] V1 + [4] V2 + [0] 753.12/208.04 = [c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)))] 753.12/208.04 753.12/208.04 [U13^#(tt(), V1, V2)] = [4] V1 + [4] V2 + [0] 753.12/208.04 >= [4] V1 + [4] V2 + [0] 753.12/208.04 = [c_3(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)))] 753.12/208.04 753.12/208.04 [U14^#(tt(), V1, V2)] = [4] V1 + [4] V2 + [0] 753.12/208.04 >= [4] V1 + [4] V2 + [0] 753.12/208.04 = [c_4(U15^#(isNat(activate(V1)), activate(V2)), 753.12/208.04 isNat^#(activate(V1)))] 753.12/208.04 753.12/208.04 [U15^#(tt(), V2)] = [4] V2 + [0] 753.12/208.04 >= [4] V2 + [0] 753.12/208.04 = [c_5(isNat^#(activate(V2)))] 753.12/208.04 753.12/208.04 [isNat^#(n__plus(V1, V2))] = [4] V1 + [4] V2 + [0] 753.12/208.04 >= [4] V1 + [4] V2 + [0] 753.12/208.04 = [c_6(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)))] 753.12/208.04 753.12/208.04 [isNat^#(n__s(V1))] = [4] V1 + [4] 753.12/208.04 >= [4] V1 + [4] 753.12/208.04 = [c_7(U21^#(isNatKind(activate(V1)), activate(V1)))] 753.12/208.04 753.12/208.04 [U21^#(tt(), V1)] = [4] V1 + [4] 753.12/208.04 > [4] V1 + [1] 753.12/208.04 = [c_8(U22^#(isNatKind(activate(V1)), activate(V1)))] 753.12/208.04 753.12/208.04 [U22^#(tt(), V1)] = [4] V1 + [0] 753.12/208.04 >= [4] V1 + [0] 753.12/208.04 = [c_9(isNat^#(activate(V1)))] 753.12/208.04 753.12/208.04 [U61^#(tt(), M, N)] = [7] N + [7] M + [7] 753.12/208.04 > [4] N + [3] 753.12/208.04 = [c_10(U62^#(isNatKind(activate(M)), activate(M), activate(N)))] 753.12/208.04 753.12/208.04 [U62^#(tt(), M, N)] = [4] N + [0] 753.12/208.04 >= [4] N + [0] 753.12/208.04 = [c_11(isNat^#(activate(N)))] 753.12/208.04 753.12/208.04 753.12/208.04 We return to the main proof. Consider the set of all dependency 753.12/208.04 pairs 753.12/208.04 753.12/208.04 : 753.12/208.04 { 1: isNat^#(n__s(V1)) -> 753.12/208.04 c_7(U21^#(isNatKind(activate(V1)), activate(V1))) 753.12/208.04 , 2: U21^#(tt(), V1) -> 753.12/208.04 c_8(U22^#(isNatKind(activate(V1)), activate(V1))) 753.12/208.04 , 3: U22^#(tt(), V1) -> c_9(isNat^#(activate(V1))) 753.12/208.04 , 4: U11^#(tt(), V1, V2) -> 753.12/208.04 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.12/208.04 , 5: U12^#(tt(), V1, V2) -> 753.12/208.04 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.12/208.04 , 6: U13^#(tt(), V1, V2) -> 753.12/208.04 c_3(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.12/208.04 , 7: U14^#(tt(), V1, V2) -> 753.12/208.04 c_4(U15^#(isNat(activate(V1)), activate(V2)), 753.12/208.04 isNat^#(activate(V1))) 753.12/208.04 , 8: U15^#(tt(), V2) -> c_5(isNat^#(activate(V2))) 753.12/208.04 , 9: isNat^#(n__plus(V1, V2)) -> 753.12/208.04 c_6(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.12/208.04 , 10: U61^#(tt(), M, N) -> 753.12/208.04 c_10(U62^#(isNatKind(activate(M)), activate(M), activate(N))) 753.12/208.04 , 11: U62^#(tt(), M, N) -> c_11(isNat^#(activate(N))) } 753.12/208.04 753.12/208.04 Processor 'matrix interpretation of dimension 1' induces the 753.12/208.04 complexity certificate YES(?,O(n^1)) on application of dependency 753.12/208.04 pairs {2,10}. These cover all (indirect) predecessors of dependency 753.12/208.04 pairs {2,3,10,11}, their number of application is equally bounded. 753.12/208.04 The dependency pairs are shifted into the weak component. 753.12/208.04 753.12/208.04 We are left with following problem, upon which TcT provides the 753.12/208.04 certificate YES(O(1),O(n^1)). 753.12/208.04 753.12/208.04 Strict DPs: 753.12/208.04 { isNat^#(n__s(V1)) -> 753.12/208.04 c_7(U21^#(isNatKind(activate(V1)), activate(V1))) } 753.12/208.04 Weak DPs: 753.12/208.04 { U11^#(tt(), V1, V2) -> 753.12/208.04 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.12/208.04 , U12^#(tt(), V1, V2) -> 753.12/208.04 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.12/208.04 , U13^#(tt(), V1, V2) -> 753.12/208.04 c_3(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.12/208.04 , U14^#(tt(), V1, V2) -> 753.12/208.04 c_4(U15^#(isNat(activate(V1)), activate(V2)), 753.12/208.04 isNat^#(activate(V1))) 753.12/208.04 , U15^#(tt(), V2) -> c_5(isNat^#(activate(V2))) 753.12/208.04 , isNat^#(n__plus(V1, V2)) -> 753.12/208.04 c_6(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.12/208.04 , U21^#(tt(), V1) -> 753.12/208.04 c_8(U22^#(isNatKind(activate(V1)), activate(V1))) 753.12/208.04 , U22^#(tt(), V1) -> c_9(isNat^#(activate(V1))) 753.12/208.04 , U61^#(tt(), M, N) -> 753.12/208.04 c_10(U62^#(isNatKind(activate(M)), activate(M), activate(N))) 753.12/208.04 , U62^#(tt(), M, N) -> c_11(isNat^#(activate(N))) } 753.12/208.04 Weak Trs: 753.12/208.04 { U11(tt(), V1, V2) -> 753.12/208.04 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.04 , U12(tt(), V1, V2) -> 753.12/208.04 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.04 , isNatKind(n__0()) -> tt() 753.12/208.04 , isNatKind(n__plus(V1, V2)) -> 753.12/208.04 U31(isNatKind(activate(V1)), activate(V2)) 753.12/208.04 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.12/208.04 , activate(X) -> X 753.12/208.04 , activate(n__0()) -> 0() 753.12/208.04 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.12/208.04 , activate(n__s(X)) -> s(activate(X)) 753.12/208.04 , U13(tt(), V1, V2) -> 753.12/208.04 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.04 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.12/208.04 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.12/208.04 , isNat(n__0()) -> tt() 753.12/208.04 , isNat(n__plus(V1, V2)) -> 753.12/208.04 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.04 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.12/208.04 , U16(tt()) -> tt() 753.12/208.04 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.12/208.04 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.12/208.04 , U23(tt()) -> tt() 753.12/208.04 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.12/208.04 , U32(tt()) -> tt() 753.12/208.04 , U41(tt()) -> tt() 753.12/208.04 , s(X) -> n__s(X) 753.12/208.04 , plus(X1, X2) -> n__plus(X1, X2) 753.12/208.04 , 0() -> n__0() } 753.12/208.04 Obligation: 753.12/208.04 innermost runtime complexity 753.12/208.04 Answer: 753.12/208.04 YES(O(1),O(n^1)) 753.12/208.04 753.12/208.04 We use the processor 'matrix interpretation of dimension 1' to 753.12/208.04 orient following rules strictly. 753.12/208.04 753.12/208.04 DPs: 753.12/208.04 { 1: isNat^#(n__s(V1)) -> 753.12/208.04 c_7(U21^#(isNatKind(activate(V1)), activate(V1))) 753.12/208.04 , 10: U61^#(tt(), M, N) -> 753.12/208.04 c_10(U62^#(isNatKind(activate(M)), activate(M), activate(N))) } 753.12/208.04 753.12/208.04 Sub-proof: 753.12/208.04 ---------- 753.12/208.04 The following argument positions are usable: 753.12/208.04 Uargs(c_1) = {1}, Uargs(c_2) = {1}, Uargs(c_3) = {1}, 753.12/208.04 Uargs(c_4) = {1, 2}, Uargs(c_5) = {1}, Uargs(c_6) = {1}, 753.12/208.04 Uargs(c_7) = {1}, Uargs(c_8) = {1}, Uargs(c_9) = {1}, 753.12/208.04 Uargs(c_10) = {1}, Uargs(c_11) = {1} 753.12/208.04 753.12/208.04 TcT has computed the following constructor-based matrix 753.12/208.04 interpretation satisfying not(EDA). 753.12/208.04 753.12/208.04 [U11](x1, x2, x3) = [0] 753.12/208.04 753.12/208.04 [tt] = [0] 753.12/208.04 753.12/208.04 [U12](x1, x2, x3) = [0] 753.12/208.04 753.12/208.04 [isNatKind](x1) = [0] 753.12/208.04 753.12/208.04 [activate](x1) = [1] x1 + [0] 753.12/208.04 753.12/208.04 [U13](x1, x2, x3) = [0] 753.12/208.04 753.12/208.04 [U14](x1, x2, x3) = [0] 753.12/208.04 753.12/208.04 [U15](x1, x2) = [0] 753.12/208.04 753.12/208.04 [isNat](x1) = [0] 753.12/208.04 753.12/208.04 [U16](x1) = [0] 753.12/208.04 753.12/208.04 [U21](x1, x2) = [0] 753.12/208.04 753.12/208.04 [U22](x1, x2) = [0] 753.12/208.04 753.12/208.04 [U23](x1) = [0] 753.12/208.04 753.12/208.04 [U31](x1, x2) = [0] 753.12/208.04 753.12/208.04 [U32](x1) = [0] 753.12/208.04 753.12/208.04 [U41](x1) = [0] 753.12/208.04 753.12/208.04 [s](x1) = [1] x1 + [1] 753.12/208.04 753.12/208.04 [plus](x1, x2) = [1] x1 + [1] x2 + [0] 753.12/208.04 753.12/208.04 [n__0] = [0] 753.12/208.04 753.12/208.04 [n__plus](x1, x2) = [1] x1 + [1] x2 + [0] 753.12/208.04 753.12/208.04 [n__s](x1) = [1] x1 + [1] 753.12/208.04 753.12/208.04 [0] = [0] 753.12/208.04 753.12/208.04 [U11^#](x1, x2, x3) = [2] x2 + [2] x3 + [0] 753.12/208.04 753.12/208.04 [U12^#](x1, x2, x3) = [2] x2 + [2] x3 + [0] 753.12/208.04 753.12/208.04 [isNatKind^#](x1) = [7] x1 + [0] 753.12/208.04 753.12/208.04 [activate^#](x1) = [7] x1 + [0] 753.12/208.04 753.12/208.04 [U13^#](x1, x2, x3) = [2] x2 + [2] x3 + [0] 753.12/208.04 753.12/208.04 [U14^#](x1, x2, x3) = [2] x2 + [2] x3 + [0] 753.12/208.04 753.12/208.04 [U15^#](x1, x2) = [2] x2 + [0] 753.12/208.04 753.12/208.04 [isNat^#](x1) = [2] x1 + [0] 753.12/208.04 753.12/208.05 [U21^#](x1, x2) = [2] x2 + [0] 753.12/208.05 753.12/208.05 [U22^#](x1, x2) = [2] x2 + [0] 753.12/208.05 753.12/208.05 [U51^#](x1, x2) = [7] x1 + [7] x2 + [0] 753.12/208.05 753.12/208.05 [U52^#](x1, x2) = [7] x1 + [7] x2 + [0] 753.12/208.05 753.12/208.05 [U61^#](x1, x2, x3) = [7] x1 + [7] x2 + [7] x3 + [7] 753.12/208.05 753.12/208.05 [U62^#](x1, x2, x3) = [2] x3 + [0] 753.12/208.05 753.12/208.05 [U63^#](x1, x2, x3) = [7] x1 + [7] x2 + [7] x3 + [0] 753.12/208.05 753.12/208.05 [U64^#](x1, x2, x3) = [7] x1 + [7] x2 + [7] x3 + [0] 753.12/208.05 753.12/208.05 [c_1](x1, x2, x3, x4, x5) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [7] x5 + [0] 753.12/208.05 753.12/208.05 [c_2](x1, x2, x3, x4, x5) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [7] x5 + [0] 753.12/208.05 753.12/208.05 [c_7](x1, x2, x3, x4, x5) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [7] x5 + [0] 753.12/208.05 753.12/208.05 [c_9](x1, x2, x3, x4) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [0] 753.12/208.05 753.12/208.05 [c_10](x1, x2) = [7] x1 + [7] x2 + [0] 753.12/208.05 753.12/208.05 [c_11](x1, x2, x3, x4, x5) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [7] x5 + [0] 753.12/208.05 753.12/208.05 [c_12](x1, x2, x3, x4) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [0] 753.12/208.05 753.12/208.05 [c_13](x1, x2, x3, x4) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [0] 753.12/208.05 753.12/208.05 [c_14](x1, x2) = [7] x1 + [7] x2 + [0] 753.12/208.05 753.12/208.05 [c_15](x1, x2, x3, x4) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [0] 753.12/208.05 753.12/208.05 [c_16](x1) = [7] x1 + [0] 753.12/208.05 753.12/208.05 [c_17](x1, x2, x3, x4, x5) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [7] x5 + [0] 753.12/208.05 753.12/208.05 [c_18](x1, x2, x3, x4, x5) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [7] x5 + [0] 753.12/208.05 753.12/208.05 [c_19](x1, x2, x3, x4, x5) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [7] x5 + [0] 753.12/208.05 753.12/208.05 [c_20](x1, x2) = [7] x1 + [7] x2 + [0] 753.12/208.05 753.12/208.05 [c] = [0] 753.12/208.05 753.12/208.05 [c_1](x1) = [1] x1 + [0] 753.12/208.05 753.12/208.05 [c_2](x1) = [1] x1 + [0] 753.12/208.05 753.12/208.05 [c_3](x1) = [1] x1 + [0] 753.12/208.05 753.12/208.05 [c_4](x1, x2) = [1] x1 + [1] x2 + [0] 753.12/208.05 753.12/208.05 [c_5](x1) = [1] x1 + [0] 753.12/208.05 753.12/208.05 [c_6](x1) = [1] x1 + [0] 753.12/208.05 753.12/208.05 [c_7](x1) = [1] x1 + [1] 753.12/208.05 753.12/208.05 [c_8](x1) = [1] x1 + [0] 753.12/208.05 753.12/208.05 [c_9](x1) = [1] x1 + [0] 753.12/208.05 753.12/208.05 [c_10](x1) = [1] x1 + [3] 753.12/208.05 753.12/208.05 [c_11](x1) = [1] x1 + [0] 753.12/208.05 753.12/208.05 The order satisfies the following ordering constraints: 753.12/208.05 753.12/208.05 [U11(tt(), V1, V2)] = [0] 753.12/208.05 >= [0] 753.12/208.05 = [U12(isNatKind(activate(V1)), activate(V1), activate(V2))] 753.12/208.05 753.12/208.05 [U12(tt(), V1, V2)] = [0] 753.12/208.05 >= [0] 753.12/208.05 = [U13(isNatKind(activate(V2)), activate(V1), activate(V2))] 753.12/208.05 753.12/208.05 [isNatKind(n__0())] = [0] 753.12/208.05 >= [0] 753.12/208.05 = [tt()] 753.12/208.05 753.12/208.05 [isNatKind(n__plus(V1, V2))] = [0] 753.12/208.05 >= [0] 753.12/208.05 = [U31(isNatKind(activate(V1)), activate(V2))] 753.12/208.05 753.12/208.05 [isNatKind(n__s(V1))] = [0] 753.12/208.05 >= [0] 753.12/208.05 = [U41(isNatKind(activate(V1)))] 753.12/208.05 753.12/208.05 [activate(X)] = [1] X + [0] 753.12/208.05 >= [1] X + [0] 753.12/208.05 = [X] 753.12/208.05 753.12/208.05 [activate(n__0())] = [0] 753.12/208.05 >= [0] 753.12/208.05 = [0()] 753.12/208.05 753.12/208.05 [activate(n__plus(X1, X2))] = [1] X1 + [1] X2 + [0] 753.12/208.05 >= [1] X1 + [1] X2 + [0] 753.12/208.05 = [plus(activate(X1), activate(X2))] 753.12/208.05 753.12/208.05 [activate(n__s(X))] = [1] X + [1] 753.12/208.05 >= [1] X + [1] 753.12/208.05 = [s(activate(X))] 753.12/208.05 753.12/208.05 [U13(tt(), V1, V2)] = [0] 753.12/208.05 >= [0] 753.12/208.05 = [U14(isNatKind(activate(V2)), activate(V1), activate(V2))] 753.12/208.05 753.12/208.05 [U14(tt(), V1, V2)] = [0] 753.12/208.05 >= [0] 753.12/208.05 = [U15(isNat(activate(V1)), activate(V2))] 753.12/208.05 753.12/208.05 [U15(tt(), V2)] = [0] 753.12/208.05 >= [0] 753.12/208.05 = [U16(isNat(activate(V2)))] 753.12/208.05 753.12/208.05 [isNat(n__0())] = [0] 753.12/208.05 >= [0] 753.12/208.05 = [tt()] 753.12/208.05 753.12/208.05 [isNat(n__plus(V1, V2))] = [0] 753.12/208.05 >= [0] 753.12/208.05 = [U11(isNatKind(activate(V1)), activate(V1), activate(V2))] 753.12/208.05 753.12/208.05 [isNat(n__s(V1))] = [0] 753.12/208.05 >= [0] 753.12/208.05 = [U21(isNatKind(activate(V1)), activate(V1))] 753.12/208.05 753.12/208.05 [U16(tt())] = [0] 753.12/208.05 >= [0] 753.12/208.05 = [tt()] 753.12/208.05 753.12/208.05 [U21(tt(), V1)] = [0] 753.12/208.05 >= [0] 753.12/208.05 = [U22(isNatKind(activate(V1)), activate(V1))] 753.12/208.05 753.12/208.05 [U22(tt(), V1)] = [0] 753.12/208.05 >= [0] 753.12/208.05 = [U23(isNat(activate(V1)))] 753.12/208.05 753.12/208.05 [U23(tt())] = [0] 753.12/208.05 >= [0] 753.12/208.05 = [tt()] 753.12/208.05 753.12/208.05 [U31(tt(), V2)] = [0] 753.12/208.05 >= [0] 753.12/208.05 = [U32(isNatKind(activate(V2)))] 753.12/208.05 753.12/208.05 [U32(tt())] = [0] 753.12/208.05 >= [0] 753.12/208.05 = [tt()] 753.12/208.05 753.12/208.05 [U41(tt())] = [0] 753.12/208.05 >= [0] 753.12/208.05 = [tt()] 753.12/208.05 753.12/208.05 [s(X)] = [1] X + [1] 753.12/208.05 >= [1] X + [1] 753.12/208.05 = [n__s(X)] 753.12/208.05 753.12/208.05 [plus(X1, X2)] = [1] X1 + [1] X2 + [0] 753.12/208.05 >= [1] X1 + [1] X2 + [0] 753.12/208.05 = [n__plus(X1, X2)] 753.12/208.05 753.12/208.05 [0()] = [0] 753.12/208.05 >= [0] 753.12/208.05 = [n__0()] 753.12/208.05 753.12/208.05 [U11^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [0] 753.12/208.05 >= [2] V1 + [2] V2 + [0] 753.12/208.05 = [c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)))] 753.12/208.05 753.12/208.05 [U12^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [0] 753.12/208.05 >= [2] V1 + [2] V2 + [0] 753.12/208.05 = [c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)))] 753.12/208.05 753.12/208.05 [U13^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [0] 753.12/208.05 >= [2] V1 + [2] V2 + [0] 753.12/208.05 = [c_3(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)))] 753.12/208.05 753.12/208.05 [U14^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [0] 753.12/208.05 >= [2] V1 + [2] V2 + [0] 753.12/208.05 = [c_4(U15^#(isNat(activate(V1)), activate(V2)), 753.12/208.05 isNat^#(activate(V1)))] 753.12/208.05 753.12/208.05 [U15^#(tt(), V2)] = [2] V2 + [0] 753.12/208.05 >= [2] V2 + [0] 753.12/208.05 = [c_5(isNat^#(activate(V2)))] 753.12/208.05 753.12/208.05 [isNat^#(n__plus(V1, V2))] = [2] V1 + [2] V2 + [0] 753.12/208.05 >= [2] V1 + [2] V2 + [0] 753.12/208.05 = [c_6(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)))] 753.12/208.05 753.12/208.05 [isNat^#(n__s(V1))] = [2] V1 + [2] 753.12/208.05 > [2] V1 + [1] 753.12/208.05 = [c_7(U21^#(isNatKind(activate(V1)), activate(V1)))] 753.12/208.05 753.12/208.05 [U21^#(tt(), V1)] = [2] V1 + [0] 753.12/208.05 >= [2] V1 + [0] 753.12/208.05 = [c_8(U22^#(isNatKind(activate(V1)), activate(V1)))] 753.12/208.05 753.12/208.05 [U22^#(tt(), V1)] = [2] V1 + [0] 753.12/208.05 >= [2] V1 + [0] 753.12/208.05 = [c_9(isNat^#(activate(V1)))] 753.12/208.05 753.12/208.05 [U61^#(tt(), M, N)] = [7] N + [7] M + [7] 753.12/208.05 > [2] N + [3] 753.12/208.05 = [c_10(U62^#(isNatKind(activate(M)), activate(M), activate(N)))] 753.12/208.05 753.12/208.05 [U62^#(tt(), M, N)] = [2] N + [0] 753.12/208.05 >= [2] N + [0] 753.12/208.05 = [c_11(isNat^#(activate(N)))] 753.12/208.05 753.12/208.05 753.12/208.05 We return to the main proof. Consider the set of all dependency 753.12/208.05 pairs 753.12/208.05 753.12/208.05 : 753.12/208.05 { 1: isNat^#(n__s(V1)) -> 753.12/208.05 c_7(U21^#(isNatKind(activate(V1)), activate(V1))) 753.12/208.05 , 2: U11^#(tt(), V1, V2) -> 753.12/208.05 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.12/208.05 , 3: U12^#(tt(), V1, V2) -> 753.12/208.05 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.12/208.05 , 4: U13^#(tt(), V1, V2) -> 753.12/208.05 c_3(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.12/208.05 , 5: U14^#(tt(), V1, V2) -> 753.12/208.05 c_4(U15^#(isNat(activate(V1)), activate(V2)), 753.12/208.05 isNat^#(activate(V1))) 753.12/208.05 , 6: U15^#(tt(), V2) -> c_5(isNat^#(activate(V2))) 753.12/208.05 , 7: isNat^#(n__plus(V1, V2)) -> 753.12/208.05 c_6(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.12/208.05 , 8: U21^#(tt(), V1) -> 753.12/208.05 c_8(U22^#(isNatKind(activate(V1)), activate(V1))) 753.12/208.05 , 9: U22^#(tt(), V1) -> c_9(isNat^#(activate(V1))) 753.12/208.05 , 10: U61^#(tt(), M, N) -> 753.12/208.05 c_10(U62^#(isNatKind(activate(M)), activate(M), activate(N))) 753.12/208.05 , 11: U62^#(tt(), M, N) -> c_11(isNat^#(activate(N))) } 753.12/208.05 753.12/208.05 Processor 'matrix interpretation of dimension 1' induces the 753.12/208.05 complexity certificate YES(?,O(n^1)) on application of dependency 753.12/208.05 pairs {1,10}. These cover all (indirect) predecessors of dependency 753.12/208.05 pairs {1,8,9,10,11}, their number of application is equally 753.12/208.05 bounded. The dependency pairs are shifted into the weak component. 753.12/208.05 753.12/208.05 We are left with following problem, upon which TcT provides the 753.12/208.05 certificate YES(O(1),O(1)). 753.12/208.05 753.12/208.05 Weak DPs: 753.12/208.05 { U11^#(tt(), V1, V2) -> 753.12/208.05 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.12/208.05 , U12^#(tt(), V1, V2) -> 753.12/208.05 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.12/208.05 , U13^#(tt(), V1, V2) -> 753.12/208.05 c_3(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.12/208.05 , U14^#(tt(), V1, V2) -> 753.12/208.05 c_4(U15^#(isNat(activate(V1)), activate(V2)), 753.12/208.05 isNat^#(activate(V1))) 753.12/208.05 , U15^#(tt(), V2) -> c_5(isNat^#(activate(V2))) 753.12/208.05 , isNat^#(n__plus(V1, V2)) -> 753.12/208.05 c_6(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.12/208.05 , isNat^#(n__s(V1)) -> 753.12/208.05 c_7(U21^#(isNatKind(activate(V1)), activate(V1))) 753.12/208.05 , U21^#(tt(), V1) -> 753.12/208.05 c_8(U22^#(isNatKind(activate(V1)), activate(V1))) 753.12/208.05 , U22^#(tt(), V1) -> c_9(isNat^#(activate(V1))) 753.12/208.05 , U61^#(tt(), M, N) -> 753.12/208.05 c_10(U62^#(isNatKind(activate(M)), activate(M), activate(N))) 753.12/208.05 , U62^#(tt(), M, N) -> c_11(isNat^#(activate(N))) } 753.12/208.05 Weak Trs: 753.12/208.05 { U11(tt(), V1, V2) -> 753.12/208.05 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.05 , U12(tt(), V1, V2) -> 753.12/208.05 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.05 , isNatKind(n__0()) -> tt() 753.12/208.05 , isNatKind(n__plus(V1, V2)) -> 753.12/208.05 U31(isNatKind(activate(V1)), activate(V2)) 753.12/208.05 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.12/208.05 , activate(X) -> X 753.12/208.05 , activate(n__0()) -> 0() 753.12/208.05 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.12/208.05 , activate(n__s(X)) -> s(activate(X)) 753.12/208.05 , U13(tt(), V1, V2) -> 753.12/208.05 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.05 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.12/208.05 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.12/208.05 , isNat(n__0()) -> tt() 753.12/208.05 , isNat(n__plus(V1, V2)) -> 753.12/208.05 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.05 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.12/208.05 , U16(tt()) -> tt() 753.12/208.05 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.12/208.05 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.12/208.05 , U23(tt()) -> tt() 753.12/208.05 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.12/208.05 , U32(tt()) -> tt() 753.12/208.05 , U41(tt()) -> tt() 753.12/208.05 , s(X) -> n__s(X) 753.12/208.05 , plus(X1, X2) -> n__plus(X1, X2) 753.12/208.05 , 0() -> n__0() } 753.12/208.05 Obligation: 753.12/208.05 innermost runtime complexity 753.12/208.05 Answer: 753.12/208.05 YES(O(1),O(1)) 753.12/208.05 753.12/208.05 The following weak DPs constitute a sub-graph of the DG that is 753.12/208.05 closed under successors. The DPs are removed. 753.12/208.05 753.12/208.05 { U11^#(tt(), V1, V2) -> 753.12/208.05 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.12/208.05 , U12^#(tt(), V1, V2) -> 753.12/208.05 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.12/208.05 , U13^#(tt(), V1, V2) -> 753.12/208.05 c_3(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.12/208.05 , U14^#(tt(), V1, V2) -> 753.12/208.05 c_4(U15^#(isNat(activate(V1)), activate(V2)), 753.12/208.05 isNat^#(activate(V1))) 753.12/208.05 , U15^#(tt(), V2) -> c_5(isNat^#(activate(V2))) 753.12/208.05 , isNat^#(n__plus(V1, V2)) -> 753.12/208.05 c_6(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.12/208.05 , isNat^#(n__s(V1)) -> 753.12/208.05 c_7(U21^#(isNatKind(activate(V1)), activate(V1))) 753.12/208.05 , U21^#(tt(), V1) -> 753.12/208.05 c_8(U22^#(isNatKind(activate(V1)), activate(V1))) 753.12/208.05 , U22^#(tt(), V1) -> c_9(isNat^#(activate(V1))) 753.12/208.05 , U61^#(tt(), M, N) -> 753.12/208.05 c_10(U62^#(isNatKind(activate(M)), activate(M), activate(N))) 753.12/208.05 , U62^#(tt(), M, N) -> c_11(isNat^#(activate(N))) } 753.12/208.05 753.12/208.05 We are left with following problem, upon which TcT provides the 753.12/208.05 certificate YES(O(1),O(1)). 753.12/208.05 753.12/208.05 Weak Trs: 753.12/208.05 { U11(tt(), V1, V2) -> 753.12/208.05 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.05 , U12(tt(), V1, V2) -> 753.12/208.05 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.05 , isNatKind(n__0()) -> tt() 753.12/208.05 , isNatKind(n__plus(V1, V2)) -> 753.12/208.05 U31(isNatKind(activate(V1)), activate(V2)) 753.12/208.05 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.12/208.05 , activate(X) -> X 753.12/208.05 , activate(n__0()) -> 0() 753.12/208.05 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.12/208.05 , activate(n__s(X)) -> s(activate(X)) 753.12/208.05 , U13(tt(), V1, V2) -> 753.12/208.05 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.05 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.12/208.05 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.12/208.05 , isNat(n__0()) -> tt() 753.12/208.05 , isNat(n__plus(V1, V2)) -> 753.12/208.05 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.05 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.12/208.05 , U16(tt()) -> tt() 753.12/208.05 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.12/208.05 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.12/208.05 , U23(tt()) -> tt() 753.12/208.05 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.12/208.05 , U32(tt()) -> tt() 753.12/208.05 , U41(tt()) -> tt() 753.12/208.05 , s(X) -> n__s(X) 753.12/208.05 , plus(X1, X2) -> n__plus(X1, X2) 753.12/208.05 , 0() -> n__0() } 753.12/208.05 Obligation: 753.12/208.05 innermost runtime complexity 753.12/208.05 Answer: 753.12/208.05 YES(O(1),O(1)) 753.12/208.05 753.12/208.05 No rule is usable, rules are removed from the input problem. 753.12/208.05 753.12/208.05 We are left with following problem, upon which TcT provides the 753.12/208.05 certificate YES(O(1),O(1)). 753.12/208.05 753.12/208.05 Rules: Empty 753.12/208.05 Obligation: 753.12/208.05 innermost runtime complexity 753.12/208.05 Answer: 753.12/208.05 YES(O(1),O(1)) 753.12/208.05 753.12/208.05 Empty rules are trivially bounded 753.12/208.05 753.12/208.05 We return to the main proof. 753.12/208.05 753.12/208.05 We are left with following problem, upon which TcT provides the 753.12/208.05 certificate YES(O(1),O(n^2)). 753.12/208.05 753.12/208.05 Strict DPs: 753.12/208.05 { activate^#(n__plus(X1, X2)) -> 753.12/208.05 c_5(activate^#(X1), activate^#(X2)) 753.12/208.05 , activate^#(n__s(X)) -> c_6(activate^#(X)) } 753.12/208.05 Weak DPs: 753.12/208.05 { U11^#(tt(), V1, V2) -> 753.12/208.05 U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.05 , U11^#(tt(), V1, V2) -> isNatKind^#(activate(V1)) 753.12/208.05 , U11^#(tt(), V1, V2) -> activate^#(V1) 753.12/208.05 , U11^#(tt(), V1, V2) -> activate^#(V2) 753.12/208.05 , U12^#(tt(), V1, V2) -> isNatKind^#(activate(V2)) 753.12/208.05 , U12^#(tt(), V1, V2) -> activate^#(V1) 753.12/208.05 , U12^#(tt(), V1, V2) -> activate^#(V2) 753.12/208.05 , U12^#(tt(), V1, V2) -> 753.12/208.05 U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.05 , isNatKind^#(n__plus(V1, V2)) -> 753.12/208.05 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.12/208.05 isNatKind^#(activate(V1)), 753.12/208.05 activate^#(V1), 753.12/208.05 activate^#(V2)) 753.12/208.05 , isNatKind^#(n__s(V1)) -> 753.12/208.05 c_4(isNatKind^#(activate(V1)), activate^#(V1)) 753.12/208.05 , U13^#(tt(), V1, V2) -> isNatKind^#(activate(V2)) 753.12/208.05 , U13^#(tt(), V1, V2) -> activate^#(V1) 753.12/208.05 , U13^#(tt(), V1, V2) -> activate^#(V2) 753.12/208.05 , U13^#(tt(), V1, V2) -> 753.12/208.05 U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.05 , U31^#(tt(), V2) -> c_8(isNatKind^#(activate(V2)), activate^#(V2)) 753.12/208.05 , U14^#(tt(), V1, V2) -> activate^#(V1) 753.12/208.05 , U14^#(tt(), V1, V2) -> activate^#(V2) 753.12/208.05 , U14^#(tt(), V1, V2) -> U15^#(isNat(activate(V1)), activate(V2)) 753.12/208.05 , U14^#(tt(), V1, V2) -> isNat^#(activate(V1)) 753.12/208.05 , U15^#(tt(), V2) -> activate^#(V2) 753.12/208.05 , U15^#(tt(), V2) -> isNat^#(activate(V2)) 753.12/208.05 , isNat^#(n__plus(V1, V2)) -> 753.12/208.05 U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.05 , isNat^#(n__plus(V1, V2)) -> isNatKind^#(activate(V1)) 753.12/208.05 , isNat^#(n__plus(V1, V2)) -> activate^#(V1) 753.12/208.05 , isNat^#(n__plus(V1, V2)) -> activate^#(V2) 753.12/208.05 , isNat^#(n__s(V1)) -> isNatKind^#(activate(V1)) 753.12/208.05 , isNat^#(n__s(V1)) -> activate^#(V1) 753.12/208.05 , isNat^#(n__s(V1)) -> U21^#(isNatKind(activate(V1)), activate(V1)) 753.12/208.05 , U21^#(tt(), V1) -> isNatKind^#(activate(V1)) 753.12/208.05 , U21^#(tt(), V1) -> activate^#(V1) 753.12/208.05 , U21^#(tt(), V1) -> U22^#(isNatKind(activate(V1)), activate(V1)) 753.12/208.05 , U22^#(tt(), V1) -> activate^#(V1) 753.12/208.05 , U22^#(tt(), V1) -> isNat^#(activate(V1)) 753.12/208.05 , U51^#(tt(), N) -> isNatKind^#(activate(N)) 753.12/208.06 , U51^#(tt(), N) -> activate^#(N) 753.12/208.06 , U51^#(tt(), N) -> U52^#(isNatKind(activate(N)), activate(N)) 753.12/208.06 , U52^#(tt(), N) -> activate^#(N) 753.12/208.06 , U61^#(tt(), M, N) -> isNatKind^#(activate(M)) 753.12/208.06 , U61^#(tt(), M, N) -> activate^#(M) 753.12/208.06 , U61^#(tt(), M, N) -> activate^#(N) 753.12/208.06 , U61^#(tt(), M, N) -> 753.12/208.06 U62^#(isNatKind(activate(M)), activate(M), activate(N)) 753.12/208.06 , U62^#(tt(), M, N) -> activate^#(M) 753.12/208.06 , U62^#(tt(), M, N) -> activate^#(N) 753.12/208.06 , U62^#(tt(), M, N) -> isNat^#(activate(N)) 753.12/208.06 , U62^#(tt(), M, N) -> 753.12/208.06 U63^#(isNat(activate(N)), activate(M), activate(N)) 753.12/208.06 , U63^#(tt(), M, N) -> isNatKind^#(activate(N)) 753.12/208.06 , U63^#(tt(), M, N) -> activate^#(M) 753.12/208.06 , U63^#(tt(), M, N) -> activate^#(N) 753.12/208.06 , U63^#(tt(), M, N) -> 753.12/208.06 U64^#(isNatKind(activate(N)), activate(M), activate(N)) 753.12/208.06 , U64^#(tt(), M, N) -> activate^#(M) 753.12/208.06 , U64^#(tt(), M, N) -> activate^#(N) } 753.12/208.06 Weak Trs: 753.12/208.06 { U11(tt(), V1, V2) -> 753.12/208.06 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.06 , U12(tt(), V1, V2) -> 753.12/208.06 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.06 , isNatKind(n__0()) -> tt() 753.12/208.06 , isNatKind(n__plus(V1, V2)) -> 753.12/208.06 U31(isNatKind(activate(V1)), activate(V2)) 753.12/208.06 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.12/208.06 , activate(X) -> X 753.12/208.06 , activate(n__0()) -> 0() 753.12/208.06 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.12/208.06 , activate(n__s(X)) -> s(activate(X)) 753.12/208.06 , U13(tt(), V1, V2) -> 753.12/208.06 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.06 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.12/208.06 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.12/208.06 , isNat(n__0()) -> tt() 753.12/208.06 , isNat(n__plus(V1, V2)) -> 753.12/208.06 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.06 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.12/208.06 , U16(tt()) -> tt() 753.12/208.06 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.12/208.06 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.12/208.06 , U23(tt()) -> tt() 753.12/208.06 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.12/208.06 , U32(tt()) -> tt() 753.12/208.06 , U41(tt()) -> tt() 753.12/208.06 , s(X) -> n__s(X) 753.12/208.06 , plus(X1, X2) -> n__plus(X1, X2) 753.12/208.06 , 0() -> n__0() } 753.12/208.06 Obligation: 753.12/208.06 innermost runtime complexity 753.12/208.06 Answer: 753.12/208.06 YES(O(1),O(n^2)) 753.12/208.06 753.12/208.06 We use the processor 'matrix interpretation of dimension 2' to 753.12/208.06 orient following rules strictly. 753.12/208.06 753.12/208.06 DPs: 753.12/208.06 { 2: activate^#(n__s(X)) -> c_6(activate^#(X)) 753.12/208.06 , 36: U51^#(tt(), N) -> isNatKind^#(activate(N)) 753.12/208.06 , 37: U51^#(tt(), N) -> activate^#(N) 753.12/208.06 , 38: U51^#(tt(), N) -> U52^#(isNatKind(activate(N)), activate(N)) 753.12/208.06 , 40: U61^#(tt(), M, N) -> isNatKind^#(activate(M)) 753.12/208.06 , 41: U61^#(tt(), M, N) -> activate^#(M) 753.12/208.06 , 42: U61^#(tt(), M, N) -> activate^#(N) 753.12/208.06 , 43: U61^#(tt(), M, N) -> 753.12/208.06 U62^#(isNatKind(activate(M)), activate(M), activate(N)) } 753.12/208.06 753.12/208.06 Sub-proof: 753.12/208.06 ---------- 753.12/208.06 The following argument positions are usable: 753.12/208.06 Uargs(c_3) = {1, 2, 3, 4}, Uargs(c_4) = {1, 2}, 753.12/208.06 Uargs(c_5) = {1, 2}, Uargs(c_6) = {1}, Uargs(c_8) = {1, 2} 753.12/208.06 753.12/208.06 TcT has computed the following constructor-based matrix 753.12/208.06 interpretation satisfying not(EDA). 753.12/208.06 753.12/208.06 [U11](x1, x2, x3) = [0] 753.12/208.06 [0] 753.12/208.06 753.12/208.06 [tt] = [0] 753.12/208.06 [0] 753.12/208.06 753.12/208.06 [U12](x1, x2, x3) = [0] 753.12/208.06 [0] 753.12/208.06 753.12/208.06 [isNatKind](x1) = [0] 753.12/208.06 [0] 753.12/208.06 753.12/208.06 [activate](x1) = [1 0] x1 + [0] 753.12/208.06 [0 1] [0] 753.12/208.06 753.12/208.06 [U13](x1, x2, x3) = [0] 753.12/208.06 [0] 753.12/208.06 753.12/208.06 [U14](x1, x2, x3) = [0] 753.12/208.06 [0] 753.12/208.06 753.12/208.06 [U15](x1, x2) = [0] 753.12/208.06 [0] 753.12/208.06 753.12/208.06 [isNat](x1) = [0] 753.12/208.06 [0] 753.12/208.06 753.12/208.06 [U16](x1) = [0] 753.12/208.06 [0] 753.12/208.06 753.12/208.06 [U21](x1, x2) = [0] 753.12/208.06 [0] 753.12/208.06 753.12/208.06 [U22](x1, x2) = [0] 753.12/208.06 [0] 753.12/208.06 753.12/208.06 [U23](x1) = [0] 753.12/208.06 [0] 753.12/208.06 753.12/208.06 [U31](x1, x2) = [0] 753.12/208.06 [0] 753.12/208.06 753.12/208.06 [U32](x1) = [0] 753.12/208.06 [0] 753.12/208.06 753.12/208.06 [U41](x1) = [0] 753.12/208.06 [0] 753.12/208.06 753.12/208.06 [s](x1) = [1 0] x1 + [2] 753.12/208.06 [1 1] [0] 753.12/208.06 753.12/208.06 [plus](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 753.12/208.06 [1 1] [1 1] [0] 753.12/208.06 753.12/208.06 [n__0] = [0] 753.12/208.06 [0] 753.12/208.06 753.12/208.06 [n__plus](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 753.12/208.06 [1 1] [1 1] [0] 753.12/208.06 753.12/208.06 [n__s](x1) = [1 0] x1 + [2] 753.12/208.06 [1 1] [0] 753.12/208.06 753.12/208.06 [0] = [0] 753.12/208.06 [0] 753.12/208.06 753.12/208.06 [U11^#](x1, x2, x3) = [1 4] x2 + [1 4] x3 + [0] 753.12/208.06 [2 0] [2 0] [2] 753.12/208.06 753.12/208.06 [U12^#](x1, x2, x3) = [1 4] x2 + [1 4] x3 + [0] 753.12/208.06 [2 0] [2 0] [2] 753.12/208.06 753.12/208.06 [isNatKind^#](x1) = [0 4] x1 + [0] 753.12/208.06 [1 0] [2] 753.12/208.06 753.12/208.06 [activate^#](x1) = [1 0] x1 + [0] 753.12/208.06 [0 0] [0] 753.12/208.06 753.12/208.06 [U13^#](x1, x2, x3) = [1 4] x2 + [1 4] x3 + [0] 753.12/208.06 [2 0] [2 0] [2] 753.12/208.06 753.12/208.06 [U31^#](x1, x2) = [1 4] x2 + [0] 753.12/208.06 [0 0] [4] 753.12/208.06 753.12/208.06 [U14^#](x1, x2, x3) = [1 4] x2 + [1 4] x3 + [0] 753.12/208.06 [2 0] [2 0] [2] 753.12/208.06 753.12/208.06 [U15^#](x1, x2) = [1 4] x2 + [0] 753.12/208.06 [2 0] [2] 753.12/208.06 753.12/208.06 [isNat^#](x1) = [0 4] x1 + [0] 753.12/208.06 [2 0] [2] 753.12/208.06 753.12/208.06 [U21^#](x1, x2) = [4 4] x2 + [0] 753.12/208.06 [2 0] [4] 753.12/208.06 753.12/208.06 [U22^#](x1, x2) = [1 4] x2 + [0] 753.12/208.06 [2 0] [4] 753.12/208.06 753.12/208.06 [U51^#](x1, x2) = [5 4] x1 + [7 7] x2 + [7] 753.12/208.06 [5 5] [7 7] [3] 753.12/208.06 753.12/208.06 [U52^#](x1, x2) = [4 4] x2 + [0] 753.12/208.06 [0 0] [0] 753.12/208.06 753.12/208.06 [U61^#](x1, x2, x3) = [5 4] x1 + [7 7] x2 + [7 7] x3 + [7] 753.12/208.06 [5 5] [7 7] [7 7] [7] 753.12/208.06 753.12/208.06 [U62^#](x1, x2, x3) = [1 0] x2 + [4 4] x3 + [0] 753.12/208.06 [4 0] [2 0] [2] 753.12/208.06 753.12/208.06 [U63^#](x1, x2, x3) = [1 0] x2 + [4 4] x3 + [0] 753.12/208.06 [0 0] [1 0] [2] 753.12/208.06 753.12/208.06 [U64^#](x1, x2, x3) = [1 0] x2 + [2 0] x3 + [0] 753.12/208.06 [0 0] [0 0] [0] 753.12/208.06 753.12/208.06 [c_3](x1, x2, x3, x4) = [1 0] x1 + [1 0] x2 + [1 0] x3 + [1 753.12/208.06 0] x4 + [0] 753.12/208.06 [0 0] [0 0] [0 0] [0 753.12/208.06 0] [2] 753.12/208.06 753.12/208.06 [c_4](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 753.12/208.06 [0 0] [0 0] [3] 753.12/208.06 753.12/208.06 [c_5](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 753.12/208.06 [0 0] [0 0] [0] 753.12/208.06 753.12/208.06 [c_6](x1) = [1 0] x1 + [1] 753.12/208.06 [0 0] [0] 753.12/208.06 753.12/208.06 [c_8](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 753.12/208.06 [0 0] [0 0] [3] 753.12/208.06 753.12/208.06 The order satisfies the following ordering constraints: 753.12/208.06 753.12/208.06 [U11(tt(), V1, V2)] = [0] 753.12/208.06 [0] 753.12/208.06 >= [0] 753.12/208.06 [0] 753.12/208.06 = [U12(isNatKind(activate(V1)), activate(V1), activate(V2))] 753.12/208.06 753.12/208.06 [U12(tt(), V1, V2)] = [0] 753.12/208.06 [0] 753.12/208.06 >= [0] 753.12/208.06 [0] 753.12/208.06 = [U13(isNatKind(activate(V2)), activate(V1), activate(V2))] 753.12/208.06 753.12/208.06 [isNatKind(n__0())] = [0] 753.12/208.06 [0] 753.12/208.06 >= [0] 753.12/208.06 [0] 753.12/208.06 = [tt()] 753.12/208.06 753.12/208.06 [isNatKind(n__plus(V1, V2))] = [0] 753.12/208.06 [0] 753.12/208.06 >= [0] 753.12/208.06 [0] 753.12/208.06 = [U31(isNatKind(activate(V1)), activate(V2))] 753.12/208.06 753.12/208.06 [isNatKind(n__s(V1))] = [0] 753.12/208.06 [0] 753.12/208.06 >= [0] 753.12/208.06 [0] 753.12/208.06 = [U41(isNatKind(activate(V1)))] 753.12/208.06 753.12/208.06 [activate(X)] = [1 0] X + [0] 753.12/208.06 [0 1] [0] 753.12/208.06 >= [1 0] X + [0] 753.12/208.06 [0 1] [0] 753.12/208.06 = [X] 753.12/208.06 753.12/208.06 [activate(n__0())] = [0] 753.12/208.06 [0] 753.12/208.06 >= [0] 753.12/208.06 [0] 753.12/208.06 = [0()] 753.12/208.06 753.12/208.06 [activate(n__plus(X1, X2))] = [1 0] X1 + [1 0] X2 + [0] 753.12/208.06 [1 1] [1 1] [0] 753.12/208.06 >= [1 0] X1 + [1 0] X2 + [0] 753.12/208.06 [1 1] [1 1] [0] 753.12/208.06 = [plus(activate(X1), activate(X2))] 753.12/208.06 753.12/208.06 [activate(n__s(X))] = [1 0] X + [2] 753.12/208.06 [1 1] [0] 753.12/208.06 >= [1 0] X + [2] 753.12/208.06 [1 1] [0] 753.12/208.06 = [s(activate(X))] 753.12/208.06 753.12/208.06 [U13(tt(), V1, V2)] = [0] 753.12/208.06 [0] 753.12/208.06 >= [0] 753.12/208.06 [0] 753.12/208.06 = [U14(isNatKind(activate(V2)), activate(V1), activate(V2))] 753.12/208.06 753.12/208.06 [U14(tt(), V1, V2)] = [0] 753.12/208.06 [0] 753.12/208.06 >= [0] 753.12/208.06 [0] 753.12/208.06 = [U15(isNat(activate(V1)), activate(V2))] 753.12/208.06 753.12/208.06 [U15(tt(), V2)] = [0] 753.12/208.06 [0] 753.12/208.06 >= [0] 753.12/208.06 [0] 753.12/208.06 = [U16(isNat(activate(V2)))] 753.12/208.06 753.12/208.06 [isNat(n__0())] = [0] 753.12/208.06 [0] 753.12/208.06 >= [0] 753.12/208.06 [0] 753.12/208.06 = [tt()] 753.12/208.06 753.12/208.06 [isNat(n__plus(V1, V2))] = [0] 753.12/208.06 [0] 753.12/208.06 >= [0] 753.12/208.06 [0] 753.12/208.06 = [U11(isNatKind(activate(V1)), activate(V1), activate(V2))] 753.12/208.06 753.12/208.06 [isNat(n__s(V1))] = [0] 753.12/208.06 [0] 753.12/208.06 >= [0] 753.12/208.06 [0] 753.12/208.06 = [U21(isNatKind(activate(V1)), activate(V1))] 753.12/208.06 753.12/208.06 [U16(tt())] = [0] 753.12/208.06 [0] 753.12/208.06 >= [0] 753.12/208.06 [0] 753.12/208.06 = [tt()] 753.12/208.06 753.12/208.06 [U21(tt(), V1)] = [0] 753.12/208.06 [0] 753.12/208.06 >= [0] 753.12/208.06 [0] 753.12/208.06 = [U22(isNatKind(activate(V1)), activate(V1))] 753.12/208.06 753.12/208.06 [U22(tt(), V1)] = [0] 753.12/208.06 [0] 753.12/208.06 >= [0] 753.12/208.06 [0] 753.12/208.06 = [U23(isNat(activate(V1)))] 753.12/208.06 753.12/208.06 [U23(tt())] = [0] 753.12/208.06 [0] 753.12/208.06 >= [0] 753.12/208.06 [0] 753.12/208.06 = [tt()] 753.12/208.06 753.12/208.06 [U31(tt(), V2)] = [0] 753.12/208.06 [0] 753.12/208.06 >= [0] 753.12/208.06 [0] 753.12/208.06 = [U32(isNatKind(activate(V2)))] 753.12/208.06 753.12/208.06 [U32(tt())] = [0] 753.12/208.06 [0] 753.12/208.06 >= [0] 753.12/208.06 [0] 753.12/208.06 = [tt()] 753.12/208.06 753.12/208.06 [U41(tt())] = [0] 753.12/208.06 [0] 753.12/208.06 >= [0] 753.12/208.06 [0] 753.12/208.06 = [tt()] 753.12/208.06 753.12/208.06 [s(X)] = [1 0] X + [2] 753.12/208.06 [1 1] [0] 753.12/208.06 >= [1 0] X + [2] 753.12/208.06 [1 1] [0] 753.12/208.06 = [n__s(X)] 753.12/208.06 753.12/208.06 [plus(X1, X2)] = [1 0] X1 + [1 0] X2 + [0] 753.12/208.06 [1 1] [1 1] [0] 753.12/208.06 >= [1 0] X1 + [1 0] X2 + [0] 753.12/208.06 [1 1] [1 1] [0] 753.12/208.06 = [n__plus(X1, X2)] 753.12/208.06 753.12/208.06 [0()] = [0] 753.12/208.06 [0] 753.12/208.06 >= [0] 753.12/208.06 [0] 753.12/208.06 = [n__0()] 753.12/208.06 753.12/208.06 [U11^#(tt(), V1, V2)] = [1 4] V1 + [1 4] V2 + [0] 753.12/208.06 [2 0] [2 0] [2] 753.12/208.06 >= [1 4] V1 + [1 4] V2 + [0] 753.12/208.06 [2 0] [2 0] [2] 753.12/208.06 = [U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))] 753.12/208.06 753.12/208.06 [U11^#(tt(), V1, V2)] = [1 4] V1 + [1 4] V2 + [0] 753.12/208.06 [2 0] [2 0] [2] 753.12/208.06 >= [0 4] V1 + [0] 753.12/208.06 [1 0] [2] 753.12/208.06 = [isNatKind^#(activate(V1))] 753.12/208.06 753.12/208.06 [U11^#(tt(), V1, V2)] = [1 4] V1 + [1 4] V2 + [0] 753.12/208.06 [2 0] [2 0] [2] 753.12/208.06 >= [1 0] V1 + [0] 753.12/208.06 [0 0] [0] 753.12/208.06 = [activate^#(V1)] 753.12/208.06 753.12/208.06 [U11^#(tt(), V1, V2)] = [1 4] V1 + [1 4] V2 + [0] 753.12/208.06 [2 0] [2 0] [2] 753.12/208.06 >= [1 0] V2 + [0] 753.12/208.06 [0 0] [0] 753.12/208.06 = [activate^#(V2)] 753.12/208.06 753.12/208.06 [U12^#(tt(), V1, V2)] = [1 4] V1 + [1 4] V2 + [0] 753.12/208.06 [2 0] [2 0] [2] 753.12/208.06 >= [0 4] V2 + [0] 753.12/208.06 [1 0] [2] 753.12/208.06 = [isNatKind^#(activate(V2))] 753.12/208.06 753.12/208.06 [U12^#(tt(), V1, V2)] = [1 4] V1 + [1 4] V2 + [0] 753.12/208.06 [2 0] [2 0] [2] 753.12/208.06 >= [1 0] V1 + [0] 753.12/208.06 [0 0] [0] 753.12/208.06 = [activate^#(V1)] 753.12/208.06 753.12/208.06 [U12^#(tt(), V1, V2)] = [1 4] V1 + [1 4] V2 + [0] 753.12/208.06 [2 0] [2 0] [2] 753.12/208.06 >= [1 0] V2 + [0] 753.12/208.06 [0 0] [0] 753.12/208.06 = [activate^#(V2)] 753.12/208.06 753.12/208.06 [U12^#(tt(), V1, V2)] = [1 4] V1 + [1 4] V2 + [0] 753.12/208.06 [2 0] [2 0] [2] 753.12/208.06 >= [1 4] V1 + [1 4] V2 + [0] 753.12/208.06 [2 0] [2 0] [2] 753.12/208.06 = [U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))] 753.12/208.06 753.12/208.06 [isNatKind^#(n__plus(V1, V2))] = [4 4] V1 + [4 4] V2 + [0] 753.12/208.06 [1 0] [1 0] [2] 753.12/208.06 >= [1 4] V1 + [2 4] V2 + [0] 753.12/208.06 [0 0] [0 0] [2] 753.12/208.06 = [c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.12/208.06 isNatKind^#(activate(V1)), 753.12/208.06 activate^#(V1), 753.12/208.06 activate^#(V2))] 753.12/208.06 753.12/208.06 [isNatKind^#(n__s(V1))] = [4 4] V1 + [0] 753.12/208.06 [1 0] [4] 753.12/208.06 >= [1 4] V1 + [0] 753.12/208.06 [0 0] [3] 753.12/208.06 = [c_4(isNatKind^#(activate(V1)), activate^#(V1))] 753.12/208.06 753.12/208.06 [activate^#(n__plus(X1, X2))] = [1 0] X1 + [1 0] X2 + [0] 753.12/208.06 [0 0] [0 0] [0] 753.12/208.06 >= [1 0] X1 + [1 0] X2 + [0] 753.12/208.06 [0 0] [0 0] [0] 753.12/208.06 = [c_5(activate^#(X1), activate^#(X2))] 753.12/208.06 753.12/208.06 [activate^#(n__s(X))] = [1 0] X + [2] 753.12/208.06 [0 0] [0] 753.12/208.06 > [1 0] X + [1] 753.12/208.06 [0 0] [0] 753.12/208.06 = [c_6(activate^#(X))] 753.12/208.06 753.12/208.06 [U13^#(tt(), V1, V2)] = [1 4] V1 + [1 4] V2 + [0] 753.12/208.06 [2 0] [2 0] [2] 753.12/208.06 >= [0 4] V2 + [0] 753.12/208.06 [1 0] [2] 753.12/208.06 = [isNatKind^#(activate(V2))] 753.12/208.06 753.12/208.06 [U13^#(tt(), V1, V2)] = [1 4] V1 + [1 4] V2 + [0] 753.12/208.06 [2 0] [2 0] [2] 753.12/208.06 >= [1 0] V1 + [0] 753.12/208.06 [0 0] [0] 753.12/208.06 = [activate^#(V1)] 753.12/208.06 753.12/208.06 [U13^#(tt(), V1, V2)] = [1 4] V1 + [1 4] V2 + [0] 753.12/208.06 [2 0] [2 0] [2] 753.12/208.06 >= [1 0] V2 + [0] 753.12/208.06 [0 0] [0] 753.12/208.06 = [activate^#(V2)] 753.12/208.06 753.12/208.06 [U13^#(tt(), V1, V2)] = [1 4] V1 + [1 4] V2 + [0] 753.12/208.06 [2 0] [2 0] [2] 753.12/208.06 >= [1 4] V1 + [1 4] V2 + [0] 753.12/208.06 [2 0] [2 0] [2] 753.12/208.06 = [U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))] 753.12/208.06 753.12/208.06 [U31^#(tt(), V2)] = [1 4] V2 + [0] 753.12/208.06 [0 0] [4] 753.12/208.06 >= [1 4] V2 + [0] 753.12/208.06 [0 0] [3] 753.12/208.06 = [c_8(isNatKind^#(activate(V2)), activate^#(V2))] 753.12/208.06 753.12/208.06 [U14^#(tt(), V1, V2)] = [1 4] V1 + [1 4] V2 + [0] 753.12/208.06 [2 0] [2 0] [2] 753.12/208.06 >= [1 0] V1 + [0] 753.12/208.06 [0 0] [0] 753.12/208.06 = [activate^#(V1)] 753.12/208.06 753.12/208.06 [U14^#(tt(), V1, V2)] = [1 4] V1 + [1 4] V2 + [0] 753.12/208.06 [2 0] [2 0] [2] 753.12/208.06 >= [1 0] V2 + [0] 753.12/208.06 [0 0] [0] 753.12/208.06 = [activate^#(V2)] 753.12/208.06 753.12/208.06 [U14^#(tt(), V1, V2)] = [1 4] V1 + [1 4] V2 + [0] 753.12/208.06 [2 0] [2 0] [2] 753.12/208.06 >= [1 4] V2 + [0] 753.12/208.06 [2 0] [2] 753.12/208.06 = [U15^#(isNat(activate(V1)), activate(V2))] 753.12/208.06 753.12/208.06 [U14^#(tt(), V1, V2)] = [1 4] V1 + [1 4] V2 + [0] 753.12/208.06 [2 0] [2 0] [2] 753.12/208.06 >= [0 4] V1 + [0] 753.12/208.06 [2 0] [2] 753.12/208.06 = [isNat^#(activate(V1))] 753.12/208.06 753.12/208.06 [U15^#(tt(), V2)] = [1 4] V2 + [0] 753.12/208.06 [2 0] [2] 753.12/208.06 >= [1 0] V2 + [0] 753.12/208.06 [0 0] [0] 753.12/208.06 = [activate^#(V2)] 753.12/208.06 753.12/208.06 [U15^#(tt(), V2)] = [1 4] V2 + [0] 753.12/208.06 [2 0] [2] 753.12/208.06 >= [0 4] V2 + [0] 753.12/208.06 [2 0] [2] 753.12/208.06 = [isNat^#(activate(V2))] 753.12/208.06 753.12/208.06 [isNat^#(n__plus(V1, V2))] = [4 4] V1 + [4 4] V2 + [0] 753.12/208.06 [2 0] [2 0] [2] 753.12/208.06 >= [1 4] V1 + [1 4] V2 + [0] 753.12/208.06 [2 0] [2 0] [2] 753.12/208.06 = [U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))] 753.12/208.06 753.12/208.06 [isNat^#(n__plus(V1, V2))] = [4 4] V1 + [4 4] V2 + [0] 753.12/208.06 [2 0] [2 0] [2] 753.12/208.06 >= [0 4] V1 + [0] 753.12/208.06 [1 0] [2] 753.12/208.06 = [isNatKind^#(activate(V1))] 753.12/208.06 753.12/208.06 [isNat^#(n__plus(V1, V2))] = [4 4] V1 + [4 4] V2 + [0] 753.12/208.06 [2 0] [2 0] [2] 753.12/208.06 >= [1 0] V1 + [0] 753.12/208.06 [0 0] [0] 753.12/208.06 = [activate^#(V1)] 753.12/208.06 753.12/208.06 [isNat^#(n__plus(V1, V2))] = [4 4] V1 + [4 4] V2 + [0] 753.12/208.06 [2 0] [2 0] [2] 753.12/208.06 >= [1 0] V2 + [0] 753.12/208.06 [0 0] [0] 753.12/208.06 = [activate^#(V2)] 753.12/208.06 753.12/208.06 [isNat^#(n__s(V1))] = [4 4] V1 + [0] 753.12/208.06 [2 0] [6] 753.12/208.06 >= [0 4] V1 + [0] 753.12/208.06 [1 0] [2] 753.12/208.06 = [isNatKind^#(activate(V1))] 753.12/208.06 753.12/208.06 [isNat^#(n__s(V1))] = [4 4] V1 + [0] 753.12/208.06 [2 0] [6] 753.12/208.06 >= [1 0] V1 + [0] 753.12/208.06 [0 0] [0] 753.12/208.06 = [activate^#(V1)] 753.12/208.06 753.12/208.06 [isNat^#(n__s(V1))] = [4 4] V1 + [0] 753.12/208.06 [2 0] [6] 753.12/208.06 >= [4 4] V1 + [0] 753.12/208.06 [2 0] [4] 753.12/208.06 = [U21^#(isNatKind(activate(V1)), activate(V1))] 753.12/208.06 753.12/208.06 [U21^#(tt(), V1)] = [4 4] V1 + [0] 753.12/208.06 [2 0] [4] 753.12/208.06 >= [0 4] V1 + [0] 753.12/208.06 [1 0] [2] 753.12/208.06 = [isNatKind^#(activate(V1))] 753.12/208.06 753.12/208.06 [U21^#(tt(), V1)] = [4 4] V1 + [0] 753.12/208.06 [2 0] [4] 753.12/208.06 >= [1 0] V1 + [0] 753.12/208.06 [0 0] [0] 753.12/208.06 = [activate^#(V1)] 753.12/208.06 753.12/208.06 [U21^#(tt(), V1)] = [4 4] V1 + [0] 753.12/208.06 [2 0] [4] 753.12/208.06 >= [1 4] V1 + [0] 753.12/208.06 [2 0] [4] 753.12/208.06 = [U22^#(isNatKind(activate(V1)), activate(V1))] 753.12/208.06 753.12/208.06 [U22^#(tt(), V1)] = [1 4] V1 + [0] 753.12/208.06 [2 0] [4] 753.12/208.06 >= [1 0] V1 + [0] 753.12/208.06 [0 0] [0] 753.12/208.06 = [activate^#(V1)] 753.12/208.06 753.12/208.06 [U22^#(tt(), V1)] = [1 4] V1 + [0] 753.12/208.06 [2 0] [4] 753.12/208.06 >= [0 4] V1 + [0] 753.12/208.06 [2 0] [2] 753.12/208.06 = [isNat^#(activate(V1))] 753.12/208.06 753.12/208.06 [U51^#(tt(), N)] = [7 7] N + [7] 753.12/208.06 [7 7] [3] 753.12/208.06 > [0 4] N + [0] 753.12/208.06 [1 0] [2] 753.12/208.06 = [isNatKind^#(activate(N))] 753.12/208.06 753.12/208.06 [U51^#(tt(), N)] = [7 7] N + [7] 753.12/208.06 [7 7] [3] 753.12/208.06 > [1 0] N + [0] 753.12/208.06 [0 0] [0] 753.12/208.06 = [activate^#(N)] 753.12/208.06 753.12/208.06 [U51^#(tt(), N)] = [7 7] N + [7] 753.12/208.06 [7 7] [3] 753.12/208.06 > [4 4] N + [0] 753.12/208.06 [0 0] [0] 753.12/208.06 = [U52^#(isNatKind(activate(N)), activate(N))] 753.12/208.06 753.12/208.06 [U52^#(tt(), N)] = [4 4] N + [0] 753.12/208.06 [0 0] [0] 753.12/208.06 >= [1 0] N + [0] 753.12/208.06 [0 0] [0] 753.12/208.06 = [activate^#(N)] 753.12/208.06 753.12/208.06 [U61^#(tt(), M, N)] = [7 7] N + [7 7] M + [7] 753.12/208.06 [7 7] [7 7] [7] 753.12/208.06 > [0 4] M + [0] 753.12/208.06 [1 0] [2] 753.12/208.06 = [isNatKind^#(activate(M))] 753.12/208.06 753.12/208.06 [U61^#(tt(), M, N)] = [7 7] N + [7 7] M + [7] 753.12/208.06 [7 7] [7 7] [7] 753.12/208.06 > [1 0] M + [0] 753.12/208.06 [0 0] [0] 753.12/208.06 = [activate^#(M)] 753.12/208.06 753.12/208.06 [U61^#(tt(), M, N)] = [7 7] N + [7 7] M + [7] 753.12/208.06 [7 7] [7 7] [7] 753.12/208.06 > [1 0] N + [0] 753.12/208.06 [0 0] [0] 753.12/208.06 = [activate^#(N)] 753.12/208.06 753.12/208.07 [U61^#(tt(), M, N)] = [7 7] N + [7 7] M + [7] 753.12/208.07 [7 7] [7 7] [7] 753.12/208.07 > [4 4] N + [1 0] M + [0] 753.12/208.07 [2 0] [4 0] [2] 753.12/208.07 = [U62^#(isNatKind(activate(M)), activate(M), activate(N))] 753.12/208.07 753.12/208.07 [U62^#(tt(), M, N)] = [4 4] N + [1 0] M + [0] 753.12/208.07 [2 0] [4 0] [2] 753.12/208.07 >= [1 0] M + [0] 753.12/208.07 [0 0] [0] 753.12/208.07 = [activate^#(M)] 753.12/208.07 753.12/208.07 [U62^#(tt(), M, N)] = [4 4] N + [1 0] M + [0] 753.12/208.07 [2 0] [4 0] [2] 753.12/208.07 >= [1 0] N + [0] 753.12/208.07 [0 0] [0] 753.12/208.07 = [activate^#(N)] 753.12/208.07 753.12/208.07 [U62^#(tt(), M, N)] = [4 4] N + [1 0] M + [0] 753.12/208.07 [2 0] [4 0] [2] 753.12/208.07 >= [0 4] N + [0] 753.12/208.07 [2 0] [2] 753.12/208.07 = [isNat^#(activate(N))] 753.12/208.07 753.12/208.07 [U62^#(tt(), M, N)] = [4 4] N + [1 0] M + [0] 753.12/208.07 [2 0] [4 0] [2] 753.12/208.07 >= [4 4] N + [1 0] M + [0] 753.12/208.07 [1 0] [0 0] [2] 753.12/208.07 = [U63^#(isNat(activate(N)), activate(M), activate(N))] 753.12/208.07 753.12/208.07 [U63^#(tt(), M, N)] = [4 4] N + [1 0] M + [0] 753.12/208.07 [1 0] [0 0] [2] 753.12/208.07 >= [0 4] N + [0] 753.12/208.07 [1 0] [2] 753.12/208.07 = [isNatKind^#(activate(N))] 753.12/208.07 753.12/208.07 [U63^#(tt(), M, N)] = [4 4] N + [1 0] M + [0] 753.12/208.07 [1 0] [0 0] [2] 753.12/208.07 >= [1 0] M + [0] 753.12/208.07 [0 0] [0] 753.12/208.07 = [activate^#(M)] 753.12/208.07 753.12/208.07 [U63^#(tt(), M, N)] = [4 4] N + [1 0] M + [0] 753.12/208.07 [1 0] [0 0] [2] 753.12/208.07 >= [1 0] N + [0] 753.12/208.07 [0 0] [0] 753.12/208.07 = [activate^#(N)] 753.12/208.07 753.12/208.07 [U63^#(tt(), M, N)] = [4 4] N + [1 0] M + [0] 753.12/208.07 [1 0] [0 0] [2] 753.12/208.07 >= [2 0] N + [1 0] M + [0] 753.12/208.07 [0 0] [0 0] [0] 753.12/208.07 = [U64^#(isNatKind(activate(N)), activate(M), activate(N))] 753.12/208.07 753.12/208.07 [U64^#(tt(), M, N)] = [2 0] N + [1 0] M + [0] 753.12/208.07 [0 0] [0 0] [0] 753.12/208.07 >= [1 0] M + [0] 753.12/208.07 [0 0] [0] 753.12/208.07 = [activate^#(M)] 753.12/208.07 753.12/208.07 [U64^#(tt(), M, N)] = [2 0] N + [1 0] M + [0] 753.12/208.07 [0 0] [0 0] [0] 753.12/208.07 >= [1 0] N + [0] 753.12/208.07 [0 0] [0] 753.12/208.07 = [activate^#(N)] 753.12/208.07 753.12/208.07 753.12/208.07 We return to the main proof. Consider the set of all dependency 753.12/208.07 pairs 753.12/208.07 753.12/208.07 : 753.12/208.07 { 1: activate^#(n__plus(X1, X2)) -> 753.12/208.07 c_5(activate^#(X1), activate^#(X2)) 753.12/208.07 , 2: activate^#(n__s(X)) -> c_6(activate^#(X)) 753.12/208.07 , 3: U11^#(tt(), V1, V2) -> 753.12/208.07 U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.07 , 4: U11^#(tt(), V1, V2) -> isNatKind^#(activate(V1)) 753.12/208.07 , 5: U11^#(tt(), V1, V2) -> activate^#(V1) 753.12/208.07 , 6: U11^#(tt(), V1, V2) -> activate^#(V2) 753.12/208.07 , 7: U12^#(tt(), V1, V2) -> isNatKind^#(activate(V2)) 753.12/208.07 , 8: U12^#(tt(), V1, V2) -> activate^#(V1) 753.12/208.07 , 9: U12^#(tt(), V1, V2) -> activate^#(V2) 753.12/208.07 , 10: U12^#(tt(), V1, V2) -> 753.12/208.07 U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.07 , 11: isNatKind^#(n__plus(V1, V2)) -> 753.12/208.07 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.12/208.07 isNatKind^#(activate(V1)), 753.12/208.07 activate^#(V1), 753.12/208.07 activate^#(V2)) 753.12/208.07 , 12: isNatKind^#(n__s(V1)) -> 753.12/208.07 c_4(isNatKind^#(activate(V1)), activate^#(V1)) 753.12/208.07 , 13: U13^#(tt(), V1, V2) -> isNatKind^#(activate(V2)) 753.12/208.07 , 14: U13^#(tt(), V1, V2) -> activate^#(V1) 753.12/208.07 , 15: U13^#(tt(), V1, V2) -> activate^#(V2) 753.12/208.07 , 16: U13^#(tt(), V1, V2) -> 753.12/208.07 U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.07 , 17: U31^#(tt(), V2) -> 753.12/208.07 c_8(isNatKind^#(activate(V2)), activate^#(V2)) 753.12/208.07 , 18: U14^#(tt(), V1, V2) -> activate^#(V1) 753.12/208.07 , 19: U14^#(tt(), V1, V2) -> activate^#(V2) 753.12/208.07 , 20: U14^#(tt(), V1, V2) -> 753.12/208.07 U15^#(isNat(activate(V1)), activate(V2)) 753.12/208.07 , 21: U14^#(tt(), V1, V2) -> isNat^#(activate(V1)) 753.12/208.07 , 22: U15^#(tt(), V2) -> activate^#(V2) 753.12/208.07 , 23: U15^#(tt(), V2) -> isNat^#(activate(V2)) 753.12/208.07 , 24: isNat^#(n__plus(V1, V2)) -> 753.12/208.07 U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.07 , 25: isNat^#(n__plus(V1, V2)) -> isNatKind^#(activate(V1)) 753.12/208.07 , 26: isNat^#(n__plus(V1, V2)) -> activate^#(V1) 753.12/208.07 , 27: isNat^#(n__plus(V1, V2)) -> activate^#(V2) 753.12/208.07 , 28: isNat^#(n__s(V1)) -> isNatKind^#(activate(V1)) 753.12/208.07 , 29: isNat^#(n__s(V1)) -> activate^#(V1) 753.12/208.07 , 30: isNat^#(n__s(V1)) -> 753.12/208.07 U21^#(isNatKind(activate(V1)), activate(V1)) 753.12/208.07 , 31: U21^#(tt(), V1) -> isNatKind^#(activate(V1)) 753.12/208.07 , 32: U21^#(tt(), V1) -> activate^#(V1) 753.12/208.07 , 33: U21^#(tt(), V1) -> 753.12/208.07 U22^#(isNatKind(activate(V1)), activate(V1)) 753.12/208.07 , 34: U22^#(tt(), V1) -> activate^#(V1) 753.12/208.07 , 35: U22^#(tt(), V1) -> isNat^#(activate(V1)) 753.12/208.07 , 36: U51^#(tt(), N) -> isNatKind^#(activate(N)) 753.12/208.07 , 37: U51^#(tt(), N) -> activate^#(N) 753.12/208.07 , 38: U51^#(tt(), N) -> U52^#(isNatKind(activate(N)), activate(N)) 753.12/208.07 , 39: U52^#(tt(), N) -> activate^#(N) 753.12/208.07 , 40: U61^#(tt(), M, N) -> isNatKind^#(activate(M)) 753.12/208.07 , 41: U61^#(tt(), M, N) -> activate^#(M) 753.12/208.07 , 42: U61^#(tt(), M, N) -> activate^#(N) 753.12/208.07 , 43: U61^#(tt(), M, N) -> 753.12/208.07 U62^#(isNatKind(activate(M)), activate(M), activate(N)) 753.12/208.07 , 44: U62^#(tt(), M, N) -> activate^#(M) 753.12/208.07 , 45: U62^#(tt(), M, N) -> activate^#(N) 753.12/208.07 , 46: U62^#(tt(), M, N) -> isNat^#(activate(N)) 753.12/208.07 , 47: U62^#(tt(), M, N) -> 753.12/208.07 U63^#(isNat(activate(N)), activate(M), activate(N)) 753.12/208.07 , 48: U63^#(tt(), M, N) -> isNatKind^#(activate(N)) 753.12/208.07 , 49: U63^#(tt(), M, N) -> activate^#(M) 753.12/208.07 , 50: U63^#(tt(), M, N) -> activate^#(N) 753.12/208.07 , 51: U63^#(tt(), M, N) -> 753.12/208.07 U64^#(isNatKind(activate(N)), activate(M), activate(N)) 753.12/208.07 , 52: U64^#(tt(), M, N) -> activate^#(M) 753.12/208.07 , 53: U64^#(tt(), M, N) -> activate^#(N) } 753.12/208.07 753.12/208.07 Processor 'matrix interpretation of dimension 2' induces the 753.12/208.07 complexity certificate YES(?,O(n^2)) on application of dependency 753.12/208.07 pairs {2,36,37,38,40,41,42,43}. These cover all (indirect) 753.12/208.07 predecessors of dependency pairs 753.12/208.07 {2,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53}, their 753.12/208.07 number of application is equally bounded. The dependency pairs are 753.12/208.07 shifted into the weak component. 753.12/208.07 753.12/208.07 We are left with following problem, upon which TcT provides the 753.12/208.07 certificate YES(O(1),O(n^2)). 753.12/208.07 753.12/208.07 Strict DPs: 753.12/208.07 { activate^#(n__plus(X1, X2)) -> 753.12/208.07 c_5(activate^#(X1), activate^#(X2)) } 753.12/208.07 Weak DPs: 753.12/208.07 { U11^#(tt(), V1, V2) -> 753.12/208.07 U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.07 , U11^#(tt(), V1, V2) -> isNatKind^#(activate(V1)) 753.12/208.07 , U11^#(tt(), V1, V2) -> activate^#(V1) 753.12/208.07 , U11^#(tt(), V1, V2) -> activate^#(V2) 753.12/208.07 , U12^#(tt(), V1, V2) -> isNatKind^#(activate(V2)) 753.12/208.07 , U12^#(tt(), V1, V2) -> activate^#(V1) 753.12/208.07 , U12^#(tt(), V1, V2) -> activate^#(V2) 753.12/208.07 , U12^#(tt(), V1, V2) -> 753.12/208.07 U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.07 , isNatKind^#(n__plus(V1, V2)) -> 753.12/208.07 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.12/208.07 isNatKind^#(activate(V1)), 753.12/208.07 activate^#(V1), 753.12/208.07 activate^#(V2)) 753.12/208.07 , isNatKind^#(n__s(V1)) -> 753.12/208.07 c_4(isNatKind^#(activate(V1)), activate^#(V1)) 753.12/208.07 , activate^#(n__s(X)) -> c_6(activate^#(X)) 753.12/208.07 , U13^#(tt(), V1, V2) -> isNatKind^#(activate(V2)) 753.12/208.07 , U13^#(tt(), V1, V2) -> activate^#(V1) 753.12/208.07 , U13^#(tt(), V1, V2) -> activate^#(V2) 753.12/208.07 , U13^#(tt(), V1, V2) -> 753.12/208.07 U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.07 , U31^#(tt(), V2) -> c_8(isNatKind^#(activate(V2)), activate^#(V2)) 753.12/208.07 , U14^#(tt(), V1, V2) -> activate^#(V1) 753.12/208.07 , U14^#(tt(), V1, V2) -> activate^#(V2) 753.12/208.07 , U14^#(tt(), V1, V2) -> U15^#(isNat(activate(V1)), activate(V2)) 753.12/208.07 , U14^#(tt(), V1, V2) -> isNat^#(activate(V1)) 753.12/208.07 , U15^#(tt(), V2) -> activate^#(V2) 753.12/208.07 , U15^#(tt(), V2) -> isNat^#(activate(V2)) 753.12/208.07 , isNat^#(n__plus(V1, V2)) -> 753.12/208.07 U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.07 , isNat^#(n__plus(V1, V2)) -> isNatKind^#(activate(V1)) 753.12/208.07 , isNat^#(n__plus(V1, V2)) -> activate^#(V1) 753.12/208.07 , isNat^#(n__plus(V1, V2)) -> activate^#(V2) 753.12/208.07 , isNat^#(n__s(V1)) -> isNatKind^#(activate(V1)) 753.12/208.07 , isNat^#(n__s(V1)) -> activate^#(V1) 753.12/208.07 , isNat^#(n__s(V1)) -> U21^#(isNatKind(activate(V1)), activate(V1)) 753.12/208.07 , U21^#(tt(), V1) -> isNatKind^#(activate(V1)) 753.12/208.07 , U21^#(tt(), V1) -> activate^#(V1) 753.12/208.07 , U21^#(tt(), V1) -> U22^#(isNatKind(activate(V1)), activate(V1)) 753.12/208.07 , U22^#(tt(), V1) -> activate^#(V1) 753.12/208.07 , U22^#(tt(), V1) -> isNat^#(activate(V1)) 753.12/208.07 , U51^#(tt(), N) -> isNatKind^#(activate(N)) 753.12/208.07 , U51^#(tt(), N) -> activate^#(N) 753.12/208.07 , U51^#(tt(), N) -> U52^#(isNatKind(activate(N)), activate(N)) 753.12/208.07 , U52^#(tt(), N) -> activate^#(N) 753.12/208.07 , U61^#(tt(), M, N) -> isNatKind^#(activate(M)) 753.12/208.07 , U61^#(tt(), M, N) -> activate^#(M) 753.12/208.07 , U61^#(tt(), M, N) -> activate^#(N) 753.12/208.07 , U61^#(tt(), M, N) -> 753.12/208.07 U62^#(isNatKind(activate(M)), activate(M), activate(N)) 753.12/208.07 , U62^#(tt(), M, N) -> activate^#(M) 753.12/208.07 , U62^#(tt(), M, N) -> activate^#(N) 753.12/208.07 , U62^#(tt(), M, N) -> isNat^#(activate(N)) 753.12/208.07 , U62^#(tt(), M, N) -> 753.12/208.07 U63^#(isNat(activate(N)), activate(M), activate(N)) 753.12/208.07 , U63^#(tt(), M, N) -> isNatKind^#(activate(N)) 753.12/208.07 , U63^#(tt(), M, N) -> activate^#(M) 753.12/208.07 , U63^#(tt(), M, N) -> activate^#(N) 753.12/208.07 , U63^#(tt(), M, N) -> 753.12/208.07 U64^#(isNatKind(activate(N)), activate(M), activate(N)) 753.12/208.07 , U64^#(tt(), M, N) -> activate^#(M) 753.12/208.07 , U64^#(tt(), M, N) -> activate^#(N) } 753.12/208.07 Weak Trs: 753.12/208.07 { U11(tt(), V1, V2) -> 753.12/208.07 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.07 , U12(tt(), V1, V2) -> 753.12/208.07 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.07 , isNatKind(n__0()) -> tt() 753.12/208.07 , isNatKind(n__plus(V1, V2)) -> 753.12/208.07 U31(isNatKind(activate(V1)), activate(V2)) 753.12/208.07 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.12/208.07 , activate(X) -> X 753.12/208.07 , activate(n__0()) -> 0() 753.12/208.07 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.12/208.07 , activate(n__s(X)) -> s(activate(X)) 753.12/208.07 , U13(tt(), V1, V2) -> 753.12/208.07 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.07 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.12/208.07 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.12/208.07 , isNat(n__0()) -> tt() 753.12/208.07 , isNat(n__plus(V1, V2)) -> 753.12/208.07 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.07 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.12/208.07 , U16(tt()) -> tt() 753.12/208.07 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.12/208.07 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.12/208.07 , U23(tt()) -> tt() 753.12/208.07 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.12/208.07 , U32(tt()) -> tt() 753.12/208.07 , U41(tt()) -> tt() 753.12/208.07 , s(X) -> n__s(X) 753.12/208.07 , plus(X1, X2) -> n__plus(X1, X2) 753.12/208.07 , 0() -> n__0() } 753.12/208.07 Obligation: 753.12/208.07 innermost runtime complexity 753.12/208.07 Answer: 753.12/208.07 YES(O(1),O(n^2)) 753.12/208.07 753.12/208.07 We use the processor 'matrix interpretation of dimension 2' to 753.12/208.07 orient following rules strictly. 753.12/208.07 753.12/208.07 DPs: 753.12/208.07 { 1: activate^#(n__plus(X1, X2)) -> 753.12/208.07 c_5(activate^#(X1), activate^#(X2)) 753.12/208.07 , 12: activate^#(n__s(X)) -> c_6(activate^#(X)) 753.12/208.07 , 28: isNat^#(n__s(V1)) -> isNatKind^#(activate(V1)) 753.12/208.07 , 29: isNat^#(n__s(V1)) -> activate^#(V1) 753.12/208.07 , 30: isNat^#(n__s(V1)) -> 753.12/208.07 U21^#(isNatKind(activate(V1)), activate(V1)) 753.12/208.07 , 36: U51^#(tt(), N) -> isNatKind^#(activate(N)) 753.12/208.07 , 37: U51^#(tt(), N) -> activate^#(N) 753.12/208.07 , 38: U51^#(tt(), N) -> U52^#(isNatKind(activate(N)), activate(N)) 753.12/208.07 , 40: U61^#(tt(), M, N) -> isNatKind^#(activate(M)) 753.12/208.07 , 41: U61^#(tt(), M, N) -> activate^#(M) 753.12/208.07 , 42: U61^#(tt(), M, N) -> activate^#(N) 753.12/208.07 , 43: U61^#(tt(), M, N) -> 753.12/208.07 U62^#(isNatKind(activate(M)), activate(M), activate(N)) } 753.12/208.07 753.12/208.07 Sub-proof: 753.12/208.07 ---------- 753.12/208.07 The following argument positions are usable: 753.12/208.07 Uargs(c_3) = {1, 2, 3, 4}, Uargs(c_4) = {1, 2}, 753.12/208.07 Uargs(c_5) = {1, 2}, Uargs(c_6) = {1}, Uargs(c_8) = {1, 2} 753.12/208.07 753.12/208.07 TcT has computed the following constructor-based matrix 753.12/208.07 interpretation satisfying not(EDA). 753.12/208.07 753.12/208.07 [U11](x1, x2, x3) = [0] 753.12/208.07 [0] 753.12/208.07 753.12/208.07 [tt] = [0] 753.12/208.07 [0] 753.12/208.07 753.12/208.07 [U12](x1, x2, x3) = [0] 753.12/208.07 [0] 753.12/208.07 753.12/208.07 [isNatKind](x1) = [0] 753.12/208.07 [0] 753.12/208.07 753.12/208.07 [activate](x1) = [1 0] x1 + [0] 753.12/208.07 [0 1] [0] 753.12/208.07 753.12/208.07 [U13](x1, x2, x3) = [0] 753.12/208.07 [0] 753.12/208.07 753.12/208.07 [U14](x1, x2, x3) = [0] 753.12/208.07 [0] 753.12/208.07 753.12/208.07 [U15](x1, x2) = [0] 753.12/208.07 [0] 753.12/208.07 753.12/208.07 [isNat](x1) = [0] 753.12/208.07 [0] 753.12/208.07 753.12/208.07 [U16](x1) = [0] 753.12/208.07 [0] 753.12/208.07 753.12/208.07 [U21](x1, x2) = [0] 753.12/208.07 [0] 753.12/208.07 753.12/208.07 [U22](x1, x2) = [0] 753.12/208.07 [0] 753.12/208.07 753.12/208.07 [U23](x1) = [0] 753.12/208.07 [0] 753.12/208.07 753.12/208.07 [U31](x1, x2) = [0] 753.12/208.07 [0] 753.12/208.07 753.12/208.07 [U32](x1) = [0] 753.12/208.07 [0] 753.12/208.07 753.12/208.07 [U41](x1) = [0] 753.12/208.07 [0] 753.12/208.07 753.12/208.07 [s](x1) = [1 2] x1 + [1] 753.12/208.07 [0 1] [4] 753.12/208.07 753.12/208.07 [plus](x1, x2) = [1 2] x1 + [1 2] x2 + [0] 753.12/208.07 [0 1] [0 1] [2] 753.12/208.07 753.12/208.07 [n__0] = [0] 753.12/208.07 [0] 753.12/208.07 753.12/208.07 [n__plus](x1, x2) = [1 2] x1 + [1 2] x2 + [0] 753.12/208.07 [0 1] [0 1] [2] 753.12/208.07 753.12/208.07 [n__s](x1) = [1 2] x1 + [1] 753.12/208.07 [0 1] [4] 753.12/208.07 753.12/208.07 [0] = [0] 753.12/208.07 [0] 753.12/208.07 753.12/208.07 [U11^#](x1, x2, x3) = [1 2] x2 + [1 2] x3 + [0] 753.12/208.07 [4 1] [4 1] [4] 753.12/208.07 753.12/208.07 [U12^#](x1, x2, x3) = [1 1] x2 + [1 2] x3 + [0] 753.12/208.07 [4 1] [4 1] [4] 753.12/208.07 753.12/208.07 [isNatKind^#](x1) = [1 0] x1 + [0] 753.12/208.07 [0 0] [0] 753.12/208.07 753.12/208.07 [activate^#](x1) = [0 1] x1 + [0] 753.12/208.07 [0 0] [0] 753.12/208.07 753.12/208.07 [U13^#](x1, x2, x3) = [1 1] x2 + [1 1] x3 + [0] 753.12/208.07 [4 1] [4 1] [2] 753.12/208.07 753.12/208.07 [U31^#](x1, x2) = [1 1] x2 + [0] 753.12/208.07 [4 4] [4] 753.12/208.07 753.12/208.07 [U14^#](x1, x2, x3) = [1 1] x2 + [1 1] x3 + [0] 753.12/208.07 [4 1] [4 1] [2] 753.12/208.07 753.12/208.07 [U15^#](x1, x2) = [1 1] x2 + [0] 753.12/208.07 [4 1] [2] 753.12/208.07 753.12/208.07 [isNat^#](x1) = [1 0] x1 + [0] 753.12/208.07 [4 1] [2] 753.12/208.07 753.12/208.07 [U21^#](x1, x2) = [1 2] x2 + [0] 753.12/208.07 [4 1] [2] 753.12/208.07 753.12/208.07 [U22^#](x1, x2) = [1 2] x2 + [0] 753.12/208.07 [4 1] [2] 753.12/208.07 753.12/208.07 [U51^#](x1, x2) = [7 4] x1 + [7 7] x2 + [7] 753.12/208.07 [5 7] [7 7] [3] 753.12/208.07 753.12/208.07 [U52^#](x1, x2) = [0 4] x2 + [0] 753.12/208.07 [0 0] [0] 753.12/208.07 753.12/208.07 [U61^#](x1, x2, x3) = [7 4] x1 + [7 7] x2 + [7 7] x3 + [7] 753.12/208.07 [7 7] [7 7] [7 7] [7] 753.12/208.07 753.12/208.07 [U62^#](x1, x2, x3) = [0 4] x2 + [2 2] x3 + [0] 753.12/208.07 [0 0] [4 1] [2] 753.12/208.07 753.12/208.07 [U63^#](x1, x2, x3) = [0 4] x2 + [1 1] x3 + [0] 753.12/208.07 [0 0] [0 0] [0] 753.12/208.07 753.12/208.07 [U64^#](x1, x2, x3) = [0 4] x2 + [0 1] x3 + [0] 753.12/208.07 [0 0] [0 0] [0] 753.12/208.07 753.12/208.07 [c_3](x1, x2, x3, x4) = [1 0] x1 + [1 0] x2 + [2 0] x3 + [1 753.12/208.07 0] x4 + [0] 753.12/208.07 [0 0] [0 0] [0 0] [0 753.12/208.07 0] [0] 753.12/208.07 753.12/208.07 [c_4](x1, x2) = [1 0] x1 + [2 0] x2 + [1] 753.12/208.07 [0 0] [0 0] [0] 753.12/208.07 753.12/208.07 [c_5](x1, x2) = [1 0] x1 + [1 0] x2 + [1] 753.12/208.07 [0 0] [0 0] [0] 753.12/208.07 753.12/208.07 [c_6](x1) = [1 0] x1 + [3] 753.12/208.07 [0 0] [0] 753.12/208.07 753.12/208.07 [c_8](x1, x2) = [1 0] x1 + [1 0] x2 + [0] 753.12/208.07 [0 0] [0 0] [3] 753.12/208.07 753.12/208.07 The order satisfies the following ordering constraints: 753.12/208.07 753.12/208.07 [U11(tt(), V1, V2)] = [0] 753.12/208.07 [0] 753.12/208.07 >= [0] 753.12/208.07 [0] 753.12/208.07 = [U12(isNatKind(activate(V1)), activate(V1), activate(V2))] 753.12/208.07 753.12/208.07 [U12(tt(), V1, V2)] = [0] 753.12/208.07 [0] 753.12/208.07 >= [0] 753.12/208.07 [0] 753.12/208.07 = [U13(isNatKind(activate(V2)), activate(V1), activate(V2))] 753.12/208.07 753.12/208.07 [isNatKind(n__0())] = [0] 753.12/208.07 [0] 753.12/208.07 >= [0] 753.12/208.07 [0] 753.12/208.07 = [tt()] 753.12/208.07 753.12/208.07 [isNatKind(n__plus(V1, V2))] = [0] 753.12/208.07 [0] 753.12/208.07 >= [0] 753.12/208.07 [0] 753.12/208.07 = [U31(isNatKind(activate(V1)), activate(V2))] 753.12/208.07 753.12/208.07 [isNatKind(n__s(V1))] = [0] 753.12/208.07 [0] 753.12/208.07 >= [0] 753.12/208.07 [0] 753.12/208.07 = [U41(isNatKind(activate(V1)))] 753.12/208.07 753.12/208.07 [activate(X)] = [1 0] X + [0] 753.12/208.07 [0 1] [0] 753.12/208.07 >= [1 0] X + [0] 753.12/208.07 [0 1] [0] 753.12/208.07 = [X] 753.12/208.07 753.12/208.07 [activate(n__0())] = [0] 753.12/208.07 [0] 753.12/208.07 >= [0] 753.12/208.07 [0] 753.12/208.07 = [0()] 753.12/208.07 753.12/208.07 [activate(n__plus(X1, X2))] = [1 2] X1 + [1 2] X2 + [0] 753.12/208.07 [0 1] [0 1] [2] 753.12/208.07 >= [1 2] X1 + [1 2] X2 + [0] 753.12/208.07 [0 1] [0 1] [2] 753.12/208.07 = [plus(activate(X1), activate(X2))] 753.12/208.07 753.12/208.07 [activate(n__s(X))] = [1 2] X + [1] 753.12/208.07 [0 1] [4] 753.12/208.07 >= [1 2] X + [1] 753.12/208.07 [0 1] [4] 753.12/208.07 = [s(activate(X))] 753.12/208.07 753.12/208.07 [U13(tt(), V1, V2)] = [0] 753.12/208.07 [0] 753.12/208.07 >= [0] 753.12/208.07 [0] 753.12/208.07 = [U14(isNatKind(activate(V2)), activate(V1), activate(V2))] 753.12/208.07 753.12/208.07 [U14(tt(), V1, V2)] = [0] 753.12/208.07 [0] 753.12/208.07 >= [0] 753.12/208.07 [0] 753.12/208.07 = [U15(isNat(activate(V1)), activate(V2))] 753.12/208.07 753.12/208.07 [U15(tt(), V2)] = [0] 753.12/208.07 [0] 753.12/208.07 >= [0] 753.12/208.07 [0] 753.12/208.07 = [U16(isNat(activate(V2)))] 753.12/208.07 753.12/208.07 [isNat(n__0())] = [0] 753.12/208.07 [0] 753.12/208.07 >= [0] 753.12/208.07 [0] 753.12/208.07 = [tt()] 753.12/208.07 753.12/208.07 [isNat(n__plus(V1, V2))] = [0] 753.12/208.07 [0] 753.12/208.07 >= [0] 753.12/208.07 [0] 753.12/208.07 = [U11(isNatKind(activate(V1)), activate(V1), activate(V2))] 753.12/208.07 753.12/208.07 [isNat(n__s(V1))] = [0] 753.12/208.07 [0] 753.12/208.07 >= [0] 753.12/208.07 [0] 753.12/208.07 = [U21(isNatKind(activate(V1)), activate(V1))] 753.12/208.07 753.12/208.07 [U16(tt())] = [0] 753.12/208.07 [0] 753.12/208.07 >= [0] 753.12/208.07 [0] 753.12/208.07 = [tt()] 753.12/208.07 753.12/208.07 [U21(tt(), V1)] = [0] 753.12/208.07 [0] 753.12/208.07 >= [0] 753.12/208.07 [0] 753.12/208.07 = [U22(isNatKind(activate(V1)), activate(V1))] 753.12/208.07 753.12/208.07 [U22(tt(), V1)] = [0] 753.12/208.07 [0] 753.12/208.07 >= [0] 753.12/208.07 [0] 753.12/208.07 = [U23(isNat(activate(V1)))] 753.12/208.07 753.12/208.07 [U23(tt())] = [0] 753.12/208.07 [0] 753.12/208.07 >= [0] 753.12/208.07 [0] 753.12/208.07 = [tt()] 753.12/208.07 753.12/208.07 [U31(tt(), V2)] = [0] 753.12/208.07 [0] 753.12/208.07 >= [0] 753.12/208.07 [0] 753.12/208.08 = [U32(isNatKind(activate(V2)))] 753.12/208.08 753.12/208.08 [U32(tt())] = [0] 753.12/208.08 [0] 753.12/208.08 >= [0] 753.12/208.08 [0] 753.12/208.08 = [tt()] 753.12/208.08 753.12/208.08 [U41(tt())] = [0] 753.12/208.08 [0] 753.12/208.08 >= [0] 753.12/208.08 [0] 753.12/208.08 = [tt()] 753.12/208.08 753.12/208.08 [s(X)] = [1 2] X + [1] 753.12/208.08 [0 1] [4] 753.12/208.08 >= [1 2] X + [1] 753.12/208.08 [0 1] [4] 753.12/208.08 = [n__s(X)] 753.12/208.08 753.12/208.08 [plus(X1, X2)] = [1 2] X1 + [1 2] X2 + [0] 753.12/208.08 [0 1] [0 1] [2] 753.12/208.08 >= [1 2] X1 + [1 2] X2 + [0] 753.12/208.08 [0 1] [0 1] [2] 753.12/208.08 = [n__plus(X1, X2)] 753.12/208.08 753.12/208.08 [0()] = [0] 753.12/208.08 [0] 753.12/208.08 >= [0] 753.12/208.08 [0] 753.12/208.08 = [n__0()] 753.12/208.08 753.12/208.08 [U11^#(tt(), V1, V2)] = [1 2] V1 + [1 2] V2 + [0] 753.12/208.08 [4 1] [4 1] [4] 753.12/208.08 >= [1 1] V1 + [1 2] V2 + [0] 753.12/208.08 [4 1] [4 1] [4] 753.12/208.08 = [U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))] 753.12/208.08 753.12/208.08 [U11^#(tt(), V1, V2)] = [1 2] V1 + [1 2] V2 + [0] 753.12/208.08 [4 1] [4 1] [4] 753.12/208.08 >= [1 0] V1 + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [isNatKind^#(activate(V1))] 753.12/208.08 753.12/208.08 [U11^#(tt(), V1, V2)] = [1 2] V1 + [1 2] V2 + [0] 753.12/208.08 [4 1] [4 1] [4] 753.12/208.08 >= [0 1] V1 + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [activate^#(V1)] 753.12/208.08 753.12/208.08 [U11^#(tt(), V1, V2)] = [1 2] V1 + [1 2] V2 + [0] 753.12/208.08 [4 1] [4 1] [4] 753.12/208.08 >= [0 1] V2 + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [activate^#(V2)] 753.12/208.08 753.12/208.08 [U12^#(tt(), V1, V2)] = [1 1] V1 + [1 2] V2 + [0] 753.12/208.08 [4 1] [4 1] [4] 753.12/208.08 >= [1 0] V2 + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [isNatKind^#(activate(V2))] 753.12/208.08 753.12/208.08 [U12^#(tt(), V1, V2)] = [1 1] V1 + [1 2] V2 + [0] 753.12/208.08 [4 1] [4 1] [4] 753.12/208.08 >= [0 1] V1 + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [activate^#(V1)] 753.12/208.08 753.12/208.08 [U12^#(tt(), V1, V2)] = [1 1] V1 + [1 2] V2 + [0] 753.12/208.08 [4 1] [4 1] [4] 753.12/208.08 >= [0 1] V2 + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [activate^#(V2)] 753.12/208.08 753.12/208.08 [U12^#(tt(), V1, V2)] = [1 1] V1 + [1 2] V2 + [0] 753.12/208.08 [4 1] [4 1] [4] 753.12/208.08 >= [1 1] V1 + [1 1] V2 + [0] 753.12/208.08 [4 1] [4 1] [2] 753.12/208.08 = [U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))] 753.12/208.08 753.12/208.08 [isNatKind^#(n__plus(V1, V2))] = [1 2] V1 + [1 2] V2 + [0] 753.12/208.08 [0 0] [0 0] [0] 753.12/208.08 >= [1 2] V1 + [1 2] V2 + [0] 753.12/208.08 [0 0] [0 0] [0] 753.12/208.08 = [c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.12/208.08 isNatKind^#(activate(V1)), 753.12/208.08 activate^#(V1), 753.12/208.08 activate^#(V2))] 753.12/208.08 753.12/208.08 [isNatKind^#(n__s(V1))] = [1 2] V1 + [1] 753.12/208.08 [0 0] [0] 753.12/208.08 >= [1 2] V1 + [1] 753.12/208.08 [0 0] [0] 753.12/208.08 = [c_4(isNatKind^#(activate(V1)), activate^#(V1))] 753.12/208.08 753.12/208.08 [activate^#(n__plus(X1, X2))] = [0 1] X1 + [0 1] X2 + [2] 753.12/208.08 [0 0] [0 0] [0] 753.12/208.08 > [0 1] X1 + [0 1] X2 + [1] 753.12/208.08 [0 0] [0 0] [0] 753.12/208.08 = [c_5(activate^#(X1), activate^#(X2))] 753.12/208.08 753.12/208.08 [activate^#(n__s(X))] = [0 1] X + [4] 753.12/208.08 [0 0] [0] 753.12/208.08 > [0 1] X + [3] 753.12/208.08 [0 0] [0] 753.12/208.08 = [c_6(activate^#(X))] 753.12/208.08 753.12/208.08 [U13^#(tt(), V1, V2)] = [1 1] V1 + [1 1] V2 + [0] 753.12/208.08 [4 1] [4 1] [2] 753.12/208.08 >= [1 0] V2 + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [isNatKind^#(activate(V2))] 753.12/208.08 753.12/208.08 [U13^#(tt(), V1, V2)] = [1 1] V1 + [1 1] V2 + [0] 753.12/208.08 [4 1] [4 1] [2] 753.12/208.08 >= [0 1] V1 + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [activate^#(V1)] 753.12/208.08 753.12/208.08 [U13^#(tt(), V1, V2)] = [1 1] V1 + [1 1] V2 + [0] 753.12/208.08 [4 1] [4 1] [2] 753.12/208.08 >= [0 1] V2 + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [activate^#(V2)] 753.12/208.08 753.12/208.08 [U13^#(tt(), V1, V2)] = [1 1] V1 + [1 1] V2 + [0] 753.12/208.08 [4 1] [4 1] [2] 753.12/208.08 >= [1 1] V1 + [1 1] V2 + [0] 753.12/208.08 [4 1] [4 1] [2] 753.12/208.08 = [U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))] 753.12/208.08 753.12/208.08 [U31^#(tt(), V2)] = [1 1] V2 + [0] 753.12/208.08 [4 4] [4] 753.12/208.08 >= [1 1] V2 + [0] 753.12/208.08 [0 0] [3] 753.12/208.08 = [c_8(isNatKind^#(activate(V2)), activate^#(V2))] 753.12/208.08 753.12/208.08 [U14^#(tt(), V1, V2)] = [1 1] V1 + [1 1] V2 + [0] 753.12/208.08 [4 1] [4 1] [2] 753.12/208.08 >= [0 1] V1 + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [activate^#(V1)] 753.12/208.08 753.12/208.08 [U14^#(tt(), V1, V2)] = [1 1] V1 + [1 1] V2 + [0] 753.12/208.08 [4 1] [4 1] [2] 753.12/208.08 >= [0 1] V2 + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [activate^#(V2)] 753.12/208.08 753.12/208.08 [U14^#(tt(), V1, V2)] = [1 1] V1 + [1 1] V2 + [0] 753.12/208.08 [4 1] [4 1] [2] 753.12/208.08 >= [1 1] V2 + [0] 753.12/208.08 [4 1] [2] 753.12/208.08 = [U15^#(isNat(activate(V1)), activate(V2))] 753.12/208.08 753.12/208.08 [U14^#(tt(), V1, V2)] = [1 1] V1 + [1 1] V2 + [0] 753.12/208.08 [4 1] [4 1] [2] 753.12/208.08 >= [1 0] V1 + [0] 753.12/208.08 [4 1] [2] 753.12/208.08 = [isNat^#(activate(V1))] 753.12/208.08 753.12/208.08 [U15^#(tt(), V2)] = [1 1] V2 + [0] 753.12/208.08 [4 1] [2] 753.12/208.08 >= [0 1] V2 + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [activate^#(V2)] 753.12/208.08 753.12/208.08 [U15^#(tt(), V2)] = [1 1] V2 + [0] 753.12/208.08 [4 1] [2] 753.12/208.08 >= [1 0] V2 + [0] 753.12/208.08 [4 1] [2] 753.12/208.08 = [isNat^#(activate(V2))] 753.12/208.08 753.12/208.08 [isNat^#(n__plus(V1, V2))] = [1 2] V1 + [1 2] V2 + [0] 753.12/208.08 [4 9] [4 9] [4] 753.12/208.08 >= [1 2] V1 + [1 2] V2 + [0] 753.12/208.08 [4 1] [4 1] [4] 753.12/208.08 = [U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))] 753.12/208.08 753.12/208.08 [isNat^#(n__plus(V1, V2))] = [1 2] V1 + [1 2] V2 + [0] 753.12/208.08 [4 9] [4 9] [4] 753.12/208.08 >= [1 0] V1 + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [isNatKind^#(activate(V1))] 753.12/208.08 753.12/208.08 [isNat^#(n__plus(V1, V2))] = [1 2] V1 + [1 2] V2 + [0] 753.12/208.08 [4 9] [4 9] [4] 753.12/208.08 >= [0 1] V1 + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [activate^#(V1)] 753.12/208.08 753.12/208.08 [isNat^#(n__plus(V1, V2))] = [1 2] V1 + [1 2] V2 + [0] 753.12/208.08 [4 9] [4 9] [4] 753.12/208.08 >= [0 1] V2 + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [activate^#(V2)] 753.12/208.08 753.12/208.08 [isNat^#(n__s(V1))] = [1 2] V1 + [1] 753.12/208.08 [4 9] [10] 753.12/208.08 > [1 0] V1 + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [isNatKind^#(activate(V1))] 753.12/208.08 753.12/208.08 [isNat^#(n__s(V1))] = [1 2] V1 + [1] 753.12/208.08 [4 9] [10] 753.12/208.08 > [0 1] V1 + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [activate^#(V1)] 753.12/208.08 753.12/208.08 [isNat^#(n__s(V1))] = [1 2] V1 + [1] 753.12/208.08 [4 9] [10] 753.12/208.08 > [1 2] V1 + [0] 753.12/208.08 [4 1] [2] 753.12/208.08 = [U21^#(isNatKind(activate(V1)), activate(V1))] 753.12/208.08 753.12/208.08 [U21^#(tt(), V1)] = [1 2] V1 + [0] 753.12/208.08 [4 1] [2] 753.12/208.08 >= [1 0] V1 + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [isNatKind^#(activate(V1))] 753.12/208.08 753.12/208.08 [U21^#(tt(), V1)] = [1 2] V1 + [0] 753.12/208.08 [4 1] [2] 753.12/208.08 >= [0 1] V1 + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [activate^#(V1)] 753.12/208.08 753.12/208.08 [U21^#(tt(), V1)] = [1 2] V1 + [0] 753.12/208.08 [4 1] [2] 753.12/208.08 >= [1 2] V1 + [0] 753.12/208.08 [4 1] [2] 753.12/208.08 = [U22^#(isNatKind(activate(V1)), activate(V1))] 753.12/208.08 753.12/208.08 [U22^#(tt(), V1)] = [1 2] V1 + [0] 753.12/208.08 [4 1] [2] 753.12/208.08 >= [0 1] V1 + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [activate^#(V1)] 753.12/208.08 753.12/208.08 [U22^#(tt(), V1)] = [1 2] V1 + [0] 753.12/208.08 [4 1] [2] 753.12/208.08 >= [1 0] V1 + [0] 753.12/208.08 [4 1] [2] 753.12/208.08 = [isNat^#(activate(V1))] 753.12/208.08 753.12/208.08 [U51^#(tt(), N)] = [7 7] N + [7] 753.12/208.08 [7 7] [3] 753.12/208.08 > [1 0] N + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [isNatKind^#(activate(N))] 753.12/208.08 753.12/208.08 [U51^#(tt(), N)] = [7 7] N + [7] 753.12/208.08 [7 7] [3] 753.12/208.08 > [0 1] N + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [activate^#(N)] 753.12/208.08 753.12/208.08 [U51^#(tt(), N)] = [7 7] N + [7] 753.12/208.08 [7 7] [3] 753.12/208.08 > [0 4] N + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [U52^#(isNatKind(activate(N)), activate(N))] 753.12/208.08 753.12/208.08 [U52^#(tt(), N)] = [0 4] N + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 >= [0 1] N + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [activate^#(N)] 753.12/208.08 753.12/208.08 [U61^#(tt(), M, N)] = [7 7] N + [7 7] M + [7] 753.12/208.08 [7 7] [7 7] [7] 753.12/208.08 > [1 0] M + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [isNatKind^#(activate(M))] 753.12/208.08 753.12/208.08 [U61^#(tt(), M, N)] = [7 7] N + [7 7] M + [7] 753.12/208.08 [7 7] [7 7] [7] 753.12/208.08 > [0 1] M + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [activate^#(M)] 753.12/208.08 753.12/208.08 [U61^#(tt(), M, N)] = [7 7] N + [7 7] M + [7] 753.12/208.08 [7 7] [7 7] [7] 753.12/208.08 > [0 1] N + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [activate^#(N)] 753.12/208.08 753.12/208.08 [U61^#(tt(), M, N)] = [7 7] N + [7 7] M + [7] 753.12/208.08 [7 7] [7 7] [7] 753.12/208.08 > [2 2] N + [0 4] M + [0] 753.12/208.08 [4 1] [0 0] [2] 753.12/208.08 = [U62^#(isNatKind(activate(M)), activate(M), activate(N))] 753.12/208.08 753.12/208.08 [U62^#(tt(), M, N)] = [2 2] N + [0 4] M + [0] 753.12/208.08 [4 1] [0 0] [2] 753.12/208.08 >= [0 1] M + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [activate^#(M)] 753.12/208.08 753.12/208.08 [U62^#(tt(), M, N)] = [2 2] N + [0 4] M + [0] 753.12/208.08 [4 1] [0 0] [2] 753.12/208.08 >= [0 1] N + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [activate^#(N)] 753.12/208.08 753.12/208.08 [U62^#(tt(), M, N)] = [2 2] N + [0 4] M + [0] 753.12/208.08 [4 1] [0 0] [2] 753.12/208.08 >= [1 0] N + [0] 753.12/208.08 [4 1] [2] 753.12/208.08 = [isNat^#(activate(N))] 753.12/208.08 753.12/208.08 [U62^#(tt(), M, N)] = [2 2] N + [0 4] M + [0] 753.12/208.08 [4 1] [0 0] [2] 753.12/208.08 >= [1 1] N + [0 4] M + [0] 753.12/208.08 [0 0] [0 0] [0] 753.12/208.08 = [U63^#(isNat(activate(N)), activate(M), activate(N))] 753.12/208.08 753.12/208.08 [U63^#(tt(), M, N)] = [1 1] N + [0 4] M + [0] 753.12/208.08 [0 0] [0 0] [0] 753.12/208.08 >= [1 0] N + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [isNatKind^#(activate(N))] 753.12/208.08 753.12/208.08 [U63^#(tt(), M, N)] = [1 1] N + [0 4] M + [0] 753.12/208.08 [0 0] [0 0] [0] 753.12/208.08 >= [0 1] M + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [activate^#(M)] 753.12/208.08 753.12/208.08 [U63^#(tt(), M, N)] = [1 1] N + [0 4] M + [0] 753.12/208.08 [0 0] [0 0] [0] 753.12/208.08 >= [0 1] N + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [activate^#(N)] 753.12/208.08 753.12/208.08 [U63^#(tt(), M, N)] = [1 1] N + [0 4] M + [0] 753.12/208.08 [0 0] [0 0] [0] 753.12/208.08 >= [0 1] N + [0 4] M + [0] 753.12/208.08 [0 0] [0 0] [0] 753.12/208.08 = [U64^#(isNatKind(activate(N)), activate(M), activate(N))] 753.12/208.08 753.12/208.08 [U64^#(tt(), M, N)] = [0 1] N + [0 4] M + [0] 753.12/208.08 [0 0] [0 0] [0] 753.12/208.08 >= [0 1] M + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [activate^#(M)] 753.12/208.08 753.12/208.08 [U64^#(tt(), M, N)] = [0 1] N + [0 4] M + [0] 753.12/208.08 [0 0] [0 0] [0] 753.12/208.08 >= [0 1] N + [0] 753.12/208.08 [0 0] [0] 753.12/208.08 = [activate^#(N)] 753.12/208.08 753.12/208.08 753.12/208.08 We return to the main proof. Consider the set of all dependency 753.12/208.08 pairs 753.12/208.08 753.12/208.08 : 753.12/208.08 { 1: activate^#(n__plus(X1, X2)) -> 753.12/208.08 c_5(activate^#(X1), activate^#(X2)) 753.12/208.08 , 2: U11^#(tt(), V1, V2) -> 753.12/208.08 U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.08 , 3: U11^#(tt(), V1, V2) -> isNatKind^#(activate(V1)) 753.12/208.08 , 4: U11^#(tt(), V1, V2) -> activate^#(V1) 753.12/208.08 , 5: U11^#(tt(), V1, V2) -> activate^#(V2) 753.12/208.08 , 6: U12^#(tt(), V1, V2) -> isNatKind^#(activate(V2)) 753.12/208.08 , 7: U12^#(tt(), V1, V2) -> activate^#(V1) 753.12/208.08 , 8: U12^#(tt(), V1, V2) -> activate^#(V2) 753.12/208.08 , 9: U12^#(tt(), V1, V2) -> 753.12/208.08 U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.08 , 10: isNatKind^#(n__plus(V1, V2)) -> 753.12/208.08 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.12/208.08 isNatKind^#(activate(V1)), 753.12/208.08 activate^#(V1), 753.12/208.08 activate^#(V2)) 753.12/208.08 , 11: isNatKind^#(n__s(V1)) -> 753.12/208.08 c_4(isNatKind^#(activate(V1)), activate^#(V1)) 753.12/208.08 , 12: activate^#(n__s(X)) -> c_6(activate^#(X)) 753.12/208.08 , 13: U13^#(tt(), V1, V2) -> isNatKind^#(activate(V2)) 753.12/208.08 , 14: U13^#(tt(), V1, V2) -> activate^#(V1) 753.12/208.08 , 15: U13^#(tt(), V1, V2) -> activate^#(V2) 753.12/208.08 , 16: U13^#(tt(), V1, V2) -> 753.12/208.08 U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.08 , 17: U31^#(tt(), V2) -> 753.12/208.08 c_8(isNatKind^#(activate(V2)), activate^#(V2)) 753.12/208.08 , 18: U14^#(tt(), V1, V2) -> activate^#(V1) 753.12/208.08 , 19: U14^#(tt(), V1, V2) -> activate^#(V2) 753.12/208.08 , 20: U14^#(tt(), V1, V2) -> 753.12/208.08 U15^#(isNat(activate(V1)), activate(V2)) 753.12/208.08 , 21: U14^#(tt(), V1, V2) -> isNat^#(activate(V1)) 753.12/208.08 , 22: U15^#(tt(), V2) -> activate^#(V2) 753.12/208.08 , 23: U15^#(tt(), V2) -> isNat^#(activate(V2)) 753.12/208.08 , 24: isNat^#(n__plus(V1, V2)) -> 753.12/208.08 U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.08 , 25: isNat^#(n__plus(V1, V2)) -> isNatKind^#(activate(V1)) 753.12/208.08 , 26: isNat^#(n__plus(V1, V2)) -> activate^#(V1) 753.12/208.08 , 27: isNat^#(n__plus(V1, V2)) -> activate^#(V2) 753.12/208.08 , 28: isNat^#(n__s(V1)) -> isNatKind^#(activate(V1)) 753.12/208.08 , 29: isNat^#(n__s(V1)) -> activate^#(V1) 753.12/208.08 , 30: isNat^#(n__s(V1)) -> 753.12/208.08 U21^#(isNatKind(activate(V1)), activate(V1)) 753.12/208.08 , 31: U21^#(tt(), V1) -> isNatKind^#(activate(V1)) 753.12/208.08 , 32: U21^#(tt(), V1) -> activate^#(V1) 753.12/208.08 , 33: U21^#(tt(), V1) -> 753.12/208.08 U22^#(isNatKind(activate(V1)), activate(V1)) 753.12/208.08 , 34: U22^#(tt(), V1) -> activate^#(V1) 753.12/208.08 , 35: U22^#(tt(), V1) -> isNat^#(activate(V1)) 753.12/208.08 , 36: U51^#(tt(), N) -> isNatKind^#(activate(N)) 753.12/208.08 , 37: U51^#(tt(), N) -> activate^#(N) 753.12/208.08 , 38: U51^#(tt(), N) -> U52^#(isNatKind(activate(N)), activate(N)) 753.12/208.08 , 39: U52^#(tt(), N) -> activate^#(N) 753.12/208.08 , 40: U61^#(tt(), M, N) -> isNatKind^#(activate(M)) 753.12/208.08 , 41: U61^#(tt(), M, N) -> activate^#(M) 753.12/208.08 , 42: U61^#(tt(), M, N) -> activate^#(N) 753.12/208.08 , 43: U61^#(tt(), M, N) -> 753.12/208.08 U62^#(isNatKind(activate(M)), activate(M), activate(N)) 753.12/208.08 , 44: U62^#(tt(), M, N) -> activate^#(M) 753.12/208.08 , 45: U62^#(tt(), M, N) -> activate^#(N) 753.12/208.08 , 46: U62^#(tt(), M, N) -> isNat^#(activate(N)) 753.12/208.08 , 47: U62^#(tt(), M, N) -> 753.12/208.08 U63^#(isNat(activate(N)), activate(M), activate(N)) 753.12/208.09 , 48: U63^#(tt(), M, N) -> isNatKind^#(activate(N)) 753.12/208.09 , 49: U63^#(tt(), M, N) -> activate^#(M) 753.12/208.09 , 50: U63^#(tt(), M, N) -> activate^#(N) 753.12/208.09 , 51: U63^#(tt(), M, N) -> 753.12/208.09 U64^#(isNatKind(activate(N)), activate(M), activate(N)) 753.12/208.09 , 52: U64^#(tt(), M, N) -> activate^#(M) 753.12/208.09 , 53: U64^#(tt(), M, N) -> activate^#(N) } 753.12/208.09 753.12/208.09 Processor 'matrix interpretation of dimension 2' induces the 753.12/208.09 complexity certificate YES(?,O(n^2)) on application of dependency 753.12/208.09 pairs {1,12,28,29,30,36,37,38,40,41,42,43}. These cover all 753.12/208.09 (indirect) predecessors of dependency pairs 753.12/208.09 {1,12,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53}, 753.12/208.09 their number of application is equally bounded. The dependency 753.12/208.09 pairs are shifted into the weak component. 753.12/208.09 753.12/208.09 We are left with following problem, upon which TcT provides the 753.12/208.09 certificate YES(O(1),O(1)). 753.12/208.09 753.12/208.09 Weak DPs: 753.12/208.09 { U11^#(tt(), V1, V2) -> 753.12/208.09 U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.09 , U11^#(tt(), V1, V2) -> isNatKind^#(activate(V1)) 753.12/208.09 , U11^#(tt(), V1, V2) -> activate^#(V1) 753.12/208.09 , U11^#(tt(), V1, V2) -> activate^#(V2) 753.12/208.09 , U12^#(tt(), V1, V2) -> isNatKind^#(activate(V2)) 753.12/208.09 , U12^#(tt(), V1, V2) -> activate^#(V1) 753.12/208.09 , U12^#(tt(), V1, V2) -> activate^#(V2) 753.12/208.09 , U12^#(tt(), V1, V2) -> 753.12/208.09 U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.09 , isNatKind^#(n__plus(V1, V2)) -> 753.12/208.09 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.12/208.09 isNatKind^#(activate(V1)), 753.12/208.09 activate^#(V1), 753.12/208.09 activate^#(V2)) 753.12/208.09 , isNatKind^#(n__s(V1)) -> 753.12/208.09 c_4(isNatKind^#(activate(V1)), activate^#(V1)) 753.12/208.09 , activate^#(n__plus(X1, X2)) -> 753.12/208.09 c_5(activate^#(X1), activate^#(X2)) 753.12/208.09 , activate^#(n__s(X)) -> c_6(activate^#(X)) 753.12/208.09 , U13^#(tt(), V1, V2) -> isNatKind^#(activate(V2)) 753.12/208.09 , U13^#(tt(), V1, V2) -> activate^#(V1) 753.12/208.09 , U13^#(tt(), V1, V2) -> activate^#(V2) 753.12/208.09 , U13^#(tt(), V1, V2) -> 753.12/208.09 U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.09 , U31^#(tt(), V2) -> c_8(isNatKind^#(activate(V2)), activate^#(V2)) 753.12/208.09 , U14^#(tt(), V1, V2) -> activate^#(V1) 753.12/208.09 , U14^#(tt(), V1, V2) -> activate^#(V2) 753.12/208.09 , U14^#(tt(), V1, V2) -> U15^#(isNat(activate(V1)), activate(V2)) 753.12/208.09 , U14^#(tt(), V1, V2) -> isNat^#(activate(V1)) 753.12/208.09 , U15^#(tt(), V2) -> activate^#(V2) 753.12/208.09 , U15^#(tt(), V2) -> isNat^#(activate(V2)) 753.12/208.09 , isNat^#(n__plus(V1, V2)) -> 753.12/208.09 U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.09 , isNat^#(n__plus(V1, V2)) -> isNatKind^#(activate(V1)) 753.12/208.09 , isNat^#(n__plus(V1, V2)) -> activate^#(V1) 753.12/208.09 , isNat^#(n__plus(V1, V2)) -> activate^#(V2) 753.12/208.09 , isNat^#(n__s(V1)) -> isNatKind^#(activate(V1)) 753.12/208.09 , isNat^#(n__s(V1)) -> activate^#(V1) 753.12/208.09 , isNat^#(n__s(V1)) -> U21^#(isNatKind(activate(V1)), activate(V1)) 753.12/208.09 , U21^#(tt(), V1) -> isNatKind^#(activate(V1)) 753.12/208.09 , U21^#(tt(), V1) -> activate^#(V1) 753.12/208.09 , U21^#(tt(), V1) -> U22^#(isNatKind(activate(V1)), activate(V1)) 753.12/208.09 , U22^#(tt(), V1) -> activate^#(V1) 753.12/208.09 , U22^#(tt(), V1) -> isNat^#(activate(V1)) 753.12/208.09 , U51^#(tt(), N) -> isNatKind^#(activate(N)) 753.12/208.09 , U51^#(tt(), N) -> activate^#(N) 753.12/208.09 , U51^#(tt(), N) -> U52^#(isNatKind(activate(N)), activate(N)) 753.12/208.09 , U52^#(tt(), N) -> activate^#(N) 753.12/208.09 , U61^#(tt(), M, N) -> isNatKind^#(activate(M)) 753.12/208.09 , U61^#(tt(), M, N) -> activate^#(M) 753.12/208.09 , U61^#(tt(), M, N) -> activate^#(N) 753.12/208.09 , U61^#(tt(), M, N) -> 753.12/208.09 U62^#(isNatKind(activate(M)), activate(M), activate(N)) 753.12/208.09 , U62^#(tt(), M, N) -> activate^#(M) 753.12/208.09 , U62^#(tt(), M, N) -> activate^#(N) 753.12/208.09 , U62^#(tt(), M, N) -> isNat^#(activate(N)) 753.12/208.09 , U62^#(tt(), M, N) -> 753.12/208.09 U63^#(isNat(activate(N)), activate(M), activate(N)) 753.12/208.09 , U63^#(tt(), M, N) -> isNatKind^#(activate(N)) 753.12/208.09 , U63^#(tt(), M, N) -> activate^#(M) 753.12/208.09 , U63^#(tt(), M, N) -> activate^#(N) 753.12/208.09 , U63^#(tt(), M, N) -> 753.12/208.09 U64^#(isNatKind(activate(N)), activate(M), activate(N)) 753.12/208.09 , U64^#(tt(), M, N) -> activate^#(M) 753.12/208.09 , U64^#(tt(), M, N) -> activate^#(N) } 753.12/208.09 Weak Trs: 753.12/208.09 { U11(tt(), V1, V2) -> 753.12/208.09 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.09 , U12(tt(), V1, V2) -> 753.12/208.09 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.09 , isNatKind(n__0()) -> tt() 753.12/208.09 , isNatKind(n__plus(V1, V2)) -> 753.12/208.09 U31(isNatKind(activate(V1)), activate(V2)) 753.12/208.09 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.12/208.09 , activate(X) -> X 753.12/208.09 , activate(n__0()) -> 0() 753.12/208.09 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.12/208.09 , activate(n__s(X)) -> s(activate(X)) 753.12/208.09 , U13(tt(), V1, V2) -> 753.12/208.09 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.09 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.12/208.09 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.12/208.09 , isNat(n__0()) -> tt() 753.12/208.09 , isNat(n__plus(V1, V2)) -> 753.12/208.09 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.09 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.12/208.09 , U16(tt()) -> tt() 753.12/208.09 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.12/208.09 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.12/208.09 , U23(tt()) -> tt() 753.12/208.09 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.12/208.09 , U32(tt()) -> tt() 753.12/208.09 , U41(tt()) -> tt() 753.12/208.09 , s(X) -> n__s(X) 753.12/208.09 , plus(X1, X2) -> n__plus(X1, X2) 753.12/208.09 , 0() -> n__0() } 753.12/208.09 Obligation: 753.12/208.09 innermost runtime complexity 753.12/208.09 Answer: 753.12/208.09 YES(O(1),O(1)) 753.12/208.09 753.12/208.09 The following weak DPs constitute a sub-graph of the DG that is 753.12/208.09 closed under successors. The DPs are removed. 753.12/208.09 753.12/208.09 { U11^#(tt(), V1, V2) -> 753.12/208.09 U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.09 , U11^#(tt(), V1, V2) -> isNatKind^#(activate(V1)) 753.12/208.09 , U11^#(tt(), V1, V2) -> activate^#(V1) 753.12/208.09 , U11^#(tt(), V1, V2) -> activate^#(V2) 753.12/208.09 , U12^#(tt(), V1, V2) -> isNatKind^#(activate(V2)) 753.12/208.09 , U12^#(tt(), V1, V2) -> activate^#(V1) 753.12/208.09 , U12^#(tt(), V1, V2) -> activate^#(V2) 753.12/208.09 , U12^#(tt(), V1, V2) -> 753.12/208.09 U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.09 , isNatKind^#(n__plus(V1, V2)) -> 753.12/208.09 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.12/208.09 isNatKind^#(activate(V1)), 753.12/208.09 activate^#(V1), 753.12/208.09 activate^#(V2)) 753.12/208.09 , isNatKind^#(n__s(V1)) -> 753.12/208.09 c_4(isNatKind^#(activate(V1)), activate^#(V1)) 753.12/208.09 , activate^#(n__plus(X1, X2)) -> 753.12/208.09 c_5(activate^#(X1), activate^#(X2)) 753.12/208.09 , activate^#(n__s(X)) -> c_6(activate^#(X)) 753.12/208.09 , U13^#(tt(), V1, V2) -> isNatKind^#(activate(V2)) 753.12/208.09 , U13^#(tt(), V1, V2) -> activate^#(V1) 753.12/208.09 , U13^#(tt(), V1, V2) -> activate^#(V2) 753.12/208.09 , U13^#(tt(), V1, V2) -> 753.12/208.09 U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.09 , U31^#(tt(), V2) -> c_8(isNatKind^#(activate(V2)), activate^#(V2)) 753.12/208.09 , U14^#(tt(), V1, V2) -> activate^#(V1) 753.12/208.09 , U14^#(tt(), V1, V2) -> activate^#(V2) 753.12/208.09 , U14^#(tt(), V1, V2) -> U15^#(isNat(activate(V1)), activate(V2)) 753.12/208.09 , U14^#(tt(), V1, V2) -> isNat^#(activate(V1)) 753.12/208.09 , U15^#(tt(), V2) -> activate^#(V2) 753.12/208.09 , U15^#(tt(), V2) -> isNat^#(activate(V2)) 753.12/208.09 , isNat^#(n__plus(V1, V2)) -> 753.12/208.09 U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.09 , isNat^#(n__plus(V1, V2)) -> isNatKind^#(activate(V1)) 753.12/208.09 , isNat^#(n__plus(V1, V2)) -> activate^#(V1) 753.12/208.09 , isNat^#(n__plus(V1, V2)) -> activate^#(V2) 753.12/208.09 , isNat^#(n__s(V1)) -> isNatKind^#(activate(V1)) 753.12/208.09 , isNat^#(n__s(V1)) -> activate^#(V1) 753.12/208.09 , isNat^#(n__s(V1)) -> U21^#(isNatKind(activate(V1)), activate(V1)) 753.12/208.09 , U21^#(tt(), V1) -> isNatKind^#(activate(V1)) 753.12/208.09 , U21^#(tt(), V1) -> activate^#(V1) 753.12/208.09 , U21^#(tt(), V1) -> U22^#(isNatKind(activate(V1)), activate(V1)) 753.12/208.09 , U22^#(tt(), V1) -> activate^#(V1) 753.12/208.09 , U22^#(tt(), V1) -> isNat^#(activate(V1)) 753.12/208.09 , U51^#(tt(), N) -> isNatKind^#(activate(N)) 753.12/208.09 , U51^#(tt(), N) -> activate^#(N) 753.12/208.09 , U51^#(tt(), N) -> U52^#(isNatKind(activate(N)), activate(N)) 753.12/208.09 , U52^#(tt(), N) -> activate^#(N) 753.12/208.09 , U61^#(tt(), M, N) -> isNatKind^#(activate(M)) 753.12/208.09 , U61^#(tt(), M, N) -> activate^#(M) 753.12/208.09 , U61^#(tt(), M, N) -> activate^#(N) 753.12/208.09 , U61^#(tt(), M, N) -> 753.12/208.09 U62^#(isNatKind(activate(M)), activate(M), activate(N)) 753.12/208.09 , U62^#(tt(), M, N) -> activate^#(M) 753.12/208.09 , U62^#(tt(), M, N) -> activate^#(N) 753.12/208.09 , U62^#(tt(), M, N) -> isNat^#(activate(N)) 753.12/208.09 , U62^#(tt(), M, N) -> 753.12/208.09 U63^#(isNat(activate(N)), activate(M), activate(N)) 753.12/208.09 , U63^#(tt(), M, N) -> isNatKind^#(activate(N)) 753.12/208.09 , U63^#(tt(), M, N) -> activate^#(M) 753.12/208.09 , U63^#(tt(), M, N) -> activate^#(N) 753.12/208.09 , U63^#(tt(), M, N) -> 753.12/208.09 U64^#(isNatKind(activate(N)), activate(M), activate(N)) 753.12/208.09 , U64^#(tt(), M, N) -> activate^#(M) 753.12/208.09 , U64^#(tt(), M, N) -> activate^#(N) } 753.12/208.09 753.12/208.09 We are left with following problem, upon which TcT provides the 753.12/208.09 certificate YES(O(1),O(1)). 753.12/208.09 753.12/208.09 Weak Trs: 753.12/208.09 { U11(tt(), V1, V2) -> 753.12/208.09 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.09 , U12(tt(), V1, V2) -> 753.12/208.09 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.09 , isNatKind(n__0()) -> tt() 753.12/208.09 , isNatKind(n__plus(V1, V2)) -> 753.12/208.09 U31(isNatKind(activate(V1)), activate(V2)) 753.12/208.09 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.12/208.09 , activate(X) -> X 753.12/208.09 , activate(n__0()) -> 0() 753.12/208.09 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.12/208.09 , activate(n__s(X)) -> s(activate(X)) 753.12/208.09 , U13(tt(), V1, V2) -> 753.12/208.09 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.09 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.12/208.09 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.12/208.09 , isNat(n__0()) -> tt() 753.12/208.09 , isNat(n__plus(V1, V2)) -> 753.12/208.09 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.09 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.12/208.09 , U16(tt()) -> tt() 753.12/208.09 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.12/208.09 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.12/208.09 , U23(tt()) -> tt() 753.12/208.09 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.12/208.09 , U32(tt()) -> tt() 753.12/208.09 , U41(tt()) -> tt() 753.12/208.09 , s(X) -> n__s(X) 753.12/208.09 , plus(X1, X2) -> n__plus(X1, X2) 753.12/208.09 , 0() -> n__0() } 753.12/208.09 Obligation: 753.12/208.09 innermost runtime complexity 753.12/208.09 Answer: 753.12/208.09 YES(O(1),O(1)) 753.12/208.09 753.12/208.09 No rule is usable, rules are removed from the input problem. 753.12/208.09 753.12/208.09 We are left with following problem, upon which TcT provides the 753.12/208.09 certificate YES(O(1),O(1)). 753.12/208.09 753.12/208.09 Rules: Empty 753.12/208.09 Obligation: 753.12/208.09 innermost runtime complexity 753.12/208.09 Answer: 753.12/208.09 YES(O(1),O(1)) 753.12/208.09 753.12/208.09 Empty rules are trivially bounded 753.12/208.09 753.12/208.09 S) We are left with following problem, upon which TcT provides the 753.12/208.09 certificate YES(O(1),O(1)). 753.12/208.09 753.12/208.09 Strict DPs: { U52^#(tt(), N) -> c_16(activate^#(N)) } 753.12/208.09 Weak DPs: 753.12/208.09 { U11^#(tt(), V1, V2) -> 753.12/208.09 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.12/208.09 isNatKind^#(activate(V1)), 753.12/208.09 activate^#(V1), 753.12/208.09 activate^#(V1), 753.12/208.09 activate^#(V2)) 753.12/208.09 , U12^#(tt(), V1, V2) -> 753.12/208.09 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.12/208.09 isNatKind^#(activate(V2)), 753.12/208.09 activate^#(V2), 753.12/208.09 activate^#(V1), 753.12/208.09 activate^#(V2)) 753.12/208.09 , isNatKind^#(n__plus(V1, V2)) -> 753.12/208.09 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.12/208.09 isNatKind^#(activate(V1)), 753.12/208.09 activate^#(V1), 753.12/208.09 activate^#(V2)) 753.12/208.09 , isNatKind^#(n__s(V1)) -> 753.12/208.09 c_4(isNatKind^#(activate(V1)), activate^#(V1)) 753.12/208.09 , activate^#(n__plus(X1, X2)) -> 753.12/208.09 c_5(activate^#(X1), activate^#(X2)) 753.12/208.09 , activate^#(n__s(X)) -> c_6(activate^#(X)) 753.12/208.09 , U13^#(tt(), V1, V2) -> 753.12/208.09 c_7(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.12/208.09 isNatKind^#(activate(V2)), 753.12/208.09 activate^#(V2), 753.12/208.09 activate^#(V1), 753.12/208.09 activate^#(V2)) 753.12/208.09 , U31^#(tt(), V2) -> c_8(isNatKind^#(activate(V2)), activate^#(V2)) 753.12/208.09 , U14^#(tt(), V1, V2) -> 753.12/208.09 c_9(U15^#(isNat(activate(V1)), activate(V2)), 753.12/208.09 isNat^#(activate(V1)), 753.12/208.09 activate^#(V1), 753.12/208.09 activate^#(V2)) 753.12/208.09 , U15^#(tt(), V2) -> c_10(isNat^#(activate(V2)), activate^#(V2)) 753.12/208.09 , isNat^#(n__plus(V1, V2)) -> 753.12/208.09 c_11(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.12/208.09 isNatKind^#(activate(V1)), 753.12/208.09 activate^#(V1), 753.12/208.09 activate^#(V1), 753.12/208.09 activate^#(V2)) 753.12/208.09 , isNat^#(n__s(V1)) -> 753.12/208.09 c_12(U21^#(isNatKind(activate(V1)), activate(V1)), 753.12/208.09 isNatKind^#(activate(V1)), 753.12/208.09 activate^#(V1), 753.12/208.09 activate^#(V1)) 753.12/208.09 , U21^#(tt(), V1) -> 753.12/208.09 c_13(U22^#(isNatKind(activate(V1)), activate(V1)), 753.12/208.09 isNatKind^#(activate(V1)), 753.12/208.09 activate^#(V1), 753.12/208.09 activate^#(V1)) 753.12/208.09 , U22^#(tt(), V1) -> c_14(isNat^#(activate(V1)), activate^#(V1)) 753.12/208.09 , U51^#(tt(), N) -> 753.12/208.09 c_15(U52^#(isNatKind(activate(N)), activate(N)), 753.12/208.09 isNatKind^#(activate(N)), 753.12/208.09 activate^#(N), 753.12/208.09 activate^#(N)) 753.12/208.09 , U61^#(tt(), M, N) -> 753.12/208.09 c_17(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.12/208.09 isNatKind^#(activate(M)), 753.12/208.09 activate^#(M), 753.12/208.09 activate^#(M), 753.12/208.09 activate^#(N)) 753.12/208.09 , U62^#(tt(), M, N) -> 753.12/208.09 c_18(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.12/208.09 isNat^#(activate(N)), 753.12/208.09 activate^#(N), 753.12/208.09 activate^#(M), 753.12/208.09 activate^#(N)) 753.12/208.09 , U63^#(tt(), M, N) -> 753.12/208.09 c_19(U64^#(isNatKind(activate(N)), activate(M), activate(N)), 753.12/208.09 isNatKind^#(activate(N)), 753.12/208.09 activate^#(N), 753.12/208.09 activate^#(M), 753.12/208.09 activate^#(N)) 753.12/208.09 , U64^#(tt(), M, N) -> c_20(activate^#(N), activate^#(M)) } 753.12/208.09 Weak Trs: 753.12/208.09 { U11(tt(), V1, V2) -> 753.12/208.09 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.09 , U12(tt(), V1, V2) -> 753.12/208.09 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.09 , isNatKind(n__0()) -> tt() 753.12/208.09 , isNatKind(n__plus(V1, V2)) -> 753.12/208.09 U31(isNatKind(activate(V1)), activate(V2)) 753.12/208.09 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.12/208.09 , activate(X) -> X 753.12/208.09 , activate(n__0()) -> 0() 753.12/208.09 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.12/208.09 , activate(n__s(X)) -> s(activate(X)) 753.12/208.09 , U13(tt(), V1, V2) -> 753.12/208.09 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.09 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.12/208.09 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.12/208.09 , isNat(n__0()) -> tt() 753.12/208.09 , isNat(n__plus(V1, V2)) -> 753.12/208.09 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.09 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.12/208.09 , U16(tt()) -> tt() 753.12/208.09 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.12/208.09 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.12/208.09 , U23(tt()) -> tt() 753.12/208.09 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.12/208.09 , U32(tt()) -> tt() 753.12/208.09 , U41(tt()) -> tt() 753.12/208.09 , s(X) -> n__s(X) 753.12/208.09 , plus(X1, X2) -> n__plus(X1, X2) 753.12/208.09 , 0() -> n__0() } 753.12/208.09 Obligation: 753.12/208.09 innermost runtime complexity 753.12/208.09 Answer: 753.12/208.09 YES(O(1),O(1)) 753.12/208.09 753.12/208.09 The following weak DPs constitute a sub-graph of the DG that is 753.12/208.09 closed under successors. The DPs are removed. 753.12/208.09 753.12/208.09 { U11^#(tt(), V1, V2) -> 753.12/208.09 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.12/208.09 isNatKind^#(activate(V1)), 753.12/208.09 activate^#(V1), 753.12/208.09 activate^#(V1), 753.12/208.09 activate^#(V2)) 753.12/208.09 , U12^#(tt(), V1, V2) -> 753.12/208.09 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.12/208.09 isNatKind^#(activate(V2)), 753.12/208.09 activate^#(V2), 753.12/208.09 activate^#(V1), 753.12/208.09 activate^#(V2)) 753.12/208.09 , isNatKind^#(n__plus(V1, V2)) -> 753.12/208.09 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.12/208.09 isNatKind^#(activate(V1)), 753.12/208.09 activate^#(V1), 753.12/208.09 activate^#(V2)) 753.12/208.09 , isNatKind^#(n__s(V1)) -> 753.12/208.09 c_4(isNatKind^#(activate(V1)), activate^#(V1)) 753.12/208.09 , activate^#(n__plus(X1, X2)) -> 753.12/208.09 c_5(activate^#(X1), activate^#(X2)) 753.12/208.09 , activate^#(n__s(X)) -> c_6(activate^#(X)) 753.12/208.09 , U13^#(tt(), V1, V2) -> 753.12/208.09 c_7(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.12/208.09 isNatKind^#(activate(V2)), 753.12/208.09 activate^#(V2), 753.12/208.09 activate^#(V1), 753.12/208.09 activate^#(V2)) 753.12/208.09 , U31^#(tt(), V2) -> c_8(isNatKind^#(activate(V2)), activate^#(V2)) 753.12/208.09 , U14^#(tt(), V1, V2) -> 753.12/208.09 c_9(U15^#(isNat(activate(V1)), activate(V2)), 753.12/208.09 isNat^#(activate(V1)), 753.12/208.09 activate^#(V1), 753.12/208.09 activate^#(V2)) 753.12/208.09 , U15^#(tt(), V2) -> c_10(isNat^#(activate(V2)), activate^#(V2)) 753.12/208.09 , isNat^#(n__plus(V1, V2)) -> 753.12/208.09 c_11(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.12/208.09 isNatKind^#(activate(V1)), 753.12/208.09 activate^#(V1), 753.12/208.09 activate^#(V1), 753.12/208.09 activate^#(V2)) 753.12/208.09 , isNat^#(n__s(V1)) -> 753.12/208.09 c_12(U21^#(isNatKind(activate(V1)), activate(V1)), 753.12/208.09 isNatKind^#(activate(V1)), 753.12/208.09 activate^#(V1), 753.12/208.09 activate^#(V1)) 753.12/208.09 , U21^#(tt(), V1) -> 753.12/208.09 c_13(U22^#(isNatKind(activate(V1)), activate(V1)), 753.12/208.09 isNatKind^#(activate(V1)), 753.12/208.09 activate^#(V1), 753.12/208.09 activate^#(V1)) 753.12/208.09 , U22^#(tt(), V1) -> c_14(isNat^#(activate(V1)), activate^#(V1)) 753.12/208.09 , U61^#(tt(), M, N) -> 753.12/208.09 c_17(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.12/208.10 isNatKind^#(activate(M)), 753.12/208.10 activate^#(M), 753.12/208.10 activate^#(M), 753.12/208.10 activate^#(N)) 753.12/208.10 , U62^#(tt(), M, N) -> 753.12/208.10 c_18(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.12/208.10 isNat^#(activate(N)), 753.12/208.10 activate^#(N), 753.12/208.10 activate^#(M), 753.12/208.10 activate^#(N)) 753.12/208.10 , U63^#(tt(), M, N) -> 753.12/208.10 c_19(U64^#(isNatKind(activate(N)), activate(M), activate(N)), 753.12/208.10 isNatKind^#(activate(N)), 753.12/208.10 activate^#(N), 753.12/208.10 activate^#(M), 753.12/208.10 activate^#(N)) 753.12/208.10 , U64^#(tt(), M, N) -> c_20(activate^#(N), activate^#(M)) } 753.12/208.10 753.12/208.10 We are left with following problem, upon which TcT provides the 753.12/208.10 certificate YES(O(1),O(1)). 753.12/208.10 753.12/208.10 Strict DPs: { U52^#(tt(), N) -> c_16(activate^#(N)) } 753.12/208.10 Weak DPs: 753.12/208.10 { U51^#(tt(), N) -> 753.12/208.10 c_15(U52^#(isNatKind(activate(N)), activate(N)), 753.12/208.10 isNatKind^#(activate(N)), 753.12/208.10 activate^#(N), 753.12/208.10 activate^#(N)) } 753.12/208.10 Weak Trs: 753.12/208.10 { U11(tt(), V1, V2) -> 753.12/208.10 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.10 , U12(tt(), V1, V2) -> 753.12/208.10 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.10 , isNatKind(n__0()) -> tt() 753.12/208.10 , isNatKind(n__plus(V1, V2)) -> 753.12/208.10 U31(isNatKind(activate(V1)), activate(V2)) 753.12/208.10 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.12/208.10 , activate(X) -> X 753.12/208.10 , activate(n__0()) -> 0() 753.12/208.10 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.12/208.10 , activate(n__s(X)) -> s(activate(X)) 753.12/208.10 , U13(tt(), V1, V2) -> 753.12/208.10 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.10 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.12/208.10 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.12/208.10 , isNat(n__0()) -> tt() 753.12/208.10 , isNat(n__plus(V1, V2)) -> 753.12/208.10 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.10 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.12/208.10 , U16(tt()) -> tt() 753.12/208.10 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.12/208.10 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.12/208.10 , U23(tt()) -> tt() 753.12/208.10 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.12/208.10 , U32(tt()) -> tt() 753.12/208.10 , U41(tt()) -> tt() 753.12/208.10 , s(X) -> n__s(X) 753.12/208.10 , plus(X1, X2) -> n__plus(X1, X2) 753.12/208.10 , 0() -> n__0() } 753.12/208.10 Obligation: 753.12/208.10 innermost runtime complexity 753.12/208.10 Answer: 753.12/208.10 YES(O(1),O(1)) 753.12/208.10 753.12/208.10 Due to missing edges in the dependency-graph, the right-hand sides 753.12/208.10 of following rules could be simplified: 753.12/208.10 753.12/208.10 { U51^#(tt(), N) -> 753.12/208.10 c_15(U52^#(isNatKind(activate(N)), activate(N)), 753.12/208.10 isNatKind^#(activate(N)), 753.12/208.10 activate^#(N), 753.12/208.10 activate^#(N)) 753.12/208.10 , U52^#(tt(), N) -> c_16(activate^#(N)) } 753.12/208.10 753.12/208.10 We are left with following problem, upon which TcT provides the 753.12/208.10 certificate YES(O(1),O(1)). 753.12/208.10 753.12/208.10 Strict DPs: { U52^#(tt(), N) -> c_1() } 753.12/208.10 Weak DPs: 753.12/208.10 { U51^#(tt(), N) -> 753.12/208.10 c_2(U52^#(isNatKind(activate(N)), activate(N))) } 753.12/208.10 Weak Trs: 753.12/208.10 { U11(tt(), V1, V2) -> 753.12/208.10 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.10 , U12(tt(), V1, V2) -> 753.12/208.10 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.10 , isNatKind(n__0()) -> tt() 753.12/208.10 , isNatKind(n__plus(V1, V2)) -> 753.12/208.10 U31(isNatKind(activate(V1)), activate(V2)) 753.12/208.10 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.12/208.10 , activate(X) -> X 753.12/208.10 , activate(n__0()) -> 0() 753.12/208.10 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.12/208.10 , activate(n__s(X)) -> s(activate(X)) 753.12/208.10 , U13(tt(), V1, V2) -> 753.12/208.10 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.12/208.10 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.12/208.10 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.12/208.10 , isNat(n__0()) -> tt() 753.12/208.10 , isNat(n__plus(V1, V2)) -> 753.12/208.10 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.12/208.10 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.12/208.10 , U16(tt()) -> tt() 753.12/208.10 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.12/208.10 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.12/208.10 , U23(tt()) -> tt() 753.12/208.10 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.12/208.10 , U32(tt()) -> tt() 753.12/208.10 , U41(tt()) -> tt() 753.12/208.10 , s(X) -> n__s(X) 753.12/208.10 , plus(X1, X2) -> n__plus(X1, X2) 753.12/208.10 , 0() -> n__0() } 753.12/208.10 Obligation: 753.12/208.10 innermost runtime complexity 753.12/208.10 Answer: 753.12/208.10 YES(O(1),O(1)) 753.12/208.10 753.12/208.10 We replace rewrite rules by usable rules: 753.12/208.10 753.12/208.10 Weak Usable Rules: 753.12/208.10 { isNatKind(n__0()) -> tt() 753.12/208.10 , isNatKind(n__plus(V1, V2)) -> 753.12/208.10 U31(isNatKind(activate(V1)), activate(V2)) 753.12/208.10 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.12/208.10 , activate(X) -> X 753.12/208.10 , activate(n__0()) -> 0() 753.12/208.10 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.12/208.10 , activate(n__s(X)) -> s(activate(X)) 753.12/208.10 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.12/208.10 , U32(tt()) -> tt() 753.12/208.10 , U41(tt()) -> tt() 753.12/208.10 , s(X) -> n__s(X) 753.12/208.10 , plus(X1, X2) -> n__plus(X1, X2) 753.12/208.10 , 0() -> n__0() } 753.12/208.10 753.12/208.10 We are left with following problem, upon which TcT provides the 753.12/208.10 certificate YES(O(1),O(1)). 753.12/208.10 753.12/208.10 Strict DPs: { U52^#(tt(), N) -> c_1() } 753.12/208.10 Weak DPs: 753.12/208.10 { U51^#(tt(), N) -> 753.12/208.10 c_2(U52^#(isNatKind(activate(N)), activate(N))) } 753.12/208.10 Weak Trs: 753.12/208.10 { isNatKind(n__0()) -> tt() 753.12/208.10 , isNatKind(n__plus(V1, V2)) -> 753.12/208.10 U31(isNatKind(activate(V1)), activate(V2)) 753.12/208.10 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.12/208.10 , activate(X) -> X 753.12/208.10 , activate(n__0()) -> 0() 753.12/208.10 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.12/208.10 , activate(n__s(X)) -> s(activate(X)) 753.12/208.10 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.37/208.10 , U32(tt()) -> tt() 753.37/208.10 , U41(tt()) -> tt() 753.37/208.10 , s(X) -> n__s(X) 753.37/208.10 , plus(X1, X2) -> n__plus(X1, X2) 753.37/208.10 , 0() -> n__0() } 753.37/208.10 Obligation: 753.37/208.10 innermost runtime complexity 753.37/208.10 Answer: 753.37/208.10 YES(O(1),O(1)) 753.37/208.10 753.37/208.10 The dependency graph contains no loops, we remove all dependency 753.37/208.10 pairs. 753.37/208.10 753.37/208.10 We are left with following problem, upon which TcT provides the 753.37/208.10 certificate YES(O(1),O(1)). 753.37/208.10 753.37/208.10 Weak Trs: 753.37/208.10 { isNatKind(n__0()) -> tt() 753.37/208.10 , isNatKind(n__plus(V1, V2)) -> 753.37/208.10 U31(isNatKind(activate(V1)), activate(V2)) 753.37/208.10 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.37/208.10 , activate(X) -> X 753.37/208.10 , activate(n__0()) -> 0() 753.37/208.10 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.37/208.10 , activate(n__s(X)) -> s(activate(X)) 753.37/208.10 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.37/208.10 , U32(tt()) -> tt() 753.37/208.10 , U41(tt()) -> tt() 753.37/208.10 , s(X) -> n__s(X) 753.37/208.10 , plus(X1, X2) -> n__plus(X1, X2) 753.37/208.10 , 0() -> n__0() } 753.37/208.10 Obligation: 753.37/208.10 innermost runtime complexity 753.37/208.10 Answer: 753.37/208.10 YES(O(1),O(1)) 753.37/208.10 753.37/208.10 No rule is usable, rules are removed from the input problem. 753.37/208.10 753.37/208.10 We are left with following problem, upon which TcT provides the 753.37/208.10 certificate YES(O(1),O(1)). 753.37/208.10 753.37/208.10 Rules: Empty 753.37/208.10 Obligation: 753.37/208.10 innermost runtime complexity 753.37/208.10 Answer: 753.37/208.10 YES(O(1),O(1)) 753.37/208.10 753.37/208.10 Empty rules are trivially bounded 753.37/208.10 753.37/208.10 753.37/208.10 S) We are left with following problem, upon which TcT provides the 753.37/208.10 certificate YES(O(1),O(n^2)). 753.37/208.10 753.37/208.10 Strict DPs: 753.37/208.10 { U11^#(tt(), V1, V2) -> 753.37/208.10 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.10 isNatKind^#(activate(V1)), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V2)) 753.37/208.10 , U12^#(tt(), V1, V2) -> 753.37/208.10 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.10 isNatKind^#(activate(V2)), 753.37/208.10 activate^#(V2), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V2)) 753.37/208.10 , isNatKind^#(n__plus(V1, V2)) -> 753.37/208.10 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.37/208.10 isNatKind^#(activate(V1)), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V2)) 753.37/208.10 , isNatKind^#(n__s(V1)) -> 753.37/208.10 c_4(isNatKind^#(activate(V1)), activate^#(V1)) 753.37/208.10 , U13^#(tt(), V1, V2) -> 753.37/208.10 c_7(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.10 isNatKind^#(activate(V2)), 753.37/208.10 activate^#(V2), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V2)) 753.37/208.10 , U31^#(tt(), V2) -> c_8(isNatKind^#(activate(V2)), activate^#(V2)) 753.37/208.10 , U14^#(tt(), V1, V2) -> 753.37/208.10 c_9(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.10 isNat^#(activate(V1)), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V2)) 753.37/208.10 , U15^#(tt(), V2) -> c_10(isNat^#(activate(V2)), activate^#(V2)) 753.37/208.10 , isNat^#(n__plus(V1, V2)) -> 753.37/208.10 c_11(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.10 isNatKind^#(activate(V1)), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V2)) 753.37/208.10 , isNat^#(n__s(V1)) -> 753.37/208.10 c_12(U21^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.10 isNatKind^#(activate(V1)), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V1)) 753.37/208.10 , U21^#(tt(), V1) -> 753.37/208.10 c_13(U22^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.10 isNatKind^#(activate(V1)), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V1)) 753.37/208.10 , U22^#(tt(), V1) -> c_14(isNat^#(activate(V1)), activate^#(V1)) 753.37/208.10 , U61^#(tt(), M, N) -> 753.37/208.10 c_17(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.37/208.10 isNatKind^#(activate(M)), 753.37/208.10 activate^#(M), 753.37/208.10 activate^#(M), 753.37/208.10 activate^#(N)) 753.37/208.10 , U62^#(tt(), M, N) -> 753.37/208.10 c_18(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.10 isNat^#(activate(N)), 753.37/208.10 activate^#(N), 753.37/208.10 activate^#(M), 753.37/208.10 activate^#(N)) 753.37/208.10 , U63^#(tt(), M, N) -> 753.37/208.10 c_19(U64^#(isNatKind(activate(N)), activate(M), activate(N)), 753.37/208.10 isNatKind^#(activate(N)), 753.37/208.10 activate^#(N), 753.37/208.10 activate^#(M), 753.37/208.10 activate^#(N)) 753.37/208.10 , U64^#(tt(), M, N) -> c_20(activate^#(N), activate^#(M)) } 753.37/208.10 Weak DPs: 753.37/208.10 { activate^#(n__plus(X1, X2)) -> 753.37/208.10 c_5(activate^#(X1), activate^#(X2)) 753.37/208.10 , activate^#(n__s(X)) -> c_6(activate^#(X)) 753.37/208.10 , U51^#(tt(), N) -> 753.37/208.10 c_15(U52^#(isNatKind(activate(N)), activate(N)), 753.37/208.10 isNatKind^#(activate(N)), 753.37/208.10 activate^#(N), 753.37/208.10 activate^#(N)) 753.37/208.10 , U52^#(tt(), N) -> c_16(activate^#(N)) } 753.37/208.10 Weak Trs: 753.37/208.10 { U11(tt(), V1, V2) -> 753.37/208.10 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.10 , U12(tt(), V1, V2) -> 753.37/208.10 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.10 , isNatKind(n__0()) -> tt() 753.37/208.10 , isNatKind(n__plus(V1, V2)) -> 753.37/208.10 U31(isNatKind(activate(V1)), activate(V2)) 753.37/208.10 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.37/208.10 , activate(X) -> X 753.37/208.10 , activate(n__0()) -> 0() 753.37/208.10 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.37/208.10 , activate(n__s(X)) -> s(activate(X)) 753.37/208.10 , U13(tt(), V1, V2) -> 753.37/208.10 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.10 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.37/208.10 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.37/208.10 , isNat(n__0()) -> tt() 753.37/208.10 , isNat(n__plus(V1, V2)) -> 753.37/208.10 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.10 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.37/208.10 , U16(tt()) -> tt() 753.37/208.10 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.37/208.10 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.37/208.10 , U23(tt()) -> tt() 753.37/208.10 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.37/208.10 , U32(tt()) -> tt() 753.37/208.10 , U41(tt()) -> tt() 753.37/208.10 , s(X) -> n__s(X) 753.37/208.10 , plus(X1, X2) -> n__plus(X1, X2) 753.37/208.10 , 0() -> n__0() } 753.37/208.10 Obligation: 753.37/208.10 innermost runtime complexity 753.37/208.10 Answer: 753.37/208.10 YES(O(1),O(n^2)) 753.37/208.10 753.37/208.10 We estimate the number of application of {16} by applications of 753.37/208.10 Pre({16}) = {15}. Here rules are labeled as follows: 753.37/208.10 753.37/208.10 DPs: 753.37/208.10 { 1: U11^#(tt(), V1, V2) -> 753.37/208.10 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.10 isNatKind^#(activate(V1)), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V2)) 753.37/208.10 , 2: U12^#(tt(), V1, V2) -> 753.37/208.10 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.10 isNatKind^#(activate(V2)), 753.37/208.10 activate^#(V2), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V2)) 753.37/208.10 , 3: isNatKind^#(n__plus(V1, V2)) -> 753.37/208.10 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.37/208.10 isNatKind^#(activate(V1)), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V2)) 753.37/208.10 , 4: isNatKind^#(n__s(V1)) -> 753.37/208.10 c_4(isNatKind^#(activate(V1)), activate^#(V1)) 753.37/208.10 , 5: U13^#(tt(), V1, V2) -> 753.37/208.10 c_7(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.10 isNatKind^#(activate(V2)), 753.37/208.10 activate^#(V2), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V2)) 753.37/208.10 , 6: U31^#(tt(), V2) -> 753.37/208.10 c_8(isNatKind^#(activate(V2)), activate^#(V2)) 753.37/208.10 , 7: U14^#(tt(), V1, V2) -> 753.37/208.10 c_9(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.10 isNat^#(activate(V1)), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V2)) 753.37/208.10 , 8: U15^#(tt(), V2) -> c_10(isNat^#(activate(V2)), activate^#(V2)) 753.37/208.10 , 9: isNat^#(n__plus(V1, V2)) -> 753.37/208.10 c_11(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.10 isNatKind^#(activate(V1)), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V2)) 753.37/208.10 , 10: isNat^#(n__s(V1)) -> 753.37/208.10 c_12(U21^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.10 isNatKind^#(activate(V1)), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V1)) 753.37/208.10 , 11: U21^#(tt(), V1) -> 753.37/208.10 c_13(U22^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.10 isNatKind^#(activate(V1)), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V1)) 753.37/208.10 , 12: U22^#(tt(), V1) -> 753.37/208.10 c_14(isNat^#(activate(V1)), activate^#(V1)) 753.37/208.10 , 13: U61^#(tt(), M, N) -> 753.37/208.10 c_17(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.37/208.10 isNatKind^#(activate(M)), 753.37/208.10 activate^#(M), 753.37/208.10 activate^#(M), 753.37/208.10 activate^#(N)) 753.37/208.10 , 14: U62^#(tt(), M, N) -> 753.37/208.10 c_18(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.10 isNat^#(activate(N)), 753.37/208.10 activate^#(N), 753.37/208.10 activate^#(M), 753.37/208.10 activate^#(N)) 753.37/208.10 , 15: U63^#(tt(), M, N) -> 753.37/208.10 c_19(U64^#(isNatKind(activate(N)), activate(M), activate(N)), 753.37/208.10 isNatKind^#(activate(N)), 753.37/208.10 activate^#(N), 753.37/208.10 activate^#(M), 753.37/208.10 activate^#(N)) 753.37/208.10 , 16: U64^#(tt(), M, N) -> c_20(activate^#(N), activate^#(M)) 753.37/208.10 , 17: activate^#(n__plus(X1, X2)) -> 753.37/208.10 c_5(activate^#(X1), activate^#(X2)) 753.37/208.10 , 18: activate^#(n__s(X)) -> c_6(activate^#(X)) 753.37/208.10 , 19: U51^#(tt(), N) -> 753.37/208.10 c_15(U52^#(isNatKind(activate(N)), activate(N)), 753.37/208.10 isNatKind^#(activate(N)), 753.37/208.10 activate^#(N), 753.37/208.10 activate^#(N)) 753.37/208.10 , 20: U52^#(tt(), N) -> c_16(activate^#(N)) } 753.37/208.10 753.37/208.10 We are left with following problem, upon which TcT provides the 753.37/208.10 certificate YES(O(1),O(n^2)). 753.37/208.10 753.37/208.10 Strict DPs: 753.37/208.10 { U11^#(tt(), V1, V2) -> 753.37/208.10 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.10 isNatKind^#(activate(V1)), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V2)) 753.37/208.10 , U12^#(tt(), V1, V2) -> 753.37/208.10 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.10 isNatKind^#(activate(V2)), 753.37/208.10 activate^#(V2), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V2)) 753.37/208.10 , isNatKind^#(n__plus(V1, V2)) -> 753.37/208.10 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.37/208.10 isNatKind^#(activate(V1)), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V2)) 753.37/208.10 , isNatKind^#(n__s(V1)) -> 753.37/208.10 c_4(isNatKind^#(activate(V1)), activate^#(V1)) 753.37/208.10 , U13^#(tt(), V1, V2) -> 753.37/208.10 c_7(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.10 isNatKind^#(activate(V2)), 753.37/208.10 activate^#(V2), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V2)) 753.37/208.10 , U31^#(tt(), V2) -> c_8(isNatKind^#(activate(V2)), activate^#(V2)) 753.37/208.10 , U14^#(tt(), V1, V2) -> 753.37/208.10 c_9(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.10 isNat^#(activate(V1)), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V2)) 753.37/208.10 , U15^#(tt(), V2) -> c_10(isNat^#(activate(V2)), activate^#(V2)) 753.37/208.10 , isNat^#(n__plus(V1, V2)) -> 753.37/208.10 c_11(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.10 isNatKind^#(activate(V1)), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V2)) 753.37/208.10 , isNat^#(n__s(V1)) -> 753.37/208.10 c_12(U21^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.10 isNatKind^#(activate(V1)), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V1)) 753.37/208.10 , U21^#(tt(), V1) -> 753.37/208.10 c_13(U22^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.10 isNatKind^#(activate(V1)), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V1)) 753.37/208.10 , U22^#(tt(), V1) -> c_14(isNat^#(activate(V1)), activate^#(V1)) 753.37/208.10 , U61^#(tt(), M, N) -> 753.37/208.10 c_17(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.37/208.10 isNatKind^#(activate(M)), 753.37/208.10 activate^#(M), 753.37/208.10 activate^#(M), 753.37/208.10 activate^#(N)) 753.37/208.10 , U62^#(tt(), M, N) -> 753.37/208.10 c_18(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.10 isNat^#(activate(N)), 753.37/208.10 activate^#(N), 753.37/208.10 activate^#(M), 753.37/208.10 activate^#(N)) 753.37/208.10 , U63^#(tt(), M, N) -> 753.37/208.10 c_19(U64^#(isNatKind(activate(N)), activate(M), activate(N)), 753.37/208.10 isNatKind^#(activate(N)), 753.37/208.10 activate^#(N), 753.37/208.10 activate^#(M), 753.37/208.10 activate^#(N)) } 753.37/208.10 Weak DPs: 753.37/208.10 { activate^#(n__plus(X1, X2)) -> 753.37/208.10 c_5(activate^#(X1), activate^#(X2)) 753.37/208.10 , activate^#(n__s(X)) -> c_6(activate^#(X)) 753.37/208.10 , U51^#(tt(), N) -> 753.37/208.10 c_15(U52^#(isNatKind(activate(N)), activate(N)), 753.37/208.10 isNatKind^#(activate(N)), 753.37/208.10 activate^#(N), 753.37/208.10 activate^#(N)) 753.37/208.10 , U52^#(tt(), N) -> c_16(activate^#(N)) 753.37/208.10 , U64^#(tt(), M, N) -> c_20(activate^#(N), activate^#(M)) } 753.37/208.10 Weak Trs: 753.37/208.10 { U11(tt(), V1, V2) -> 753.37/208.10 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.10 , U12(tt(), V1, V2) -> 753.37/208.10 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.10 , isNatKind(n__0()) -> tt() 753.37/208.10 , isNatKind(n__plus(V1, V2)) -> 753.37/208.10 U31(isNatKind(activate(V1)), activate(V2)) 753.37/208.10 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.37/208.10 , activate(X) -> X 753.37/208.10 , activate(n__0()) -> 0() 753.37/208.10 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.37/208.10 , activate(n__s(X)) -> s(activate(X)) 753.37/208.10 , U13(tt(), V1, V2) -> 753.37/208.10 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.10 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.37/208.10 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.37/208.10 , isNat(n__0()) -> tt() 753.37/208.10 , isNat(n__plus(V1, V2)) -> 753.37/208.10 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.10 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.37/208.10 , U16(tt()) -> tt() 753.37/208.10 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.37/208.10 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.37/208.10 , U23(tt()) -> tt() 753.37/208.10 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.37/208.10 , U32(tt()) -> tt() 753.37/208.10 , U41(tt()) -> tt() 753.37/208.10 , s(X) -> n__s(X) 753.37/208.10 , plus(X1, X2) -> n__plus(X1, X2) 753.37/208.10 , 0() -> n__0() } 753.37/208.10 Obligation: 753.37/208.10 innermost runtime complexity 753.37/208.10 Answer: 753.37/208.10 YES(O(1),O(n^2)) 753.37/208.10 753.37/208.10 The following weak DPs constitute a sub-graph of the DG that is 753.37/208.10 closed under successors. The DPs are removed. 753.37/208.10 753.37/208.10 { activate^#(n__plus(X1, X2)) -> 753.37/208.10 c_5(activate^#(X1), activate^#(X2)) 753.37/208.10 , activate^#(n__s(X)) -> c_6(activate^#(X)) 753.37/208.10 , U52^#(tt(), N) -> c_16(activate^#(N)) 753.37/208.10 , U64^#(tt(), M, N) -> c_20(activate^#(N), activate^#(M)) } 753.37/208.10 753.37/208.10 We are left with following problem, upon which TcT provides the 753.37/208.10 certificate YES(O(1),O(n^2)). 753.37/208.10 753.37/208.10 Strict DPs: 753.37/208.10 { U11^#(tt(), V1, V2) -> 753.37/208.10 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.10 isNatKind^#(activate(V1)), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V2)) 753.37/208.10 , U12^#(tt(), V1, V2) -> 753.37/208.10 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.10 isNatKind^#(activate(V2)), 753.37/208.10 activate^#(V2), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V2)) 753.37/208.10 , isNatKind^#(n__plus(V1, V2)) -> 753.37/208.10 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.37/208.10 isNatKind^#(activate(V1)), 753.37/208.10 activate^#(V1), 753.37/208.10 activate^#(V2)) 753.37/208.10 , isNatKind^#(n__s(V1)) -> 753.37/208.10 c_4(isNatKind^#(activate(V1)), activate^#(V1)) 753.37/208.10 , U13^#(tt(), V1, V2) -> 753.37/208.10 c_7(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.11 isNatKind^#(activate(V2)), 753.37/208.11 activate^#(V2), 753.37/208.11 activate^#(V1), 753.37/208.11 activate^#(V2)) 753.37/208.11 , U31^#(tt(), V2) -> c_8(isNatKind^#(activate(V2)), activate^#(V2)) 753.37/208.11 , U14^#(tt(), V1, V2) -> 753.37/208.11 c_9(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.11 isNat^#(activate(V1)), 753.37/208.11 activate^#(V1), 753.37/208.11 activate^#(V2)) 753.37/208.11 , U15^#(tt(), V2) -> c_10(isNat^#(activate(V2)), activate^#(V2)) 753.37/208.11 , isNat^#(n__plus(V1, V2)) -> 753.37/208.11 c_11(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.11 isNatKind^#(activate(V1)), 753.37/208.11 activate^#(V1), 753.37/208.11 activate^#(V1), 753.37/208.11 activate^#(V2)) 753.37/208.11 , isNat^#(n__s(V1)) -> 753.37/208.11 c_12(U21^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.11 isNatKind^#(activate(V1)), 753.37/208.11 activate^#(V1), 753.37/208.11 activate^#(V1)) 753.37/208.11 , U21^#(tt(), V1) -> 753.37/208.11 c_13(U22^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.11 isNatKind^#(activate(V1)), 753.37/208.11 activate^#(V1), 753.37/208.11 activate^#(V1)) 753.37/208.11 , U22^#(tt(), V1) -> c_14(isNat^#(activate(V1)), activate^#(V1)) 753.37/208.11 , U61^#(tt(), M, N) -> 753.37/208.11 c_17(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.37/208.11 isNatKind^#(activate(M)), 753.37/208.11 activate^#(M), 753.37/208.11 activate^#(M), 753.37/208.11 activate^#(N)) 753.37/208.11 , U62^#(tt(), M, N) -> 753.37/208.11 c_18(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.11 isNat^#(activate(N)), 753.37/208.11 activate^#(N), 753.37/208.11 activate^#(M), 753.37/208.11 activate^#(N)) 753.37/208.11 , U63^#(tt(), M, N) -> 753.37/208.11 c_19(U64^#(isNatKind(activate(N)), activate(M), activate(N)), 753.37/208.11 isNatKind^#(activate(N)), 753.37/208.11 activate^#(N), 753.37/208.11 activate^#(M), 753.37/208.11 activate^#(N)) } 753.37/208.11 Weak DPs: 753.37/208.11 { U51^#(tt(), N) -> 753.37/208.11 c_15(U52^#(isNatKind(activate(N)), activate(N)), 753.37/208.11 isNatKind^#(activate(N)), 753.37/208.11 activate^#(N), 753.37/208.11 activate^#(N)) } 753.37/208.11 Weak Trs: 753.37/208.11 { U11(tt(), V1, V2) -> 753.37/208.11 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.11 , U12(tt(), V1, V2) -> 753.37/208.11 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.11 , isNatKind(n__0()) -> tt() 753.37/208.11 , isNatKind(n__plus(V1, V2)) -> 753.37/208.11 U31(isNatKind(activate(V1)), activate(V2)) 753.37/208.11 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.37/208.11 , activate(X) -> X 753.37/208.11 , activate(n__0()) -> 0() 753.37/208.11 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.37/208.11 , activate(n__s(X)) -> s(activate(X)) 753.37/208.11 , U13(tt(), V1, V2) -> 753.37/208.11 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.11 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.37/208.11 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.37/208.11 , isNat(n__0()) -> tt() 753.37/208.11 , isNat(n__plus(V1, V2)) -> 753.37/208.11 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.11 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.37/208.11 , U16(tt()) -> tt() 753.37/208.11 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.37/208.11 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.37/208.11 , U23(tt()) -> tt() 753.37/208.11 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.37/208.11 , U32(tt()) -> tt() 753.37/208.11 , U41(tt()) -> tt() 753.37/208.11 , s(X) -> n__s(X) 753.37/208.11 , plus(X1, X2) -> n__plus(X1, X2) 753.37/208.11 , 0() -> n__0() } 753.37/208.11 Obligation: 753.37/208.11 innermost runtime complexity 753.37/208.11 Answer: 753.37/208.11 YES(O(1),O(n^2)) 753.37/208.11 753.37/208.11 Due to missing edges in the dependency-graph, the right-hand sides 753.37/208.11 of following rules could be simplified: 753.37/208.11 753.37/208.11 { U11^#(tt(), V1, V2) -> 753.37/208.11 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.11 isNatKind^#(activate(V1)), 753.37/208.11 activate^#(V1), 753.37/208.11 activate^#(V1), 753.37/208.11 activate^#(V2)) 753.37/208.11 , U12^#(tt(), V1, V2) -> 753.37/208.11 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.11 isNatKind^#(activate(V2)), 753.37/208.11 activate^#(V2), 753.37/208.11 activate^#(V1), 753.37/208.11 activate^#(V2)) 753.37/208.11 , isNatKind^#(n__plus(V1, V2)) -> 753.37/208.11 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.37/208.11 isNatKind^#(activate(V1)), 753.37/208.11 activate^#(V1), 753.37/208.11 activate^#(V2)) 753.37/208.11 , isNatKind^#(n__s(V1)) -> 753.37/208.11 c_4(isNatKind^#(activate(V1)), activate^#(V1)) 753.37/208.11 , U13^#(tt(), V1, V2) -> 753.37/208.11 c_7(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.11 isNatKind^#(activate(V2)), 753.37/208.11 activate^#(V2), 753.37/208.11 activate^#(V1), 753.37/208.11 activate^#(V2)) 753.37/208.11 , U31^#(tt(), V2) -> c_8(isNatKind^#(activate(V2)), activate^#(V2)) 753.37/208.11 , U14^#(tt(), V1, V2) -> 753.37/208.11 c_9(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.11 isNat^#(activate(V1)), 753.37/208.11 activate^#(V1), 753.37/208.11 activate^#(V2)) 753.37/208.11 , U15^#(tt(), V2) -> c_10(isNat^#(activate(V2)), activate^#(V2)) 753.37/208.11 , isNat^#(n__plus(V1, V2)) -> 753.37/208.11 c_11(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.11 isNatKind^#(activate(V1)), 753.37/208.11 activate^#(V1), 753.37/208.11 activate^#(V1), 753.37/208.11 activate^#(V2)) 753.37/208.11 , isNat^#(n__s(V1)) -> 753.37/208.11 c_12(U21^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.11 isNatKind^#(activate(V1)), 753.37/208.11 activate^#(V1), 753.37/208.11 activate^#(V1)) 753.37/208.11 , U21^#(tt(), V1) -> 753.37/208.11 c_13(U22^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.11 isNatKind^#(activate(V1)), 753.37/208.11 activate^#(V1), 753.37/208.11 activate^#(V1)) 753.37/208.11 , U22^#(tt(), V1) -> c_14(isNat^#(activate(V1)), activate^#(V1)) 753.37/208.11 , U51^#(tt(), N) -> 753.37/208.11 c_15(U52^#(isNatKind(activate(N)), activate(N)), 753.37/208.11 isNatKind^#(activate(N)), 753.37/208.11 activate^#(N), 753.37/208.11 activate^#(N)) 753.37/208.11 , U61^#(tt(), M, N) -> 753.37/208.11 c_17(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.37/208.11 isNatKind^#(activate(M)), 753.37/208.11 activate^#(M), 753.37/208.11 activate^#(M), 753.37/208.11 activate^#(N)) 753.37/208.11 , U62^#(tt(), M, N) -> 753.37/208.11 c_18(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.11 isNat^#(activate(N)), 753.37/208.11 activate^#(N), 753.37/208.11 activate^#(M), 753.37/208.11 activate^#(N)) 753.37/208.11 , U63^#(tt(), M, N) -> 753.37/208.11 c_19(U64^#(isNatKind(activate(N)), activate(M), activate(N)), 753.37/208.11 isNatKind^#(activate(N)), 753.37/208.11 activate^#(N), 753.37/208.11 activate^#(M), 753.37/208.11 activate^#(N)) } 753.37/208.11 753.37/208.11 We are left with following problem, upon which TcT provides the 753.37/208.11 certificate YES(O(1),O(n^2)). 753.37/208.11 753.37/208.11 Strict DPs: 753.37/208.11 { U11^#(tt(), V1, V2) -> 753.37/208.11 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.11 isNatKind^#(activate(V1))) 753.37/208.11 , U12^#(tt(), V1, V2) -> 753.37/208.11 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.11 isNatKind^#(activate(V2))) 753.37/208.11 , isNatKind^#(n__plus(V1, V2)) -> 753.37/208.11 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.37/208.11 isNatKind^#(activate(V1))) 753.37/208.11 , isNatKind^#(n__s(V1)) -> c_4(isNatKind^#(activate(V1))) 753.37/208.11 , U13^#(tt(), V1, V2) -> 753.37/208.11 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.11 isNatKind^#(activate(V2))) 753.37/208.11 , U31^#(tt(), V2) -> c_6(isNatKind^#(activate(V2))) 753.37/208.11 , U14^#(tt(), V1, V2) -> 753.37/208.11 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.11 isNat^#(activate(V1))) 753.37/208.11 , U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.37/208.11 , isNat^#(n__plus(V1, V2)) -> 753.37/208.11 c_9(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.11 isNatKind^#(activate(V1))) 753.37/208.11 , isNat^#(n__s(V1)) -> 753.37/208.11 c_10(U21^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.11 isNatKind^#(activate(V1))) 753.37/208.11 , U21^#(tt(), V1) -> 753.37/208.11 c_11(U22^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.11 isNatKind^#(activate(V1))) 753.37/208.11 , U22^#(tt(), V1) -> c_12(isNat^#(activate(V1))) 753.37/208.11 , U61^#(tt(), M, N) -> 753.37/208.11 c_13(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.37/208.11 isNatKind^#(activate(M))) 753.37/208.11 , U62^#(tt(), M, N) -> 753.37/208.11 c_14(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.11 isNat^#(activate(N))) 753.37/208.11 , U63^#(tt(), M, N) -> c_15(isNatKind^#(activate(N))) } 753.37/208.11 Weak DPs: { U51^#(tt(), N) -> c_16(isNatKind^#(activate(N))) } 753.37/208.11 Weak Trs: 753.37/208.11 { U11(tt(), V1, V2) -> 753.37/208.11 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.11 , U12(tt(), V1, V2) -> 753.37/208.11 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.11 , isNatKind(n__0()) -> tt() 753.37/208.11 , isNatKind(n__plus(V1, V2)) -> 753.37/208.11 U31(isNatKind(activate(V1)), activate(V2)) 753.37/208.11 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.37/208.11 , activate(X) -> X 753.37/208.11 , activate(n__0()) -> 0() 753.37/208.11 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.37/208.11 , activate(n__s(X)) -> s(activate(X)) 753.37/208.11 , U13(tt(), V1, V2) -> 753.37/208.11 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.11 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.37/208.11 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.37/208.11 , isNat(n__0()) -> tt() 753.37/208.11 , isNat(n__plus(V1, V2)) -> 753.37/208.11 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.11 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.37/208.11 , U16(tt()) -> tt() 753.37/208.11 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.37/208.11 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.37/208.11 , U23(tt()) -> tt() 753.37/208.11 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.37/208.11 , U32(tt()) -> tt() 753.37/208.11 , U41(tt()) -> tt() 753.37/208.11 , s(X) -> n__s(X) 753.37/208.11 , plus(X1, X2) -> n__plus(X1, X2) 753.37/208.11 , 0() -> n__0() } 753.37/208.11 Obligation: 753.37/208.11 innermost runtime complexity 753.37/208.11 Answer: 753.37/208.11 YES(O(1),O(n^2)) 753.37/208.11 753.37/208.11 We analyse the complexity of following sub-problems (R) and (S). 753.37/208.11 Problem (S) is obtained from the input problem by shifting strict 753.37/208.11 rules from (R) into the weak component: 753.37/208.11 753.37/208.11 Problem (R): 753.37/208.11 ------------ 753.37/208.11 Strict DPs: 753.37/208.11 { isNatKind^#(n__plus(V1, V2)) -> 753.37/208.11 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.37/208.11 isNatKind^#(activate(V1))) 753.37/208.11 , isNatKind^#(n__s(V1)) -> c_4(isNatKind^#(activate(V1))) 753.37/208.11 , U31^#(tt(), V2) -> c_6(isNatKind^#(activate(V2))) 753.37/208.11 , U61^#(tt(), M, N) -> 753.37/208.11 c_13(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.37/208.11 isNatKind^#(activate(M))) 753.37/208.11 , U62^#(tt(), M, N) -> 753.37/208.11 c_14(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.11 isNat^#(activate(N))) 753.37/208.11 , U63^#(tt(), M, N) -> c_15(isNatKind^#(activate(N))) } 753.37/208.11 Weak DPs: 753.37/208.11 { U11^#(tt(), V1, V2) -> 753.37/208.11 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.11 isNatKind^#(activate(V1))) 753.37/208.11 , U12^#(tt(), V1, V2) -> 753.37/208.11 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.11 isNatKind^#(activate(V2))) 753.37/208.11 , U13^#(tt(), V1, V2) -> 753.37/208.11 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.11 isNatKind^#(activate(V2))) 753.37/208.11 , U14^#(tt(), V1, V2) -> 753.37/208.11 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.11 isNat^#(activate(V1))) 753.37/208.11 , U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.37/208.11 , isNat^#(n__plus(V1, V2)) -> 753.37/208.11 c_9(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.11 isNatKind^#(activate(V1))) 753.37/208.11 , isNat^#(n__s(V1)) -> 753.37/208.11 c_10(U21^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.11 isNatKind^#(activate(V1))) 753.37/208.11 , U21^#(tt(), V1) -> 753.37/208.11 c_11(U22^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.11 isNatKind^#(activate(V1))) 753.37/208.11 , U22^#(tt(), V1) -> c_12(isNat^#(activate(V1))) 753.37/208.11 , U51^#(tt(), N) -> c_16(isNatKind^#(activate(N))) } 753.37/208.11 Weak Trs: 753.37/208.11 { U11(tt(), V1, V2) -> 753.37/208.11 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.11 , U12(tt(), V1, V2) -> 753.37/208.11 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.11 , isNatKind(n__0()) -> tt() 753.37/208.11 , isNatKind(n__plus(V1, V2)) -> 753.37/208.11 U31(isNatKind(activate(V1)), activate(V2)) 753.37/208.11 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.37/208.11 , activate(X) -> X 753.37/208.11 , activate(n__0()) -> 0() 753.37/208.11 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.37/208.11 , activate(n__s(X)) -> s(activate(X)) 753.37/208.11 , U13(tt(), V1, V2) -> 753.37/208.11 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.11 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.37/208.11 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.37/208.11 , isNat(n__0()) -> tt() 753.37/208.11 , isNat(n__plus(V1, V2)) -> 753.37/208.11 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.11 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.37/208.11 , U16(tt()) -> tt() 753.37/208.11 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.37/208.11 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.37/208.11 , U23(tt()) -> tt() 753.37/208.11 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.37/208.11 , U32(tt()) -> tt() 753.37/208.11 , U41(tt()) -> tt() 753.37/208.11 , s(X) -> n__s(X) 753.37/208.11 , plus(X1, X2) -> n__plus(X1, X2) 753.37/208.11 , 0() -> n__0() } 753.37/208.11 StartTerms: basic terms 753.37/208.11 Strategy: innermost 753.37/208.11 753.37/208.11 Problem (S): 753.37/208.11 ------------ 753.37/208.11 Strict DPs: 753.37/208.11 { U11^#(tt(), V1, V2) -> 753.37/208.11 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.11 isNatKind^#(activate(V1))) 753.37/208.11 , U12^#(tt(), V1, V2) -> 753.37/208.11 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.11 isNatKind^#(activate(V2))) 753.37/208.11 , U13^#(tt(), V1, V2) -> 753.37/208.11 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.11 isNatKind^#(activate(V2))) 753.37/208.11 , U14^#(tt(), V1, V2) -> 753.37/208.11 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.11 isNat^#(activate(V1))) 753.37/208.11 , U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.37/208.11 , isNat^#(n__plus(V1, V2)) -> 753.37/208.11 c_9(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.11 isNatKind^#(activate(V1))) 753.37/208.11 , isNat^#(n__s(V1)) -> 753.37/208.11 c_10(U21^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.11 isNatKind^#(activate(V1))) 753.37/208.11 , U21^#(tt(), V1) -> 753.37/208.11 c_11(U22^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.11 isNatKind^#(activate(V1))) 753.37/208.11 , U22^#(tt(), V1) -> c_12(isNat^#(activate(V1))) } 753.37/208.11 Weak DPs: 753.37/208.11 { isNatKind^#(n__plus(V1, V2)) -> 753.37/208.11 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.37/208.11 isNatKind^#(activate(V1))) 753.37/208.11 , isNatKind^#(n__s(V1)) -> c_4(isNatKind^#(activate(V1))) 753.37/208.11 , U31^#(tt(), V2) -> c_6(isNatKind^#(activate(V2))) 753.37/208.11 , U51^#(tt(), N) -> c_16(isNatKind^#(activate(N))) 753.37/208.11 , U61^#(tt(), M, N) -> 753.37/208.11 c_13(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.37/208.11 isNatKind^#(activate(M))) 753.37/208.11 , U62^#(tt(), M, N) -> 753.37/208.11 c_14(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.11 isNat^#(activate(N))) 753.37/208.11 , U63^#(tt(), M, N) -> c_15(isNatKind^#(activate(N))) } 753.37/208.11 Weak Trs: 753.37/208.11 { U11(tt(), V1, V2) -> 753.37/208.11 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.11 , U12(tt(), V1, V2) -> 753.37/208.11 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.11 , isNatKind(n__0()) -> tt() 753.37/208.11 , isNatKind(n__plus(V1, V2)) -> 753.37/208.11 U31(isNatKind(activate(V1)), activate(V2)) 753.37/208.11 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.37/208.11 , activate(X) -> X 753.37/208.11 , activate(n__0()) -> 0() 753.37/208.11 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.37/208.11 , activate(n__s(X)) -> s(activate(X)) 753.37/208.11 , U13(tt(), V1, V2) -> 753.37/208.11 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.11 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.37/208.11 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.37/208.11 , isNat(n__0()) -> tt() 753.37/208.11 , isNat(n__plus(V1, V2)) -> 753.37/208.11 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.11 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.37/208.11 , U16(tt()) -> tt() 753.37/208.11 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.37/208.11 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.37/208.11 , U23(tt()) -> tt() 753.37/208.11 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.37/208.11 , U32(tt()) -> tt() 753.37/208.11 , U41(tt()) -> tt() 753.37/208.11 , s(X) -> n__s(X) 753.37/208.11 , plus(X1, X2) -> n__plus(X1, X2) 753.37/208.11 , 0() -> n__0() } 753.37/208.11 StartTerms: basic terms 753.37/208.11 Strategy: innermost 753.37/208.11 753.37/208.11 Overall, the transformation results in the following sub-problem(s): 753.37/208.11 753.37/208.11 Generated new problems: 753.37/208.11 ----------------------- 753.37/208.11 R) Strict DPs: 753.37/208.11 { isNatKind^#(n__plus(V1, V2)) -> 753.37/208.11 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.37/208.11 isNatKind^#(activate(V1))) 753.37/208.11 , isNatKind^#(n__s(V1)) -> c_4(isNatKind^#(activate(V1))) 753.37/208.11 , U31^#(tt(), V2) -> c_6(isNatKind^#(activate(V2))) 753.37/208.11 , U61^#(tt(), M, N) -> 753.37/208.11 c_13(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.37/208.11 isNatKind^#(activate(M))) 753.37/208.11 , U62^#(tt(), M, N) -> 753.37/208.11 c_14(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.11 isNat^#(activate(N))) 753.37/208.11 , U63^#(tt(), M, N) -> c_15(isNatKind^#(activate(N))) } 753.37/208.11 Weak DPs: 753.37/208.11 { U11^#(tt(), V1, V2) -> 753.37/208.11 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.11 isNatKind^#(activate(V1))) 753.37/208.11 , U12^#(tt(), V1, V2) -> 753.37/208.11 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.11 isNatKind^#(activate(V2))) 753.37/208.11 , U13^#(tt(), V1, V2) -> 753.37/208.11 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.12 isNatKind^#(activate(V2))) 753.37/208.12 , U14^#(tt(), V1, V2) -> 753.37/208.12 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.12 isNat^#(activate(V1))) 753.37/208.12 , U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.37/208.12 , isNat^#(n__plus(V1, V2)) -> 753.37/208.12 c_9(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.12 isNatKind^#(activate(V1))) 753.37/208.12 , isNat^#(n__s(V1)) -> 753.37/208.12 c_10(U21^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.12 isNatKind^#(activate(V1))) 753.37/208.12 , U21^#(tt(), V1) -> 753.37/208.12 c_11(U22^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.12 isNatKind^#(activate(V1))) 753.37/208.12 , U22^#(tt(), V1) -> c_12(isNat^#(activate(V1))) 753.37/208.12 , U51^#(tt(), N) -> c_16(isNatKind^#(activate(N))) } 753.37/208.12 Weak Trs: 753.37/208.12 { U11(tt(), V1, V2) -> 753.37/208.12 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.12 , U12(tt(), V1, V2) -> 753.37/208.12 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.12 , isNatKind(n__0()) -> tt() 753.37/208.12 , isNatKind(n__plus(V1, V2)) -> 753.37/208.12 U31(isNatKind(activate(V1)), activate(V2)) 753.37/208.12 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.37/208.12 , activate(X) -> X 753.37/208.12 , activate(n__0()) -> 0() 753.37/208.12 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.37/208.12 , activate(n__s(X)) -> s(activate(X)) 753.37/208.12 , U13(tt(), V1, V2) -> 753.37/208.12 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.12 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.37/208.12 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.37/208.12 , isNat(n__0()) -> tt() 753.37/208.12 , isNat(n__plus(V1, V2)) -> 753.37/208.12 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.12 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.37/208.12 , U16(tt()) -> tt() 753.37/208.12 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.37/208.12 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.37/208.12 , U23(tt()) -> tt() 753.37/208.12 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.37/208.12 , U32(tt()) -> tt() 753.37/208.12 , U41(tt()) -> tt() 753.37/208.12 , s(X) -> n__s(X) 753.37/208.12 , plus(X1, X2) -> n__plus(X1, X2) 753.37/208.12 , 0() -> n__0() } 753.37/208.12 StartTerms: basic terms 753.37/208.12 Strategy: innermost 753.37/208.12 753.37/208.12 This problem was proven YES(O(1),O(n^2)). 753.37/208.12 753.37/208.12 S) Strict DPs: 753.37/208.12 { U11^#(tt(), V1, V2) -> 753.37/208.12 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.12 isNatKind^#(activate(V1))) 753.37/208.12 , U12^#(tt(), V1, V2) -> 753.37/208.12 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.12 isNatKind^#(activate(V2))) 753.37/208.12 , U13^#(tt(), V1, V2) -> 753.37/208.12 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.12 isNatKind^#(activate(V2))) 753.37/208.12 , U14^#(tt(), V1, V2) -> 753.37/208.12 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.12 isNat^#(activate(V1))) 753.37/208.12 , U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.37/208.12 , isNat^#(n__plus(V1, V2)) -> 753.37/208.12 c_9(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.12 isNatKind^#(activate(V1))) 753.37/208.12 , isNat^#(n__s(V1)) -> 753.37/208.12 c_10(U21^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.12 isNatKind^#(activate(V1))) 753.37/208.12 , U21^#(tt(), V1) -> 753.37/208.12 c_11(U22^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.12 isNatKind^#(activate(V1))) 753.37/208.12 , U22^#(tt(), V1) -> c_12(isNat^#(activate(V1))) } 753.37/208.12 Weak DPs: 753.37/208.12 { isNatKind^#(n__plus(V1, V2)) -> 753.37/208.12 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.37/208.12 isNatKind^#(activate(V1))) 753.37/208.12 , isNatKind^#(n__s(V1)) -> c_4(isNatKind^#(activate(V1))) 753.37/208.12 , U31^#(tt(), V2) -> c_6(isNatKind^#(activate(V2))) 753.37/208.12 , U51^#(tt(), N) -> c_16(isNatKind^#(activate(N))) 753.37/208.12 , U61^#(tt(), M, N) -> 753.37/208.12 c_13(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.37/208.12 isNatKind^#(activate(M))) 753.37/208.12 , U62^#(tt(), M, N) -> 753.37/208.12 c_14(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.12 isNat^#(activate(N))) 753.37/208.12 , U63^#(tt(), M, N) -> c_15(isNatKind^#(activate(N))) } 753.37/208.12 Weak Trs: 753.37/208.12 { U11(tt(), V1, V2) -> 753.37/208.12 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.12 , U12(tt(), V1, V2) -> 753.37/208.12 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.12 , isNatKind(n__0()) -> tt() 753.37/208.12 , isNatKind(n__plus(V1, V2)) -> 753.37/208.12 U31(isNatKind(activate(V1)), activate(V2)) 753.37/208.12 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.37/208.12 , activate(X) -> X 753.37/208.12 , activate(n__0()) -> 0() 753.37/208.12 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.37/208.12 , activate(n__s(X)) -> s(activate(X)) 753.37/208.12 , U13(tt(), V1, V2) -> 753.37/208.12 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.12 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.37/208.12 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.37/208.12 , isNat(n__0()) -> tt() 753.37/208.12 , isNat(n__plus(V1, V2)) -> 753.37/208.12 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.12 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.37/208.12 , U16(tt()) -> tt() 753.37/208.12 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.37/208.12 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.37/208.12 , U23(tt()) -> tt() 753.37/208.12 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.37/208.12 , U32(tt()) -> tt() 753.37/208.12 , U41(tt()) -> tt() 753.37/208.12 , s(X) -> n__s(X) 753.37/208.12 , plus(X1, X2) -> n__plus(X1, X2) 753.37/208.12 , 0() -> n__0() } 753.37/208.12 StartTerms: basic terms 753.37/208.12 Strategy: innermost 753.37/208.12 753.37/208.12 This problem was proven YES(O(1),O(n^1)). 753.37/208.12 753.37/208.12 753.37/208.12 Proofs for generated problems: 753.37/208.12 ------------------------------ 753.37/208.12 R) We are left with following problem, upon which TcT provides the 753.37/208.12 certificate YES(O(1),O(n^2)). 753.37/208.12 753.37/208.12 Strict DPs: 753.37/208.12 { isNatKind^#(n__plus(V1, V2)) -> 753.37/208.12 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.37/208.12 isNatKind^#(activate(V1))) 753.37/208.12 , isNatKind^#(n__s(V1)) -> c_4(isNatKind^#(activate(V1))) 753.37/208.12 , U31^#(tt(), V2) -> c_6(isNatKind^#(activate(V2))) 753.37/208.12 , U61^#(tt(), M, N) -> 753.37/208.12 c_13(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.37/208.12 isNatKind^#(activate(M))) 753.37/208.12 , U62^#(tt(), M, N) -> 753.37/208.12 c_14(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.12 isNat^#(activate(N))) 753.37/208.12 , U63^#(tt(), M, N) -> c_15(isNatKind^#(activate(N))) } 753.37/208.12 Weak DPs: 753.37/208.12 { U11^#(tt(), V1, V2) -> 753.37/208.12 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.12 isNatKind^#(activate(V1))) 753.37/208.12 , U12^#(tt(), V1, V2) -> 753.37/208.12 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.12 isNatKind^#(activate(V2))) 753.37/208.12 , U13^#(tt(), V1, V2) -> 753.37/208.12 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.12 isNatKind^#(activate(V2))) 753.37/208.12 , U14^#(tt(), V1, V2) -> 753.37/208.12 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.12 isNat^#(activate(V1))) 753.37/208.12 , U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.37/208.12 , isNat^#(n__plus(V1, V2)) -> 753.37/208.12 c_9(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.12 isNatKind^#(activate(V1))) 753.37/208.12 , isNat^#(n__s(V1)) -> 753.37/208.12 c_10(U21^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.12 isNatKind^#(activate(V1))) 753.37/208.12 , U21^#(tt(), V1) -> 753.37/208.12 c_11(U22^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.12 isNatKind^#(activate(V1))) 753.37/208.12 , U22^#(tt(), V1) -> c_12(isNat^#(activate(V1))) 753.37/208.12 , U51^#(tt(), N) -> c_16(isNatKind^#(activate(N))) } 753.37/208.12 Weak Trs: 753.37/208.12 { U11(tt(), V1, V2) -> 753.37/208.12 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.12 , U12(tt(), V1, V2) -> 753.37/208.12 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.12 , isNatKind(n__0()) -> tt() 753.37/208.12 , isNatKind(n__plus(V1, V2)) -> 753.37/208.12 U31(isNatKind(activate(V1)), activate(V2)) 753.37/208.12 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.37/208.12 , activate(X) -> X 753.37/208.12 , activate(n__0()) -> 0() 753.37/208.12 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.37/208.12 , activate(n__s(X)) -> s(activate(X)) 753.37/208.12 , U13(tt(), V1, V2) -> 753.37/208.12 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.12 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.37/208.12 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.37/208.12 , isNat(n__0()) -> tt() 753.37/208.12 , isNat(n__plus(V1, V2)) -> 753.37/208.12 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.12 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.37/208.12 , U16(tt()) -> tt() 753.37/208.12 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.37/208.12 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.37/208.12 , U23(tt()) -> tt() 753.37/208.12 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.37/208.12 , U32(tt()) -> tt() 753.37/208.12 , U41(tt()) -> tt() 753.37/208.12 , s(X) -> n__s(X) 753.37/208.12 , plus(X1, X2) -> n__plus(X1, X2) 753.37/208.12 , 0() -> n__0() } 753.37/208.12 Obligation: 753.37/208.12 innermost runtime complexity 753.37/208.12 Answer: 753.37/208.12 YES(O(1),O(n^2)) 753.37/208.12 753.37/208.12 We analyse the complexity of following sub-problems (R) and (S). 753.37/208.12 Problem (S) is obtained from the input problem by shifting strict 753.37/208.12 rules from (R) into the weak component: 753.37/208.12 753.37/208.12 Problem (R): 753.37/208.12 ------------ 753.37/208.12 Strict DPs: 753.37/208.12 { isNatKind^#(n__plus(V1, V2)) -> 753.37/208.12 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.37/208.12 isNatKind^#(activate(V1))) 753.37/208.12 , isNatKind^#(n__s(V1)) -> c_4(isNatKind^#(activate(V1))) 753.37/208.12 , U31^#(tt(), V2) -> c_6(isNatKind^#(activate(V2))) 753.37/208.12 , U61^#(tt(), M, N) -> 753.37/208.12 c_13(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.37/208.12 isNatKind^#(activate(M))) 753.37/208.12 , U62^#(tt(), M, N) -> 753.37/208.12 c_14(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.12 isNat^#(activate(N))) } 753.37/208.12 Weak DPs: 753.37/208.12 { U11^#(tt(), V1, V2) -> 753.37/208.12 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.12 isNatKind^#(activate(V1))) 753.37/208.12 , U12^#(tt(), V1, V2) -> 753.37/208.12 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.12 isNatKind^#(activate(V2))) 753.37/208.12 , U13^#(tt(), V1, V2) -> 753.37/208.12 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.12 isNatKind^#(activate(V2))) 753.37/208.12 , U14^#(tt(), V1, V2) -> 753.37/208.12 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.12 isNat^#(activate(V1))) 753.37/208.12 , U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.37/208.12 , isNat^#(n__plus(V1, V2)) -> 753.37/208.12 c_9(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.12 isNatKind^#(activate(V1))) 753.37/208.12 , isNat^#(n__s(V1)) -> 753.37/208.12 c_10(U21^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.12 isNatKind^#(activate(V1))) 753.37/208.12 , U21^#(tt(), V1) -> 753.37/208.12 c_11(U22^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.12 isNatKind^#(activate(V1))) 753.37/208.12 , U22^#(tt(), V1) -> c_12(isNat^#(activate(V1))) 753.37/208.12 , U51^#(tt(), N) -> c_16(isNatKind^#(activate(N))) 753.37/208.12 , U63^#(tt(), M, N) -> c_15(isNatKind^#(activate(N))) } 753.37/208.12 Weak Trs: 753.37/208.12 { U11(tt(), V1, V2) -> 753.37/208.12 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.12 , U12(tt(), V1, V2) -> 753.37/208.12 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.12 , isNatKind(n__0()) -> tt() 753.37/208.12 , isNatKind(n__plus(V1, V2)) -> 753.37/208.12 U31(isNatKind(activate(V1)), activate(V2)) 753.37/208.12 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.37/208.12 , activate(X) -> X 753.37/208.12 , activate(n__0()) -> 0() 753.37/208.12 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.37/208.12 , activate(n__s(X)) -> s(activate(X)) 753.37/208.12 , U13(tt(), V1, V2) -> 753.37/208.12 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.12 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.37/208.12 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.37/208.12 , isNat(n__0()) -> tt() 753.37/208.12 , isNat(n__plus(V1, V2)) -> 753.37/208.12 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.12 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.37/208.12 , U16(tt()) -> tt() 753.37/208.12 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.37/208.12 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.37/208.12 , U23(tt()) -> tt() 753.37/208.12 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.37/208.12 , U32(tt()) -> tt() 753.37/208.12 , U41(tt()) -> tt() 753.37/208.12 , s(X) -> n__s(X) 753.37/208.12 , plus(X1, X2) -> n__plus(X1, X2) 753.37/208.12 , 0() -> n__0() } 753.37/208.12 StartTerms: basic terms 753.37/208.12 Strategy: innermost 753.37/208.12 753.37/208.12 Problem (S): 753.37/208.12 ------------ 753.37/208.12 Strict DPs: { U63^#(tt(), M, N) -> c_15(isNatKind^#(activate(N))) } 753.37/208.12 Weak DPs: 753.37/208.12 { U11^#(tt(), V1, V2) -> 753.37/208.12 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.12 isNatKind^#(activate(V1))) 753.37/208.12 , U12^#(tt(), V1, V2) -> 753.37/208.12 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.12 isNatKind^#(activate(V2))) 753.37/208.12 , isNatKind^#(n__plus(V1, V2)) -> 753.37/208.12 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.37/208.12 isNatKind^#(activate(V1))) 753.37/208.12 , isNatKind^#(n__s(V1)) -> c_4(isNatKind^#(activate(V1))) 753.37/208.12 , U13^#(tt(), V1, V2) -> 753.37/208.12 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.12 isNatKind^#(activate(V2))) 753.37/208.12 , U31^#(tt(), V2) -> c_6(isNatKind^#(activate(V2))) 753.37/208.12 , U14^#(tt(), V1, V2) -> 753.37/208.12 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.12 isNat^#(activate(V1))) 753.37/208.12 , U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.37/208.12 , isNat^#(n__plus(V1, V2)) -> 753.37/208.12 c_9(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.12 isNatKind^#(activate(V1))) 753.37/208.12 , isNat^#(n__s(V1)) -> 753.37/208.12 c_10(U21^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.12 isNatKind^#(activate(V1))) 753.37/208.12 , U21^#(tt(), V1) -> 753.37/208.12 c_11(U22^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.12 isNatKind^#(activate(V1))) 753.37/208.12 , U22^#(tt(), V1) -> c_12(isNat^#(activate(V1))) 753.37/208.12 , U51^#(tt(), N) -> c_16(isNatKind^#(activate(N))) 753.37/208.12 , U61^#(tt(), M, N) -> 753.37/208.12 c_13(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.37/208.12 isNatKind^#(activate(M))) 753.37/208.12 , U62^#(tt(), M, N) -> 753.37/208.12 c_14(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.12 isNat^#(activate(N))) } 753.37/208.12 Weak Trs: 753.37/208.12 { U11(tt(), V1, V2) -> 753.37/208.12 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.12 , U12(tt(), V1, V2) -> 753.37/208.12 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.12 , isNatKind(n__0()) -> tt() 753.37/208.12 , isNatKind(n__plus(V1, V2)) -> 753.37/208.12 U31(isNatKind(activate(V1)), activate(V2)) 753.37/208.12 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.37/208.12 , activate(X) -> X 753.37/208.12 , activate(n__0()) -> 0() 753.37/208.12 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.37/208.12 , activate(n__s(X)) -> s(activate(X)) 753.37/208.12 , U13(tt(), V1, V2) -> 753.37/208.12 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.12 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.37/208.12 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.37/208.12 , isNat(n__0()) -> tt() 753.37/208.12 , isNat(n__plus(V1, V2)) -> 753.37/208.12 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.12 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.37/208.12 , U16(tt()) -> tt() 753.37/208.12 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.37/208.12 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.37/208.12 , U23(tt()) -> tt() 753.37/208.12 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.37/208.12 , U32(tt()) -> tt() 753.37/208.12 , U41(tt()) -> tt() 753.37/208.12 , s(X) -> n__s(X) 753.37/208.12 , plus(X1, X2) -> n__plus(X1, X2) 753.37/208.12 , 0() -> n__0() } 753.37/208.12 StartTerms: basic terms 753.37/208.12 Strategy: innermost 753.37/208.13 753.37/208.13 Overall, the transformation results in the following sub-problem(s): 753.37/208.13 753.37/208.13 Generated new problems: 753.37/208.13 ----------------------- 753.37/208.13 R) Strict DPs: 753.37/208.13 { isNatKind^#(n__plus(V1, V2)) -> 753.37/208.13 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.37/208.13 isNatKind^#(activate(V1))) 753.37/208.13 , isNatKind^#(n__s(V1)) -> c_4(isNatKind^#(activate(V1))) 753.37/208.13 , U31^#(tt(), V2) -> c_6(isNatKind^#(activate(V2))) 753.37/208.13 , U61^#(tt(), M, N) -> 753.37/208.13 c_13(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.37/208.13 isNatKind^#(activate(M))) 753.37/208.13 , U62^#(tt(), M, N) -> 753.37/208.13 c_14(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.13 isNat^#(activate(N))) } 753.37/208.13 Weak DPs: 753.37/208.13 { U11^#(tt(), V1, V2) -> 753.37/208.13 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.13 isNatKind^#(activate(V1))) 753.37/208.13 , U12^#(tt(), V1, V2) -> 753.37/208.13 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.13 isNatKind^#(activate(V2))) 753.37/208.13 , U13^#(tt(), V1, V2) -> 753.37/208.13 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.13 isNatKind^#(activate(V2))) 753.37/208.13 , U14^#(tt(), V1, V2) -> 753.37/208.13 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.13 isNat^#(activate(V1))) 753.37/208.13 , U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.37/208.13 , isNat^#(n__plus(V1, V2)) -> 753.37/208.13 c_9(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.13 isNatKind^#(activate(V1))) 753.37/208.13 , isNat^#(n__s(V1)) -> 753.37/208.13 c_10(U21^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.13 isNatKind^#(activate(V1))) 753.37/208.13 , U21^#(tt(), V1) -> 753.37/208.13 c_11(U22^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.13 isNatKind^#(activate(V1))) 753.37/208.13 , U22^#(tt(), V1) -> c_12(isNat^#(activate(V1))) 753.37/208.13 , U51^#(tt(), N) -> c_16(isNatKind^#(activate(N))) 753.37/208.13 , U63^#(tt(), M, N) -> c_15(isNatKind^#(activate(N))) } 753.37/208.13 Weak Trs: 753.37/208.13 { U11(tt(), V1, V2) -> 753.37/208.13 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.13 , U12(tt(), V1, V2) -> 753.37/208.13 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.13 , isNatKind(n__0()) -> tt() 753.37/208.13 , isNatKind(n__plus(V1, V2)) -> 753.37/208.13 U31(isNatKind(activate(V1)), activate(V2)) 753.37/208.13 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.37/208.13 , activate(X) -> X 753.37/208.13 , activate(n__0()) -> 0() 753.37/208.13 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.37/208.13 , activate(n__s(X)) -> s(activate(X)) 753.37/208.13 , U13(tt(), V1, V2) -> 753.37/208.13 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.13 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.37/208.13 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.37/208.13 , isNat(n__0()) -> tt() 753.37/208.13 , isNat(n__plus(V1, V2)) -> 753.37/208.13 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.13 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.37/208.13 , U16(tt()) -> tt() 753.37/208.13 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.37/208.13 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.37/208.13 , U23(tt()) -> tt() 753.37/208.13 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.37/208.13 , U32(tt()) -> tt() 753.37/208.13 , U41(tt()) -> tt() 753.37/208.13 , s(X) -> n__s(X) 753.37/208.13 , plus(X1, X2) -> n__plus(X1, X2) 753.37/208.13 , 0() -> n__0() } 753.37/208.13 StartTerms: basic terms 753.37/208.13 Strategy: innermost 753.37/208.13 753.37/208.13 This problem was proven YES(O(1),O(n^2)). 753.37/208.13 753.37/208.13 S) Strict DPs: 753.37/208.13 { U63^#(tt(), M, N) -> c_15(isNatKind^#(activate(N))) } 753.37/208.13 Weak DPs: 753.37/208.13 { U11^#(tt(), V1, V2) -> 753.37/208.13 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.13 isNatKind^#(activate(V1))) 753.37/208.13 , U12^#(tt(), V1, V2) -> 753.37/208.13 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.13 isNatKind^#(activate(V2))) 753.37/208.13 , isNatKind^#(n__plus(V1, V2)) -> 753.37/208.13 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.37/208.13 isNatKind^#(activate(V1))) 753.37/208.13 , isNatKind^#(n__s(V1)) -> c_4(isNatKind^#(activate(V1))) 753.37/208.13 , U13^#(tt(), V1, V2) -> 753.37/208.13 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.13 isNatKind^#(activate(V2))) 753.37/208.13 , U31^#(tt(), V2) -> c_6(isNatKind^#(activate(V2))) 753.37/208.13 , U14^#(tt(), V1, V2) -> 753.37/208.13 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.13 isNat^#(activate(V1))) 753.37/208.13 , U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.37/208.13 , isNat^#(n__plus(V1, V2)) -> 753.37/208.13 c_9(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.13 isNatKind^#(activate(V1))) 753.37/208.13 , isNat^#(n__s(V1)) -> 753.37/208.13 c_10(U21^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.13 isNatKind^#(activate(V1))) 753.37/208.13 , U21^#(tt(), V1) -> 753.37/208.13 c_11(U22^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.13 isNatKind^#(activate(V1))) 753.37/208.13 , U22^#(tt(), V1) -> c_12(isNat^#(activate(V1))) 753.37/208.13 , U51^#(tt(), N) -> c_16(isNatKind^#(activate(N))) 753.37/208.13 , U61^#(tt(), M, N) -> 753.37/208.13 c_13(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.37/208.13 isNatKind^#(activate(M))) 753.37/208.13 , U62^#(tt(), M, N) -> 753.37/208.13 c_14(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.13 isNat^#(activate(N))) } 753.37/208.13 Weak Trs: 753.37/208.13 { U11(tt(), V1, V2) -> 753.37/208.13 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.13 , U12(tt(), V1, V2) -> 753.37/208.13 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.13 , isNatKind(n__0()) -> tt() 753.37/208.13 , isNatKind(n__plus(V1, V2)) -> 753.37/208.13 U31(isNatKind(activate(V1)), activate(V2)) 753.37/208.13 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.37/208.13 , activate(X) -> X 753.37/208.13 , activate(n__0()) -> 0() 753.37/208.13 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.37/208.13 , activate(n__s(X)) -> s(activate(X)) 753.37/208.13 , U13(tt(), V1, V2) -> 753.37/208.13 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.13 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.37/208.13 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.37/208.13 , isNat(n__0()) -> tt() 753.37/208.13 , isNat(n__plus(V1, V2)) -> 753.37/208.13 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.13 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.37/208.13 , U16(tt()) -> tt() 753.37/208.13 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.37/208.13 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.37/208.13 , U23(tt()) -> tt() 753.37/208.13 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.37/208.13 , U32(tt()) -> tt() 753.37/208.13 , U41(tt()) -> tt() 753.37/208.13 , s(X) -> n__s(X) 753.37/208.13 , plus(X1, X2) -> n__plus(X1, X2) 753.37/208.13 , 0() -> n__0() } 753.37/208.13 StartTerms: basic terms 753.37/208.13 Strategy: innermost 753.37/208.13 753.37/208.13 This problem was proven YES(O(1),O(1)). 753.37/208.13 753.37/208.13 753.37/208.13 Proofs for generated problems: 753.37/208.13 ------------------------------ 753.37/208.13 R) We are left with following problem, upon which TcT provides the 753.37/208.13 certificate YES(O(1),O(n^2)). 753.37/208.13 753.37/208.13 Strict DPs: 753.37/208.13 { isNatKind^#(n__plus(V1, V2)) -> 753.37/208.13 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.37/208.13 isNatKind^#(activate(V1))) 753.37/208.13 , isNatKind^#(n__s(V1)) -> c_4(isNatKind^#(activate(V1))) 753.37/208.13 , U31^#(tt(), V2) -> c_6(isNatKind^#(activate(V2))) 753.37/208.13 , U61^#(tt(), M, N) -> 753.37/208.13 c_13(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.37/208.13 isNatKind^#(activate(M))) 753.37/208.13 , U62^#(tt(), M, N) -> 753.37/208.13 c_14(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.13 isNat^#(activate(N))) } 753.37/208.13 Weak DPs: 753.37/208.13 { U11^#(tt(), V1, V2) -> 753.37/208.13 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.13 isNatKind^#(activate(V1))) 753.37/208.13 , U12^#(tt(), V1, V2) -> 753.37/208.13 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.13 isNatKind^#(activate(V2))) 753.37/208.13 , U13^#(tt(), V1, V2) -> 753.37/208.13 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.13 isNatKind^#(activate(V2))) 753.37/208.13 , U14^#(tt(), V1, V2) -> 753.37/208.13 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.13 isNat^#(activate(V1))) 753.37/208.13 , U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.37/208.13 , isNat^#(n__plus(V1, V2)) -> 753.37/208.13 c_9(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.13 isNatKind^#(activate(V1))) 753.37/208.13 , isNat^#(n__s(V1)) -> 753.37/208.13 c_10(U21^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.13 isNatKind^#(activate(V1))) 753.37/208.13 , U21^#(tt(), V1) -> 753.37/208.13 c_11(U22^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.13 isNatKind^#(activate(V1))) 753.37/208.13 , U22^#(tt(), V1) -> c_12(isNat^#(activate(V1))) 753.37/208.13 , U51^#(tt(), N) -> c_16(isNatKind^#(activate(N))) 753.37/208.13 , U63^#(tt(), M, N) -> c_15(isNatKind^#(activate(N))) } 753.37/208.13 Weak Trs: 753.37/208.13 { U11(tt(), V1, V2) -> 753.37/208.13 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.13 , U12(tt(), V1, V2) -> 753.37/208.13 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.13 , isNatKind(n__0()) -> tt() 753.37/208.13 , isNatKind(n__plus(V1, V2)) -> 753.37/208.13 U31(isNatKind(activate(V1)), activate(V2)) 753.37/208.13 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.37/208.13 , activate(X) -> X 753.37/208.13 , activate(n__0()) -> 0() 753.37/208.13 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.37/208.13 , activate(n__s(X)) -> s(activate(X)) 753.37/208.13 , U13(tt(), V1, V2) -> 753.37/208.13 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.13 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.37/208.13 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.37/208.13 , isNat(n__0()) -> tt() 753.37/208.13 , isNat(n__plus(V1, V2)) -> 753.37/208.13 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.13 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.37/208.13 , U16(tt()) -> tt() 753.37/208.13 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.37/208.13 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.37/208.13 , U23(tt()) -> tt() 753.37/208.13 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.37/208.13 , U32(tt()) -> tt() 753.37/208.13 , U41(tt()) -> tt() 753.37/208.13 , s(X) -> n__s(X) 753.37/208.13 , plus(X1, X2) -> n__plus(X1, X2) 753.37/208.13 , 0() -> n__0() } 753.37/208.13 Obligation: 753.37/208.13 innermost runtime complexity 753.37/208.13 Answer: 753.37/208.13 YES(O(1),O(n^2)) 753.37/208.13 753.37/208.13 We estimate the number of application of {5} by applications of 753.37/208.13 Pre({5}) = {4}. Here rules are labeled as follows: 753.37/208.13 753.37/208.13 DPs: 753.37/208.13 { 1: isNatKind^#(n__plus(V1, V2)) -> 753.37/208.13 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.37/208.13 isNatKind^#(activate(V1))) 753.37/208.13 , 2: isNatKind^#(n__s(V1)) -> c_4(isNatKind^#(activate(V1))) 753.37/208.13 , 3: U31^#(tt(), V2) -> c_6(isNatKind^#(activate(V2))) 753.37/208.13 , 4: U61^#(tt(), M, N) -> 753.37/208.13 c_13(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.37/208.13 isNatKind^#(activate(M))) 753.37/208.13 , 5: U62^#(tt(), M, N) -> 753.37/208.13 c_14(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.13 isNat^#(activate(N))) 753.37/208.13 , 6: U11^#(tt(), V1, V2) -> 753.37/208.13 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.13 isNatKind^#(activate(V1))) 753.37/208.13 , 7: U12^#(tt(), V1, V2) -> 753.37/208.13 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.13 isNatKind^#(activate(V2))) 753.37/208.13 , 8: U13^#(tt(), V1, V2) -> 753.37/208.13 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.13 isNatKind^#(activate(V2))) 753.37/208.13 , 9: U14^#(tt(), V1, V2) -> 753.37/208.13 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.13 isNat^#(activate(V1))) 753.37/208.13 , 10: U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.37/208.13 , 11: isNat^#(n__plus(V1, V2)) -> 753.37/208.13 c_9(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.13 isNatKind^#(activate(V1))) 753.37/208.13 , 12: isNat^#(n__s(V1)) -> 753.37/208.13 c_10(U21^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.13 isNatKind^#(activate(V1))) 753.37/208.13 , 13: U21^#(tt(), V1) -> 753.37/208.13 c_11(U22^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.13 isNatKind^#(activate(V1))) 753.37/208.13 , 14: U22^#(tt(), V1) -> c_12(isNat^#(activate(V1))) 753.37/208.13 , 15: U51^#(tt(), N) -> c_16(isNatKind^#(activate(N))) 753.37/208.13 , 16: U63^#(tt(), M, N) -> c_15(isNatKind^#(activate(N))) } 753.37/208.13 753.37/208.13 We are left with following problem, upon which TcT provides the 753.37/208.13 certificate YES(O(1),O(n^2)). 753.37/208.13 753.37/208.13 Strict DPs: 753.37/208.13 { isNatKind^#(n__plus(V1, V2)) -> 753.37/208.13 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.37/208.13 isNatKind^#(activate(V1))) 753.37/208.13 , isNatKind^#(n__s(V1)) -> c_4(isNatKind^#(activate(V1))) 753.37/208.13 , U31^#(tt(), V2) -> c_6(isNatKind^#(activate(V2))) 753.37/208.13 , U61^#(tt(), M, N) -> 753.37/208.13 c_13(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.37/208.13 isNatKind^#(activate(M))) } 753.37/208.13 Weak DPs: 753.37/208.13 { U11^#(tt(), V1, V2) -> 753.37/208.13 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.13 isNatKind^#(activate(V1))) 753.37/208.13 , U12^#(tt(), V1, V2) -> 753.37/208.13 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.13 isNatKind^#(activate(V2))) 753.37/208.13 , U13^#(tt(), V1, V2) -> 753.37/208.13 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.13 isNatKind^#(activate(V2))) 753.37/208.13 , U14^#(tt(), V1, V2) -> 753.37/208.13 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.13 isNat^#(activate(V1))) 753.37/208.13 , U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.37/208.13 , isNat^#(n__plus(V1, V2)) -> 753.37/208.13 c_9(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.13 isNatKind^#(activate(V1))) 753.37/208.13 , isNat^#(n__s(V1)) -> 753.37/208.13 c_10(U21^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.13 isNatKind^#(activate(V1))) 753.37/208.13 , U21^#(tt(), V1) -> 753.37/208.13 c_11(U22^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.13 isNatKind^#(activate(V1))) 753.37/208.13 , U22^#(tt(), V1) -> c_12(isNat^#(activate(V1))) 753.37/208.13 , U51^#(tt(), N) -> c_16(isNatKind^#(activate(N))) 753.37/208.13 , U62^#(tt(), M, N) -> 753.37/208.13 c_14(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.13 isNat^#(activate(N))) 753.37/208.13 , U63^#(tt(), M, N) -> c_15(isNatKind^#(activate(N))) } 753.37/208.13 Weak Trs: 753.37/208.13 { U11(tt(), V1, V2) -> 753.37/208.13 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.13 , U12(tt(), V1, V2) -> 753.37/208.13 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.13 , isNatKind(n__0()) -> tt() 753.37/208.13 , isNatKind(n__plus(V1, V2)) -> 753.37/208.13 U31(isNatKind(activate(V1)), activate(V2)) 753.37/208.13 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.37/208.13 , activate(X) -> X 753.37/208.13 , activate(n__0()) -> 0() 753.37/208.13 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.37/208.13 , activate(n__s(X)) -> s(activate(X)) 753.37/208.13 , U13(tt(), V1, V2) -> 753.37/208.13 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.13 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.37/208.13 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.37/208.13 , isNat(n__0()) -> tt() 753.37/208.13 , isNat(n__plus(V1, V2)) -> 753.37/208.13 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.14 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.37/208.14 , U16(tt()) -> tt() 753.37/208.14 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.37/208.14 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.37/208.14 , U23(tt()) -> tt() 753.37/208.14 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.37/208.14 , U32(tt()) -> tt() 753.37/208.14 , U41(tt()) -> tt() 753.37/208.14 , s(X) -> n__s(X) 753.37/208.14 , plus(X1, X2) -> n__plus(X1, X2) 753.37/208.14 , 0() -> n__0() } 753.37/208.14 Obligation: 753.37/208.14 innermost runtime complexity 753.37/208.14 Answer: 753.37/208.14 YES(O(1),O(n^2)) 753.37/208.14 753.37/208.14 We decompose the input problem according to the dependency graph 753.37/208.14 into the upper component 753.37/208.14 753.37/208.14 { U11^#(tt(), V1, V2) -> 753.37/208.14 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.14 isNatKind^#(activate(V1))) 753.37/208.14 , U12^#(tt(), V1, V2) -> 753.37/208.14 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.14 isNatKind^#(activate(V2))) 753.37/208.14 , U13^#(tt(), V1, V2) -> 753.37/208.14 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.14 isNatKind^#(activate(V2))) 753.37/208.14 , U14^#(tt(), V1, V2) -> 753.37/208.14 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.14 isNat^#(activate(V1))) 753.37/208.14 , U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.37/208.14 , isNat^#(n__plus(V1, V2)) -> 753.37/208.14 c_9(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.14 isNatKind^#(activate(V1))) 753.37/208.14 , isNat^#(n__s(V1)) -> 753.37/208.14 c_10(U21^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.14 isNatKind^#(activate(V1))) 753.37/208.14 , U21^#(tt(), V1) -> 753.37/208.14 c_11(U22^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.14 isNatKind^#(activate(V1))) 753.37/208.14 , U22^#(tt(), V1) -> c_12(isNat^#(activate(V1))) 753.37/208.14 , U51^#(tt(), N) -> c_16(isNatKind^#(activate(N))) 753.37/208.14 , U61^#(tt(), M, N) -> 753.37/208.14 c_13(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.37/208.14 isNatKind^#(activate(M))) 753.37/208.14 , U62^#(tt(), M, N) -> 753.37/208.14 c_14(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.14 isNat^#(activate(N))) 753.37/208.14 , U63^#(tt(), M, N) -> c_15(isNatKind^#(activate(N))) } 753.37/208.14 753.37/208.14 and lower component 753.37/208.14 753.37/208.14 { isNatKind^#(n__plus(V1, V2)) -> 753.37/208.14 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.37/208.14 isNatKind^#(activate(V1))) 753.37/208.14 , isNatKind^#(n__s(V1)) -> c_4(isNatKind^#(activate(V1))) 753.37/208.14 , U31^#(tt(), V2) -> c_6(isNatKind^#(activate(V2))) } 753.37/208.14 753.37/208.14 Further, following extension rules are added to the lower 753.37/208.14 component. 753.37/208.14 753.37/208.14 { U11^#(tt(), V1, V2) -> 753.37/208.14 U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.14 , U11^#(tt(), V1, V2) -> isNatKind^#(activate(V1)) 753.37/208.14 , U12^#(tt(), V1, V2) -> isNatKind^#(activate(V2)) 753.37/208.14 , U12^#(tt(), V1, V2) -> 753.37/208.14 U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.14 , U13^#(tt(), V1, V2) -> isNatKind^#(activate(V2)) 753.37/208.14 , U13^#(tt(), V1, V2) -> 753.37/208.14 U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.14 , U14^#(tt(), V1, V2) -> U15^#(isNat(activate(V1)), activate(V2)) 753.37/208.14 , U14^#(tt(), V1, V2) -> isNat^#(activate(V1)) 753.37/208.14 , U15^#(tt(), V2) -> isNat^#(activate(V2)) 753.37/208.14 , isNat^#(n__plus(V1, V2)) -> 753.37/208.14 U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.14 , isNat^#(n__plus(V1, V2)) -> isNatKind^#(activate(V1)) 753.37/208.14 , isNat^#(n__s(V1)) -> isNatKind^#(activate(V1)) 753.37/208.14 , isNat^#(n__s(V1)) -> U21^#(isNatKind(activate(V1)), activate(V1)) 753.37/208.14 , U21^#(tt(), V1) -> isNatKind^#(activate(V1)) 753.37/208.14 , U21^#(tt(), V1) -> U22^#(isNatKind(activate(V1)), activate(V1)) 753.37/208.14 , U22^#(tt(), V1) -> isNat^#(activate(V1)) 753.37/208.14 , U51^#(tt(), N) -> isNatKind^#(activate(N)) 753.37/208.14 , U61^#(tt(), M, N) -> isNatKind^#(activate(M)) 753.37/208.14 , U61^#(tt(), M, N) -> 753.37/208.14 U62^#(isNatKind(activate(M)), activate(M), activate(N)) 753.37/208.14 , U62^#(tt(), M, N) -> isNat^#(activate(N)) 753.37/208.14 , U62^#(tt(), M, N) -> 753.37/208.14 U63^#(isNat(activate(N)), activate(M), activate(N)) 753.37/208.14 , U63^#(tt(), M, N) -> isNatKind^#(activate(N)) } 753.37/208.14 753.37/208.14 TcT solves the upper component with certificate YES(O(1),O(n^1)). 753.37/208.14 753.37/208.14 Sub-proof: 753.37/208.14 ---------- 753.37/208.14 We are left with following problem, upon which TcT provides the 753.37/208.14 certificate YES(O(1),O(n^1)). 753.37/208.14 753.37/208.14 Strict DPs: 753.37/208.14 { U11^#(tt(), V1, V2) -> 753.37/208.14 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.14 isNatKind^#(activate(V1))) 753.37/208.14 , U12^#(tt(), V1, V2) -> 753.37/208.14 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.14 isNatKind^#(activate(V2))) 753.37/208.14 , U13^#(tt(), V1, V2) -> 753.37/208.14 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.14 isNatKind^#(activate(V2))) 753.37/208.14 , isNat^#(n__plus(V1, V2)) -> 753.37/208.14 c_9(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.14 isNatKind^#(activate(V1))) 753.37/208.14 , isNat^#(n__s(V1)) -> 753.37/208.14 c_10(U21^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.14 isNatKind^#(activate(V1))) 753.37/208.14 , U21^#(tt(), V1) -> 753.37/208.14 c_11(U22^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.14 isNatKind^#(activate(V1))) 753.37/208.14 , U51^#(tt(), N) -> c_16(isNatKind^#(activate(N))) 753.37/208.14 , U61^#(tt(), M, N) -> 753.37/208.14 c_13(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.37/208.14 isNatKind^#(activate(M))) 753.37/208.14 , U63^#(tt(), M, N) -> c_15(isNatKind^#(activate(N))) } 753.37/208.14 Weak DPs: 753.37/208.14 { U14^#(tt(), V1, V2) -> 753.37/208.14 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.14 isNat^#(activate(V1))) 753.37/208.14 , U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.37/208.14 , U22^#(tt(), V1) -> c_12(isNat^#(activate(V1))) 753.37/208.14 , U62^#(tt(), M, N) -> 753.37/208.14 c_14(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.14 isNat^#(activate(N))) } 753.37/208.14 Weak Trs: 753.37/208.14 { U11(tt(), V1, V2) -> 753.37/208.14 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.14 , U12(tt(), V1, V2) -> 753.37/208.14 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.14 , isNatKind(n__0()) -> tt() 753.37/208.14 , isNatKind(n__plus(V1, V2)) -> 753.37/208.14 U31(isNatKind(activate(V1)), activate(V2)) 753.37/208.14 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.37/208.14 , activate(X) -> X 753.37/208.14 , activate(n__0()) -> 0() 753.37/208.14 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.37/208.14 , activate(n__s(X)) -> s(activate(X)) 753.37/208.14 , U13(tt(), V1, V2) -> 753.37/208.14 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.14 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.37/208.14 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.37/208.14 , isNat(n__0()) -> tt() 753.37/208.14 , isNat(n__plus(V1, V2)) -> 753.37/208.14 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.14 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.37/208.14 , U16(tt()) -> tt() 753.37/208.14 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.37/208.14 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.37/208.14 , U23(tt()) -> tt() 753.37/208.14 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.37/208.14 , U32(tt()) -> tt() 753.37/208.14 , U41(tt()) -> tt() 753.37/208.14 , s(X) -> n__s(X) 753.37/208.14 , plus(X1, X2) -> n__plus(X1, X2) 753.37/208.14 , 0() -> n__0() } 753.37/208.14 Obligation: 753.37/208.14 innermost runtime complexity 753.37/208.14 Answer: 753.37/208.14 YES(O(1),O(n^1)) 753.37/208.14 753.37/208.14 We estimate the number of application of {6,7} by applications of 753.37/208.14 Pre({6,7}) = {5}. Here rules are labeled as follows: 753.37/208.14 753.37/208.14 DPs: 753.37/208.14 { 1: U11^#(tt(), V1, V2) -> 753.37/208.14 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.14 isNatKind^#(activate(V1))) 753.37/208.14 , 2: U12^#(tt(), V1, V2) -> 753.37/208.14 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.14 isNatKind^#(activate(V2))) 753.37/208.14 , 3: U13^#(tt(), V1, V2) -> 753.37/208.14 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.14 isNatKind^#(activate(V2))) 753.37/208.14 , 4: isNat^#(n__plus(V1, V2)) -> 753.37/208.14 c_9(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.14 isNatKind^#(activate(V1))) 753.37/208.14 , 5: isNat^#(n__s(V1)) -> 753.37/208.14 c_10(U21^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.14 isNatKind^#(activate(V1))) 753.37/208.14 , 6: U21^#(tt(), V1) -> 753.37/208.14 c_11(U22^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.14 isNatKind^#(activate(V1))) 753.37/208.14 , 7: U51^#(tt(), N) -> c_16(isNatKind^#(activate(N))) 753.37/208.14 , 8: U61^#(tt(), M, N) -> 753.37/208.14 c_13(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.37/208.14 isNatKind^#(activate(M))) 753.37/208.14 , 9: U63^#(tt(), M, N) -> c_15(isNatKind^#(activate(N))) 753.37/208.14 , 10: U14^#(tt(), V1, V2) -> 753.37/208.14 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.14 isNat^#(activate(V1))) 753.37/208.14 , 11: U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.37/208.14 , 12: U22^#(tt(), V1) -> c_12(isNat^#(activate(V1))) 753.37/208.14 , 13: U62^#(tt(), M, N) -> 753.37/208.14 c_14(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.14 isNat^#(activate(N))) } 753.37/208.14 753.37/208.14 We are left with following problem, upon which TcT provides the 753.37/208.14 certificate YES(O(1),O(n^1)). 753.37/208.14 753.37/208.14 Strict DPs: 753.37/208.14 { U11^#(tt(), V1, V2) -> 753.37/208.14 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.14 isNatKind^#(activate(V1))) 753.37/208.14 , U12^#(tt(), V1, V2) -> 753.37/208.14 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.14 isNatKind^#(activate(V2))) 753.37/208.14 , U13^#(tt(), V1, V2) -> 753.37/208.14 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.14 isNatKind^#(activate(V2))) 753.37/208.14 , isNat^#(n__plus(V1, V2)) -> 753.37/208.14 c_9(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.14 isNatKind^#(activate(V1))) 753.37/208.14 , isNat^#(n__s(V1)) -> 753.37/208.14 c_10(U21^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.14 isNatKind^#(activate(V1))) 753.37/208.14 , U61^#(tt(), M, N) -> 753.37/208.14 c_13(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.37/208.14 isNatKind^#(activate(M))) 753.37/208.14 , U63^#(tt(), M, N) -> c_15(isNatKind^#(activate(N))) } 753.37/208.14 Weak DPs: 753.37/208.14 { U14^#(tt(), V1, V2) -> 753.37/208.14 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.14 isNat^#(activate(V1))) 753.37/208.14 , U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.37/208.14 , U21^#(tt(), V1) -> 753.37/208.14 c_11(U22^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.14 isNatKind^#(activate(V1))) 753.37/208.14 , U22^#(tt(), V1) -> c_12(isNat^#(activate(V1))) 753.37/208.14 , U51^#(tt(), N) -> c_16(isNatKind^#(activate(N))) 753.37/208.14 , U62^#(tt(), M, N) -> 753.37/208.14 c_14(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.14 isNat^#(activate(N))) } 753.37/208.14 Weak Trs: 753.37/208.14 { U11(tt(), V1, V2) -> 753.37/208.14 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.14 , U12(tt(), V1, V2) -> 753.37/208.14 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.14 , isNatKind(n__0()) -> tt() 753.37/208.14 , isNatKind(n__plus(V1, V2)) -> 753.37/208.14 U31(isNatKind(activate(V1)), activate(V2)) 753.37/208.14 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.37/208.14 , activate(X) -> X 753.37/208.14 , activate(n__0()) -> 0() 753.37/208.14 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.37/208.14 , activate(n__s(X)) -> s(activate(X)) 753.37/208.14 , U13(tt(), V1, V2) -> 753.37/208.14 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.14 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.37/208.14 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.37/208.14 , isNat(n__0()) -> tt() 753.37/208.14 , isNat(n__plus(V1, V2)) -> 753.37/208.14 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.14 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.37/208.14 , U16(tt()) -> tt() 753.37/208.14 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.37/208.14 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.37/208.14 , U23(tt()) -> tt() 753.37/208.14 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.37/208.14 , U32(tt()) -> tt() 753.37/208.14 , U41(tt()) -> tt() 753.37/208.14 , s(X) -> n__s(X) 753.37/208.14 , plus(X1, X2) -> n__plus(X1, X2) 753.37/208.14 , 0() -> n__0() } 753.37/208.14 Obligation: 753.37/208.14 innermost runtime complexity 753.37/208.14 Answer: 753.37/208.14 YES(O(1),O(n^1)) 753.37/208.14 753.37/208.14 We estimate the number of application of {3} by applications of 753.37/208.14 Pre({3}) = {2}. Here rules are labeled as follows: 753.37/208.14 753.37/208.14 DPs: 753.37/208.14 { 1: U11^#(tt(), V1, V2) -> 753.37/208.14 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.14 isNatKind^#(activate(V1))) 753.37/208.14 , 2: U12^#(tt(), V1, V2) -> 753.37/208.14 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.14 isNatKind^#(activate(V2))) 753.37/208.14 , 3: U13^#(tt(), V1, V2) -> 753.37/208.14 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.14 isNatKind^#(activate(V2))) 753.37/208.14 , 4: isNat^#(n__plus(V1, V2)) -> 753.37/208.14 c_9(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.14 isNatKind^#(activate(V1))) 753.37/208.14 , 5: isNat^#(n__s(V1)) -> 753.37/208.14 c_10(U21^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.14 isNatKind^#(activate(V1))) 753.37/208.14 , 6: U61^#(tt(), M, N) -> 753.37/208.14 c_13(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.37/208.14 isNatKind^#(activate(M))) 753.37/208.14 , 7: U63^#(tt(), M, N) -> c_15(isNatKind^#(activate(N))) 753.37/208.14 , 8: U14^#(tt(), V1, V2) -> 753.37/208.14 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.14 isNat^#(activate(V1))) 753.37/208.14 , 9: U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.37/208.14 , 10: U21^#(tt(), V1) -> 753.37/208.14 c_11(U22^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.14 isNatKind^#(activate(V1))) 753.37/208.14 , 11: U22^#(tt(), V1) -> c_12(isNat^#(activate(V1))) 753.37/208.14 , 12: U51^#(tt(), N) -> c_16(isNatKind^#(activate(N))) 753.37/208.14 , 13: U62^#(tt(), M, N) -> 753.37/208.14 c_14(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.14 isNat^#(activate(N))) } 753.37/208.14 753.37/208.14 We are left with following problem, upon which TcT provides the 753.37/208.14 certificate YES(O(1),O(n^1)). 753.37/208.14 753.37/208.14 Strict DPs: 753.37/208.14 { U11^#(tt(), V1, V2) -> 753.37/208.14 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.14 isNatKind^#(activate(V1))) 753.37/208.14 , U12^#(tt(), V1, V2) -> 753.37/208.14 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.14 isNatKind^#(activate(V2))) 753.37/208.14 , isNat^#(n__plus(V1, V2)) -> 753.37/208.14 c_9(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.14 isNatKind^#(activate(V1))) 753.37/208.15 , isNat^#(n__s(V1)) -> 753.37/208.15 c_10(U21^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.15 isNatKind^#(activate(V1))) 753.37/208.15 , U61^#(tt(), M, N) -> 753.37/208.15 c_13(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.37/208.15 isNatKind^#(activate(M))) 753.37/208.15 , U63^#(tt(), M, N) -> c_15(isNatKind^#(activate(N))) } 753.37/208.15 Weak DPs: 753.37/208.15 { U13^#(tt(), V1, V2) -> 753.37/208.15 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.15 isNatKind^#(activate(V2))) 753.37/208.15 , U14^#(tt(), V1, V2) -> 753.37/208.15 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.15 isNat^#(activate(V1))) 753.37/208.15 , U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.37/208.15 , U21^#(tt(), V1) -> 753.37/208.15 c_11(U22^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.15 isNatKind^#(activate(V1))) 753.37/208.15 , U22^#(tt(), V1) -> c_12(isNat^#(activate(V1))) 753.37/208.15 , U51^#(tt(), N) -> c_16(isNatKind^#(activate(N))) 753.37/208.15 , U62^#(tt(), M, N) -> 753.37/208.15 c_14(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.15 isNat^#(activate(N))) } 753.37/208.15 Weak Trs: 753.37/208.15 { U11(tt(), V1, V2) -> 753.37/208.15 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.15 , U12(tt(), V1, V2) -> 753.37/208.15 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.15 , isNatKind(n__0()) -> tt() 753.37/208.15 , isNatKind(n__plus(V1, V2)) -> 753.37/208.15 U31(isNatKind(activate(V1)), activate(V2)) 753.37/208.15 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.37/208.15 , activate(X) -> X 753.37/208.15 , activate(n__0()) -> 0() 753.37/208.15 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.37/208.15 , activate(n__s(X)) -> s(activate(X)) 753.37/208.15 , U13(tt(), V1, V2) -> 753.37/208.15 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.15 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.37/208.15 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.37/208.15 , isNat(n__0()) -> tt() 753.37/208.15 , isNat(n__plus(V1, V2)) -> 753.37/208.15 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.15 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.37/208.15 , U16(tt()) -> tt() 753.37/208.15 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.37/208.15 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.37/208.15 , U23(tt()) -> tt() 753.37/208.15 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.37/208.15 , U32(tt()) -> tt() 753.37/208.15 , U41(tt()) -> tt() 753.37/208.15 , s(X) -> n__s(X) 753.37/208.15 , plus(X1, X2) -> n__plus(X1, X2) 753.37/208.15 , 0() -> n__0() } 753.37/208.15 Obligation: 753.37/208.15 innermost runtime complexity 753.37/208.15 Answer: 753.37/208.15 YES(O(1),O(n^1)) 753.37/208.15 753.37/208.15 We estimate the number of application of {2} by applications of 753.37/208.15 Pre({2}) = {1}. Here rules are labeled as follows: 753.37/208.15 753.37/208.15 DPs: 753.37/208.15 { 1: U11^#(tt(), V1, V2) -> 753.37/208.15 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.15 isNatKind^#(activate(V1))) 753.37/208.15 , 2: U12^#(tt(), V1, V2) -> 753.37/208.15 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.15 isNatKind^#(activate(V2))) 753.37/208.15 , 3: isNat^#(n__plus(V1, V2)) -> 753.37/208.15 c_9(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.15 isNatKind^#(activate(V1))) 753.37/208.15 , 4: isNat^#(n__s(V1)) -> 753.37/208.15 c_10(U21^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.15 isNatKind^#(activate(V1))) 753.37/208.15 , 5: U61^#(tt(), M, N) -> 753.37/208.15 c_13(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.37/208.15 isNatKind^#(activate(M))) 753.37/208.15 , 6: U63^#(tt(), M, N) -> c_15(isNatKind^#(activate(N))) 753.37/208.15 , 7: U13^#(tt(), V1, V2) -> 753.37/208.15 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.15 isNatKind^#(activate(V2))) 753.37/208.15 , 8: U14^#(tt(), V1, V2) -> 753.37/208.15 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.15 isNat^#(activate(V1))) 753.37/208.15 , 9: U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.37/208.15 , 10: U21^#(tt(), V1) -> 753.37/208.15 c_11(U22^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.15 isNatKind^#(activate(V1))) 753.37/208.15 , 11: U22^#(tt(), V1) -> c_12(isNat^#(activate(V1))) 753.37/208.15 , 12: U51^#(tt(), N) -> c_16(isNatKind^#(activate(N))) 753.37/208.15 , 13: U62^#(tt(), M, N) -> 753.37/208.15 c_14(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.15 isNat^#(activate(N))) } 753.37/208.15 753.37/208.15 We are left with following problem, upon which TcT provides the 753.37/208.15 certificate YES(O(1),O(n^1)). 753.37/208.15 753.37/208.15 Strict DPs: 753.37/208.15 { U11^#(tt(), V1, V2) -> 753.37/208.15 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.15 isNatKind^#(activate(V1))) 753.37/208.15 , isNat^#(n__plus(V1, V2)) -> 753.37/208.15 c_9(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.15 isNatKind^#(activate(V1))) 753.37/208.15 , isNat^#(n__s(V1)) -> 753.37/208.15 c_10(U21^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.15 isNatKind^#(activate(V1))) 753.37/208.15 , U61^#(tt(), M, N) -> 753.37/208.15 c_13(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.37/208.15 isNatKind^#(activate(M))) 753.37/208.15 , U63^#(tt(), M, N) -> c_15(isNatKind^#(activate(N))) } 753.37/208.15 Weak DPs: 753.37/208.15 { U12^#(tt(), V1, V2) -> 753.37/208.15 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.15 isNatKind^#(activate(V2))) 753.37/208.15 , U13^#(tt(), V1, V2) -> 753.37/208.15 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.15 isNatKind^#(activate(V2))) 753.37/208.15 , U14^#(tt(), V1, V2) -> 753.37/208.15 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.15 isNat^#(activate(V1))) 753.37/208.15 , U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.37/208.15 , U21^#(tt(), V1) -> 753.37/208.15 c_11(U22^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.15 isNatKind^#(activate(V1))) 753.37/208.15 , U22^#(tt(), V1) -> c_12(isNat^#(activate(V1))) 753.37/208.15 , U51^#(tt(), N) -> c_16(isNatKind^#(activate(N))) 753.37/208.15 , U62^#(tt(), M, N) -> 753.37/208.15 c_14(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.15 isNat^#(activate(N))) } 753.37/208.15 Weak Trs: 753.37/208.15 { U11(tt(), V1, V2) -> 753.37/208.15 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.15 , U12(tt(), V1, V2) -> 753.37/208.15 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.15 , isNatKind(n__0()) -> tt() 753.37/208.15 , isNatKind(n__plus(V1, V2)) -> 753.37/208.15 U31(isNatKind(activate(V1)), activate(V2)) 753.37/208.15 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.37/208.15 , activate(X) -> X 753.37/208.15 , activate(n__0()) -> 0() 753.37/208.15 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.37/208.15 , activate(n__s(X)) -> s(activate(X)) 753.37/208.15 , U13(tt(), V1, V2) -> 753.37/208.15 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.15 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.37/208.15 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.37/208.15 , isNat(n__0()) -> tt() 753.37/208.15 , isNat(n__plus(V1, V2)) -> 753.37/208.15 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.15 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.37/208.15 , U16(tt()) -> tt() 753.37/208.15 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.37/208.15 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.37/208.15 , U23(tt()) -> tt() 753.37/208.15 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.37/208.15 , U32(tt()) -> tt() 753.37/208.15 , U41(tt()) -> tt() 753.37/208.15 , s(X) -> n__s(X) 753.37/208.15 , plus(X1, X2) -> n__plus(X1, X2) 753.37/208.15 , 0() -> n__0() } 753.37/208.15 Obligation: 753.37/208.15 innermost runtime complexity 753.37/208.15 Answer: 753.37/208.15 YES(O(1),O(n^1)) 753.37/208.15 753.37/208.15 We estimate the number of application of {1} by applications of 753.37/208.15 Pre({1}) = {2}. Here rules are labeled as follows: 753.37/208.15 753.37/208.15 DPs: 753.37/208.15 { 1: U11^#(tt(), V1, V2) -> 753.37/208.15 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.15 isNatKind^#(activate(V1))) 753.37/208.15 , 2: isNat^#(n__plus(V1, V2)) -> 753.37/208.15 c_9(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.15 isNatKind^#(activate(V1))) 753.37/208.15 , 3: isNat^#(n__s(V1)) -> 753.37/208.15 c_10(U21^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.15 isNatKind^#(activate(V1))) 753.37/208.15 , 4: U61^#(tt(), M, N) -> 753.37/208.15 c_13(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.37/208.15 isNatKind^#(activate(M))) 753.37/208.15 , 5: U63^#(tt(), M, N) -> c_15(isNatKind^#(activate(N))) 753.37/208.15 , 6: U12^#(tt(), V1, V2) -> 753.37/208.15 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.15 isNatKind^#(activate(V2))) 753.37/208.15 , 7: U13^#(tt(), V1, V2) -> 753.37/208.15 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.15 isNatKind^#(activate(V2))) 753.37/208.15 , 8: U14^#(tt(), V1, V2) -> 753.37/208.15 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.15 isNat^#(activate(V1))) 753.37/208.15 , 9: U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.37/208.15 , 10: U21^#(tt(), V1) -> 753.37/208.15 c_11(U22^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.15 isNatKind^#(activate(V1))) 753.37/208.15 , 11: U22^#(tt(), V1) -> c_12(isNat^#(activate(V1))) 753.37/208.15 , 12: U51^#(tt(), N) -> c_16(isNatKind^#(activate(N))) 753.37/208.15 , 13: U62^#(tt(), M, N) -> 753.37/208.15 c_14(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.15 isNat^#(activate(N))) } 753.37/208.15 753.37/208.15 We are left with following problem, upon which TcT provides the 753.37/208.15 certificate YES(O(1),O(n^1)). 753.37/208.15 753.37/208.15 Strict DPs: 753.37/208.15 { isNat^#(n__plus(V1, V2)) -> 753.37/208.15 c_9(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.15 isNatKind^#(activate(V1))) 753.37/208.15 , isNat^#(n__s(V1)) -> 753.37/208.15 c_10(U21^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.15 isNatKind^#(activate(V1))) 753.37/208.15 , U61^#(tt(), M, N) -> 753.37/208.15 c_13(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.37/208.15 isNatKind^#(activate(M))) 753.37/208.15 , U63^#(tt(), M, N) -> c_15(isNatKind^#(activate(N))) } 753.37/208.15 Weak DPs: 753.37/208.15 { U11^#(tt(), V1, V2) -> 753.37/208.15 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.15 isNatKind^#(activate(V1))) 753.37/208.15 , U12^#(tt(), V1, V2) -> 753.37/208.15 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.15 isNatKind^#(activate(V2))) 753.37/208.15 , U13^#(tt(), V1, V2) -> 753.37/208.15 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.15 isNatKind^#(activate(V2))) 753.37/208.15 , U14^#(tt(), V1, V2) -> 753.37/208.15 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.15 isNat^#(activate(V1))) 753.37/208.15 , U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.37/208.15 , U21^#(tt(), V1) -> 753.37/208.15 c_11(U22^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.15 isNatKind^#(activate(V1))) 753.37/208.15 , U22^#(tt(), V1) -> c_12(isNat^#(activate(V1))) 753.37/208.15 , U51^#(tt(), N) -> c_16(isNatKind^#(activate(N))) 753.37/208.15 , U62^#(tt(), M, N) -> 753.37/208.15 c_14(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.15 isNat^#(activate(N))) } 753.37/208.15 Weak Trs: 753.37/208.15 { U11(tt(), V1, V2) -> 753.37/208.15 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.15 , U12(tt(), V1, V2) -> 753.37/208.15 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.15 , isNatKind(n__0()) -> tt() 753.37/208.15 , isNatKind(n__plus(V1, V2)) -> 753.37/208.15 U31(isNatKind(activate(V1)), activate(V2)) 753.37/208.15 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.37/208.15 , activate(X) -> X 753.37/208.15 , activate(n__0()) -> 0() 753.37/208.15 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.37/208.15 , activate(n__s(X)) -> s(activate(X)) 753.37/208.15 , U13(tt(), V1, V2) -> 753.37/208.15 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.15 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.37/208.15 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.37/208.15 , isNat(n__0()) -> tt() 753.37/208.15 , isNat(n__plus(V1, V2)) -> 753.37/208.15 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.15 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.37/208.15 , U16(tt()) -> tt() 753.37/208.15 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.37/208.15 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.37/208.15 , U23(tt()) -> tt() 753.37/208.15 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.37/208.15 , U32(tt()) -> tt() 753.37/208.15 , U41(tt()) -> tt() 753.37/208.15 , s(X) -> n__s(X) 753.37/208.15 , plus(X1, X2) -> n__plus(X1, X2) 753.37/208.15 , 0() -> n__0() } 753.37/208.15 Obligation: 753.37/208.15 innermost runtime complexity 753.37/208.15 Answer: 753.37/208.15 YES(O(1),O(n^1)) 753.37/208.15 753.37/208.15 We estimate the number of application of {3} by applications of 753.37/208.15 Pre({3}) = {}. Here rules are labeled as follows: 753.37/208.15 753.37/208.15 DPs: 753.37/208.15 { 1: isNat^#(n__plus(V1, V2)) -> 753.37/208.15 c_9(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.15 isNatKind^#(activate(V1))) 753.37/208.15 , 2: isNat^#(n__s(V1)) -> 753.37/208.15 c_10(U21^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.15 isNatKind^#(activate(V1))) 753.37/208.15 , 3: U61^#(tt(), M, N) -> 753.37/208.15 c_13(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.37/208.15 isNatKind^#(activate(M))) 753.37/208.15 , 4: U63^#(tt(), M, N) -> c_15(isNatKind^#(activate(N))) 753.37/208.15 , 5: U11^#(tt(), V1, V2) -> 753.37/208.15 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.15 isNatKind^#(activate(V1))) 753.37/208.15 , 6: U12^#(tt(), V1, V2) -> 753.37/208.15 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.15 isNatKind^#(activate(V2))) 753.37/208.15 , 7: U13^#(tt(), V1, V2) -> 753.37/208.15 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.15 isNatKind^#(activate(V2))) 753.37/208.15 , 8: U14^#(tt(), V1, V2) -> 753.37/208.15 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.15 isNat^#(activate(V1))) 753.37/208.15 , 9: U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.37/208.15 , 10: U21^#(tt(), V1) -> 753.37/208.15 c_11(U22^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.15 isNatKind^#(activate(V1))) 753.37/208.15 , 11: U22^#(tt(), V1) -> c_12(isNat^#(activate(V1))) 753.37/208.15 , 12: U51^#(tt(), N) -> c_16(isNatKind^#(activate(N))) 753.37/208.15 , 13: U62^#(tt(), M, N) -> 753.37/208.15 c_14(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.15 isNat^#(activate(N))) } 753.37/208.15 753.37/208.15 We are left with following problem, upon which TcT provides the 753.37/208.15 certificate YES(O(1),O(n^1)). 753.37/208.15 753.37/208.15 Strict DPs: 753.37/208.15 { isNat^#(n__plus(V1, V2)) -> 753.37/208.15 c_9(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.15 isNatKind^#(activate(V1))) 753.37/208.16 , isNat^#(n__s(V1)) -> 753.37/208.16 c_10(U21^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.16 isNatKind^#(activate(V1))) 753.37/208.16 , U63^#(tt(), M, N) -> c_15(isNatKind^#(activate(N))) } 753.37/208.16 Weak DPs: 753.37/208.16 { U11^#(tt(), V1, V2) -> 753.37/208.16 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.16 isNatKind^#(activate(V1))) 753.37/208.16 , U12^#(tt(), V1, V2) -> 753.37/208.16 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.16 isNatKind^#(activate(V2))) 753.37/208.16 , U13^#(tt(), V1, V2) -> 753.37/208.16 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.16 isNatKind^#(activate(V2))) 753.37/208.16 , U14^#(tt(), V1, V2) -> 753.37/208.16 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.16 isNat^#(activate(V1))) 753.37/208.16 , U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.37/208.16 , U21^#(tt(), V1) -> 753.37/208.16 c_11(U22^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.16 isNatKind^#(activate(V1))) 753.37/208.16 , U22^#(tt(), V1) -> c_12(isNat^#(activate(V1))) 753.37/208.16 , U51^#(tt(), N) -> c_16(isNatKind^#(activate(N))) 753.37/208.16 , U61^#(tt(), M, N) -> 753.37/208.16 c_13(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.37/208.16 isNatKind^#(activate(M))) 753.37/208.16 , U62^#(tt(), M, N) -> 753.37/208.16 c_14(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.16 isNat^#(activate(N))) } 753.37/208.16 Weak Trs: 753.37/208.16 { U11(tt(), V1, V2) -> 753.37/208.16 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.16 , U12(tt(), V1, V2) -> 753.37/208.16 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.16 , isNatKind(n__0()) -> tt() 753.37/208.16 , isNatKind(n__plus(V1, V2)) -> 753.37/208.16 U31(isNatKind(activate(V1)), activate(V2)) 753.37/208.16 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.37/208.16 , activate(X) -> X 753.37/208.16 , activate(n__0()) -> 0() 753.37/208.16 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.37/208.16 , activate(n__s(X)) -> s(activate(X)) 753.37/208.16 , U13(tt(), V1, V2) -> 753.37/208.16 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.16 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.37/208.16 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.37/208.16 , isNat(n__0()) -> tt() 753.37/208.16 , isNat(n__plus(V1, V2)) -> 753.37/208.16 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.16 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.37/208.16 , U16(tt()) -> tt() 753.37/208.16 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.37/208.16 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.37/208.16 , U23(tt()) -> tt() 753.37/208.16 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.37/208.16 , U32(tt()) -> tt() 753.37/208.16 , U41(tt()) -> tt() 753.37/208.16 , s(X) -> n__s(X) 753.37/208.16 , plus(X1, X2) -> n__plus(X1, X2) 753.37/208.16 , 0() -> n__0() } 753.37/208.16 Obligation: 753.37/208.16 innermost runtime complexity 753.37/208.16 Answer: 753.37/208.16 YES(O(1),O(n^1)) 753.37/208.16 753.37/208.16 The following weak DPs constitute a sub-graph of the DG that is 753.37/208.16 closed under successors. The DPs are removed. 753.37/208.16 753.37/208.16 { U51^#(tt(), N) -> c_16(isNatKind^#(activate(N))) } 753.37/208.16 753.37/208.16 We are left with following problem, upon which TcT provides the 753.37/208.16 certificate YES(O(1),O(n^1)). 753.37/208.16 753.37/208.16 Strict DPs: 753.37/208.16 { isNat^#(n__plus(V1, V2)) -> 753.37/208.16 c_9(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.16 isNatKind^#(activate(V1))) 753.37/208.16 , isNat^#(n__s(V1)) -> 753.37/208.16 c_10(U21^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.16 isNatKind^#(activate(V1))) 753.37/208.16 , U63^#(tt(), M, N) -> c_15(isNatKind^#(activate(N))) } 753.37/208.16 Weak DPs: 753.37/208.16 { U11^#(tt(), V1, V2) -> 753.37/208.16 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.16 isNatKind^#(activate(V1))) 753.37/208.16 , U12^#(tt(), V1, V2) -> 753.37/208.16 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.16 isNatKind^#(activate(V2))) 753.37/208.16 , U13^#(tt(), V1, V2) -> 753.37/208.16 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.16 isNatKind^#(activate(V2))) 753.37/208.16 , U14^#(tt(), V1, V2) -> 753.37/208.16 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.16 isNat^#(activate(V1))) 753.37/208.16 , U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.37/208.16 , U21^#(tt(), V1) -> 753.37/208.16 c_11(U22^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.16 isNatKind^#(activate(V1))) 753.37/208.16 , U22^#(tt(), V1) -> c_12(isNat^#(activate(V1))) 753.37/208.16 , U61^#(tt(), M, N) -> 753.37/208.16 c_13(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.37/208.16 isNatKind^#(activate(M))) 753.37/208.16 , U62^#(tt(), M, N) -> 753.37/208.16 c_14(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.16 isNat^#(activate(N))) } 753.37/208.16 Weak Trs: 753.37/208.16 { U11(tt(), V1, V2) -> 753.37/208.16 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.16 , U12(tt(), V1, V2) -> 753.37/208.16 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.16 , isNatKind(n__0()) -> tt() 753.37/208.16 , isNatKind(n__plus(V1, V2)) -> 753.37/208.16 U31(isNatKind(activate(V1)), activate(V2)) 753.37/208.16 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.37/208.16 , activate(X) -> X 753.37/208.16 , activate(n__0()) -> 0() 753.37/208.16 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.37/208.16 , activate(n__s(X)) -> s(activate(X)) 753.37/208.16 , U13(tt(), V1, V2) -> 753.37/208.16 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.16 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.37/208.16 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.37/208.16 , isNat(n__0()) -> tt() 753.37/208.16 , isNat(n__plus(V1, V2)) -> 753.37/208.16 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.16 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.37/208.16 , U16(tt()) -> tt() 753.37/208.16 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.37/208.16 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.37/208.16 , U23(tt()) -> tt() 753.37/208.16 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.37/208.16 , U32(tt()) -> tt() 753.37/208.16 , U41(tt()) -> tt() 753.37/208.16 , s(X) -> n__s(X) 753.37/208.16 , plus(X1, X2) -> n__plus(X1, X2) 753.37/208.16 , 0() -> n__0() } 753.37/208.16 Obligation: 753.37/208.16 innermost runtime complexity 753.37/208.16 Answer: 753.37/208.16 YES(O(1),O(n^1)) 753.37/208.16 753.37/208.16 Due to missing edges in the dependency-graph, the right-hand sides 753.37/208.16 of following rules could be simplified: 753.37/208.16 753.37/208.16 { U11^#(tt(), V1, V2) -> 753.37/208.16 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.16 isNatKind^#(activate(V1))) 753.37/208.16 , U12^#(tt(), V1, V2) -> 753.37/208.16 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.16 isNatKind^#(activate(V2))) 753.37/208.16 , U13^#(tt(), V1, V2) -> 753.37/208.16 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.37/208.16 isNatKind^#(activate(V2))) 753.37/208.16 , isNat^#(n__plus(V1, V2)) -> 753.37/208.16 c_9(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.37/208.16 isNatKind^#(activate(V1))) 753.37/208.16 , isNat^#(n__s(V1)) -> 753.37/208.16 c_10(U21^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.16 isNatKind^#(activate(V1))) 753.37/208.16 , U21^#(tt(), V1) -> 753.37/208.16 c_11(U22^#(isNatKind(activate(V1)), activate(V1)), 753.37/208.16 isNatKind^#(activate(V1))) 753.37/208.16 , U61^#(tt(), M, N) -> 753.37/208.16 c_13(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.37/208.16 isNatKind^#(activate(M))) 753.37/208.16 , U63^#(tt(), M, N) -> c_15(isNatKind^#(activate(N))) } 753.37/208.16 753.37/208.16 We are left with following problem, upon which TcT provides the 753.37/208.16 certificate YES(O(1),O(n^1)). 753.37/208.16 753.37/208.16 Strict DPs: 753.37/208.16 { isNat^#(n__plus(V1, V2)) -> 753.37/208.16 c_1(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.37/208.16 , isNat^#(n__s(V1)) -> 753.37/208.16 c_2(U21^#(isNatKind(activate(V1)), activate(V1))) 753.37/208.16 , U63^#(tt(), M, N) -> c_3() } 753.37/208.16 Weak DPs: 753.37/208.16 { U11^#(tt(), V1, V2) -> 753.37/208.16 c_4(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.37/208.16 , U12^#(tt(), V1, V2) -> 753.37/208.16 c_5(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.37/208.16 , U13^#(tt(), V1, V2) -> 753.37/208.16 c_6(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.37/208.16 , U14^#(tt(), V1, V2) -> 753.37/208.16 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.16 isNat^#(activate(V1))) 753.37/208.16 , U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.37/208.16 , U21^#(tt(), V1) -> 753.37/208.16 c_9(U22^#(isNatKind(activate(V1)), activate(V1))) 753.37/208.16 , U22^#(tt(), V1) -> c_10(isNat^#(activate(V1))) 753.37/208.16 , U61^#(tt(), M, N) -> 753.37/208.16 c_11(U62^#(isNatKind(activate(M)), activate(M), activate(N))) 753.37/208.16 , U62^#(tt(), M, N) -> 753.37/208.16 c_12(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.16 isNat^#(activate(N))) } 753.37/208.16 Weak Trs: 753.37/208.16 { U11(tt(), V1, V2) -> 753.37/208.16 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.16 , U12(tt(), V1, V2) -> 753.37/208.16 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.16 , isNatKind(n__0()) -> tt() 753.37/208.16 , isNatKind(n__plus(V1, V2)) -> 753.37/208.16 U31(isNatKind(activate(V1)), activate(V2)) 753.37/208.16 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.37/208.16 , activate(X) -> X 753.37/208.16 , activate(n__0()) -> 0() 753.37/208.16 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.37/208.16 , activate(n__s(X)) -> s(activate(X)) 753.37/208.16 , U13(tt(), V1, V2) -> 753.37/208.16 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.16 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.37/208.16 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.37/208.16 , isNat(n__0()) -> tt() 753.37/208.16 , isNat(n__plus(V1, V2)) -> 753.37/208.16 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.16 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.37/208.16 , U16(tt()) -> tt() 753.37/208.16 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.37/208.16 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.37/208.16 , U23(tt()) -> tt() 753.37/208.16 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.37/208.16 , U32(tt()) -> tt() 753.37/208.16 , U41(tt()) -> tt() 753.37/208.16 , s(X) -> n__s(X) 753.37/208.16 , plus(X1, X2) -> n__plus(X1, X2) 753.37/208.16 , 0() -> n__0() } 753.37/208.16 Obligation: 753.37/208.16 innermost runtime complexity 753.37/208.16 Answer: 753.37/208.16 YES(O(1),O(n^1)) 753.37/208.16 753.37/208.16 We use the processor 'matrix interpretation of dimension 1' to 753.37/208.16 orient following rules strictly. 753.37/208.16 753.37/208.16 DPs: 753.37/208.16 { 11: U61^#(tt(), M, N) -> 753.37/208.16 c_11(U62^#(isNatKind(activate(M)), activate(M), activate(N))) } 753.37/208.16 Trs: { 0() -> n__0() } 753.37/208.16 753.37/208.16 Sub-proof: 753.37/208.16 ---------- 753.37/208.16 The following argument positions are usable: 753.37/208.16 Uargs(c_1) = {1}, Uargs(c_2) = {1}, Uargs(c_4) = {1}, 753.37/208.16 Uargs(c_5) = {1}, Uargs(c_6) = {1}, Uargs(c_7) = {1, 2}, 753.37/208.16 Uargs(c_8) = {1}, Uargs(c_9) = {1}, Uargs(c_10) = {1}, 753.37/208.16 Uargs(c_11) = {1}, Uargs(c_12) = {1, 2} 753.37/208.16 753.37/208.16 TcT has computed the following constructor-restricted matrix 753.37/208.16 interpretation. Note that the diagonal of the component-wise maxima 753.37/208.16 of interpretation-entries (of constructors) contains no more than 0 753.37/208.16 non-zero entries. 753.37/208.16 753.37/208.16 [U11](x1, x2, x3) = [0] 753.37/208.16 753.37/208.16 [tt] = [0] 753.37/208.16 753.37/208.16 [U12](x1, x2, x3) = [0] 753.37/208.16 753.37/208.16 [isNatKind](x1) = [0] 753.37/208.16 753.37/208.16 [activate](x1) = [0] 753.37/208.16 753.37/208.16 [U13](x1, x2, x3) = [0] 753.37/208.16 753.37/208.16 [U14](x1, x2, x3) = [0] 753.37/208.16 753.37/208.16 [U15](x1, x2) = [0] 753.37/208.16 753.37/208.16 [isNat](x1) = [0] 753.37/208.16 753.37/208.16 [U16](x1) = [0] 753.37/208.16 753.37/208.16 [U21](x1, x2) = [0] 753.37/208.16 753.37/208.16 [U22](x1, x2) = [0] 753.37/208.16 753.37/208.16 [U23](x1) = [0] 753.37/208.16 753.37/208.16 [U31](x1, x2) = [0] 753.37/208.16 753.37/208.16 [U32](x1) = [0] 753.37/208.16 753.37/208.16 [U41](x1) = [0] 753.37/208.16 753.37/208.16 [s](x1) = [0] 753.37/208.16 753.37/208.16 [plus](x1, x2) = [0] 753.37/208.16 753.37/208.16 [n__0] = [0] 753.37/208.16 753.37/208.16 [n__plus](x1, x2) = [0] 753.37/208.16 753.37/208.16 [n__s](x1) = [0] 753.37/208.16 753.37/208.16 [0] = [7] 753.37/208.16 753.37/208.16 [U11^#](x1, x2, x3) = [0] 753.37/208.16 753.37/208.16 [U12^#](x1, x2, x3) = [0] 753.37/208.16 753.37/208.16 [isNatKind^#](x1) = [0] 753.37/208.16 753.37/208.16 [U13^#](x1, x2, x3) = [0] 753.37/208.16 753.37/208.16 [U14^#](x1, x2, x3) = [0] 753.37/208.16 753.37/208.16 [U15^#](x1, x2) = [0] 753.37/208.16 753.37/208.16 [isNat^#](x1) = [0] 753.37/208.16 753.37/208.16 [U21^#](x1, x2) = [0] 753.37/208.16 753.37/208.16 [U22^#](x1, x2) = [0] 753.37/208.16 753.37/208.16 [U51^#](x1, x2) = [0] 753.37/208.16 753.37/208.16 [U61^#](x1, x2, x3) = [7] x1 + [7] x2 + [7] x3 + [7] 753.37/208.16 753.37/208.16 [U62^#](x1, x2, x3) = [0] 753.37/208.16 753.37/208.16 [U63^#](x1, x2, x3) = [0] 753.37/208.16 753.37/208.16 [c_1](x1, x2) = [0] 753.37/208.16 753.37/208.16 [c_2](x1, x2) = [0] 753.37/208.16 753.37/208.16 [c_5](x1, x2) = [0] 753.37/208.16 753.37/208.16 [c_7](x1, x2) = [0] 753.37/208.16 753.37/208.16 [c_8](x1) = [0] 753.37/208.16 753.37/208.16 [c_9](x1, x2) = [0] 753.37/208.16 753.37/208.16 [c_10](x1, x2) = [0] 753.37/208.16 753.37/208.16 [c_11](x1, x2) = [0] 753.37/208.16 753.37/208.16 [c_12](x1) = [0] 753.37/208.16 753.37/208.16 [c_13](x1, x2) = [0] 753.37/208.16 753.37/208.16 [c_14](x1, x2) = [0] 753.37/208.16 753.37/208.16 [c_15](x1) = [0] 753.37/208.16 753.37/208.16 [c_16](x1) = [0] 753.37/208.16 753.37/208.16 [c] = [0] 753.37/208.16 753.37/208.16 [c_1](x1) = [4] x1 + [0] 753.37/208.16 753.37/208.16 [c_2](x1) = [4] x1 + [0] 753.37/208.16 753.37/208.16 [c_3] = [0] 753.37/208.16 753.37/208.16 [c_4](x1) = [2] x1 + [0] 753.37/208.16 753.37/208.16 [c_5](x1) = [4] x1 + [0] 753.37/208.16 753.37/208.16 [c_6](x1) = [4] x1 + [0] 753.37/208.16 753.37/208.16 [c_7](x1, x2) = [1] x1 + [4] x2 + [0] 753.37/208.16 753.37/208.16 [c_8](x1) = [4] x1 + [0] 753.37/208.16 753.37/208.16 [c_9](x1) = [4] x1 + [0] 753.37/208.16 753.37/208.16 [c_10](x1) = [4] x1 + [0] 753.37/208.16 753.37/208.16 [c_11](x1) = [2] x1 + [3] 753.37/208.16 753.37/208.16 [c_12](x1, x2) = [4] x1 + [4] x2 + [0] 753.37/208.16 753.37/208.16 The order satisfies the following ordering constraints: 753.37/208.16 753.37/208.16 [U11(tt(), V1, V2)] = [0] 753.37/208.16 >= [0] 753.37/208.16 = [U12(isNatKind(activate(V1)), activate(V1), activate(V2))] 753.37/208.16 753.37/208.16 [U12(tt(), V1, V2)] = [0] 753.37/208.16 >= [0] 753.37/208.16 = [U13(isNatKind(activate(V2)), activate(V1), activate(V2))] 753.37/208.16 753.37/208.16 [isNatKind(n__0())] = [0] 753.37/208.16 >= [0] 753.37/208.16 = [tt()] 753.37/208.16 753.37/208.16 [isNatKind(n__plus(V1, V2))] = [0] 753.37/208.16 >= [0] 753.37/208.16 = [U31(isNatKind(activate(V1)), activate(V2))] 753.37/208.16 753.37/208.16 [isNatKind(n__s(V1))] = [0] 753.37/208.16 >= [0] 753.37/208.16 = [U41(isNatKind(activate(V1)))] 753.37/208.16 753.37/208.16 [activate(X)] = [0] 753.37/208.16 ? [1] X + [0] 753.37/208.16 = [X] 753.37/208.16 753.37/208.16 [activate(n__0())] = [0] 753.37/208.16 ? [7] 753.37/208.16 = [0()] 753.37/208.16 753.37/208.16 [activate(n__plus(X1, X2))] = [0] 753.37/208.16 >= [0] 753.37/208.16 = [plus(activate(X1), activate(X2))] 753.37/208.16 753.37/208.16 [activate(n__s(X))] = [0] 753.37/208.16 >= [0] 753.37/208.16 = [s(activate(X))] 753.37/208.16 753.37/208.16 [U13(tt(), V1, V2)] = [0] 753.37/208.16 >= [0] 753.37/208.16 = [U14(isNatKind(activate(V2)), activate(V1), activate(V2))] 753.37/208.16 753.37/208.16 [U14(tt(), V1, V2)] = [0] 753.37/208.16 >= [0] 753.37/208.16 = [U15(isNat(activate(V1)), activate(V2))] 753.37/208.16 753.37/208.16 [U15(tt(), V2)] = [0] 753.37/208.16 >= [0] 753.37/208.16 = [U16(isNat(activate(V2)))] 753.37/208.16 753.37/208.16 [isNat(n__0())] = [0] 753.37/208.16 >= [0] 753.37/208.16 = [tt()] 753.37/208.16 753.37/208.16 [isNat(n__plus(V1, V2))] = [0] 753.37/208.16 >= [0] 753.37/208.16 = [U11(isNatKind(activate(V1)), activate(V1), activate(V2))] 753.37/208.16 753.37/208.16 [isNat(n__s(V1))] = [0] 753.37/208.16 >= [0] 753.37/208.16 = [U21(isNatKind(activate(V1)), activate(V1))] 753.37/208.16 753.37/208.16 [U16(tt())] = [0] 753.37/208.16 >= [0] 753.37/208.16 = [tt()] 753.37/208.16 753.37/208.16 [U21(tt(), V1)] = [0] 753.37/208.16 >= [0] 753.37/208.16 = [U22(isNatKind(activate(V1)), activate(V1))] 753.37/208.16 753.37/208.16 [U22(tt(), V1)] = [0] 753.37/208.16 >= [0] 753.37/208.16 = [U23(isNat(activate(V1)))] 753.37/208.16 753.37/208.16 [U23(tt())] = [0] 753.37/208.16 >= [0] 753.37/208.16 = [tt()] 753.37/208.16 753.37/208.16 [U31(tt(), V2)] = [0] 753.37/208.16 >= [0] 753.37/208.16 = [U32(isNatKind(activate(V2)))] 753.37/208.16 753.37/208.16 [U32(tt())] = [0] 753.37/208.16 >= [0] 753.37/208.16 = [tt()] 753.37/208.16 753.37/208.16 [U41(tt())] = [0] 753.37/208.16 >= [0] 753.37/208.16 = [tt()] 753.37/208.16 753.37/208.16 [s(X)] = [0] 753.37/208.16 >= [0] 753.37/208.16 = [n__s(X)] 753.37/208.16 753.37/208.16 [plus(X1, X2)] = [0] 753.37/208.16 >= [0] 753.37/208.16 = [n__plus(X1, X2)] 753.37/208.16 753.37/208.16 [0()] = [7] 753.37/208.16 > [0] 753.37/208.16 = [n__0()] 753.37/208.16 753.37/208.16 [U11^#(tt(), V1, V2)] = [0] 753.37/208.16 >= [0] 753.37/208.16 = [c_4(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)))] 753.37/208.16 753.37/208.16 [U12^#(tt(), V1, V2)] = [0] 753.37/208.17 >= [0] 753.37/208.17 = [c_5(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)))] 753.37/208.17 753.37/208.17 [U13^#(tt(), V1, V2)] = [0] 753.37/208.17 >= [0] 753.37/208.17 = [c_6(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)))] 753.37/208.17 753.37/208.17 [U14^#(tt(), V1, V2)] = [0] 753.37/208.17 >= [0] 753.37/208.17 = [c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.17 isNat^#(activate(V1)))] 753.37/208.17 753.37/208.17 [U15^#(tt(), V2)] = [0] 753.37/208.17 >= [0] 753.37/208.17 = [c_8(isNat^#(activate(V2)))] 753.37/208.17 753.37/208.17 [isNat^#(n__plus(V1, V2))] = [0] 753.37/208.17 >= [0] 753.37/208.17 = [c_1(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)))] 753.37/208.17 753.37/208.17 [isNat^#(n__s(V1))] = [0] 753.37/208.17 >= [0] 753.37/208.17 = [c_2(U21^#(isNatKind(activate(V1)), activate(V1)))] 753.37/208.17 753.37/208.17 [U21^#(tt(), V1)] = [0] 753.37/208.17 >= [0] 753.37/208.17 = [c_9(U22^#(isNatKind(activate(V1)), activate(V1)))] 753.37/208.17 753.37/208.17 [U22^#(tt(), V1)] = [0] 753.37/208.17 >= [0] 753.37/208.17 = [c_10(isNat^#(activate(V1)))] 753.37/208.17 753.37/208.17 [U61^#(tt(), M, N)] = [7] N + [7] M + [7] 753.37/208.17 > [3] 753.37/208.17 = [c_11(U62^#(isNatKind(activate(M)), activate(M), activate(N)))] 753.37/208.17 753.37/208.17 [U62^#(tt(), M, N)] = [0] 753.37/208.17 >= [0] 753.37/208.17 = [c_12(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.17 isNat^#(activate(N)))] 753.37/208.17 753.37/208.17 [U63^#(tt(), M, N)] = [0] 753.37/208.17 >= [0] 753.37/208.17 = [c_3()] 753.37/208.17 753.37/208.17 753.37/208.17 We return to the main proof. Consider the set of all dependency 753.37/208.17 pairs 753.37/208.17 753.37/208.17 : 753.37/208.17 { 1: isNat^#(n__plus(V1, V2)) -> 753.37/208.17 c_1(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.37/208.17 , 2: isNat^#(n__s(V1)) -> 753.37/208.17 c_2(U21^#(isNatKind(activate(V1)), activate(V1))) 753.37/208.17 , 3: U63^#(tt(), M, N) -> c_3() 753.37/208.17 , 4: U11^#(tt(), V1, V2) -> 753.37/208.17 c_4(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.37/208.17 , 5: U12^#(tt(), V1, V2) -> 753.37/208.17 c_5(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.37/208.17 , 6: U13^#(tt(), V1, V2) -> 753.37/208.17 c_6(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.37/208.17 , 7: U14^#(tt(), V1, V2) -> 753.37/208.17 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.17 isNat^#(activate(V1))) 753.37/208.17 , 8: U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.37/208.17 , 9: U21^#(tt(), V1) -> 753.37/208.17 c_9(U22^#(isNatKind(activate(V1)), activate(V1))) 753.37/208.17 , 10: U22^#(tt(), V1) -> c_10(isNat^#(activate(V1))) 753.37/208.17 , 11: U61^#(tt(), M, N) -> 753.37/208.17 c_11(U62^#(isNatKind(activate(M)), activate(M), activate(N))) 753.37/208.17 , 12: U62^#(tt(), M, N) -> 753.37/208.17 c_12(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.17 isNat^#(activate(N))) } 753.37/208.17 753.37/208.17 Processor 'matrix interpretation of dimension 1' induces the 753.37/208.17 complexity certificate YES(?,O(1)) on application of dependency 753.37/208.17 pairs {11}. These cover all (indirect) predecessors of dependency 753.37/208.17 pairs {3,11,12}, their number of application is equally bounded. 753.37/208.17 The dependency pairs are shifted into the weak component. 753.37/208.17 753.37/208.17 We are left with following problem, upon which TcT provides the 753.37/208.17 certificate YES(O(1),O(n^1)). 753.37/208.17 753.37/208.17 Strict DPs: 753.37/208.17 { isNat^#(n__plus(V1, V2)) -> 753.37/208.17 c_1(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.37/208.17 , isNat^#(n__s(V1)) -> 753.37/208.17 c_2(U21^#(isNatKind(activate(V1)), activate(V1))) } 753.37/208.17 Weak DPs: 753.37/208.17 { U11^#(tt(), V1, V2) -> 753.37/208.17 c_4(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.37/208.17 , U12^#(tt(), V1, V2) -> 753.37/208.17 c_5(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.37/208.17 , U13^#(tt(), V1, V2) -> 753.37/208.17 c_6(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.37/208.17 , U14^#(tt(), V1, V2) -> 753.37/208.17 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.17 isNat^#(activate(V1))) 753.37/208.17 , U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.37/208.17 , U21^#(tt(), V1) -> 753.37/208.17 c_9(U22^#(isNatKind(activate(V1)), activate(V1))) 753.37/208.17 , U22^#(tt(), V1) -> c_10(isNat^#(activate(V1))) 753.37/208.17 , U61^#(tt(), M, N) -> 753.37/208.17 c_11(U62^#(isNatKind(activate(M)), activate(M), activate(N))) 753.37/208.17 , U62^#(tt(), M, N) -> 753.37/208.17 c_12(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.17 isNat^#(activate(N))) 753.37/208.17 , U63^#(tt(), M, N) -> c_3() } 753.37/208.17 Weak Trs: 753.37/208.17 { U11(tt(), V1, V2) -> 753.37/208.17 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.17 , U12(tt(), V1, V2) -> 753.37/208.17 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.17 , isNatKind(n__0()) -> tt() 753.37/208.17 , isNatKind(n__plus(V1, V2)) -> 753.37/208.17 U31(isNatKind(activate(V1)), activate(V2)) 753.37/208.17 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.37/208.17 , activate(X) -> X 753.37/208.17 , activate(n__0()) -> 0() 753.37/208.17 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.37/208.17 , activate(n__s(X)) -> s(activate(X)) 753.37/208.17 , U13(tt(), V1, V2) -> 753.37/208.17 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.17 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.37/208.17 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.37/208.17 , isNat(n__0()) -> tt() 753.37/208.17 , isNat(n__plus(V1, V2)) -> 753.37/208.17 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.17 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.37/208.17 , U16(tt()) -> tt() 753.37/208.17 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.37/208.17 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.37/208.17 , U23(tt()) -> tt() 753.37/208.17 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.37/208.17 , U32(tt()) -> tt() 753.37/208.17 , U41(tt()) -> tt() 753.37/208.17 , s(X) -> n__s(X) 753.37/208.17 , plus(X1, X2) -> n__plus(X1, X2) 753.37/208.17 , 0() -> n__0() } 753.37/208.17 Obligation: 753.37/208.17 innermost runtime complexity 753.37/208.17 Answer: 753.37/208.17 YES(O(1),O(n^1)) 753.37/208.17 753.37/208.17 The following weak DPs constitute a sub-graph of the DG that is 753.37/208.17 closed under successors. The DPs are removed. 753.37/208.17 753.37/208.17 { U63^#(tt(), M, N) -> c_3() } 753.37/208.17 753.37/208.17 We are left with following problem, upon which TcT provides the 753.37/208.17 certificate YES(O(1),O(n^1)). 753.37/208.17 753.37/208.17 Strict DPs: 753.37/208.17 { isNat^#(n__plus(V1, V2)) -> 753.37/208.17 c_1(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.37/208.17 , isNat^#(n__s(V1)) -> 753.37/208.17 c_2(U21^#(isNatKind(activate(V1)), activate(V1))) } 753.37/208.17 Weak DPs: 753.37/208.17 { U11^#(tt(), V1, V2) -> 753.37/208.17 c_4(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.37/208.17 , U12^#(tt(), V1, V2) -> 753.37/208.17 c_5(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.37/208.17 , U13^#(tt(), V1, V2) -> 753.37/208.17 c_6(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.37/208.17 , U14^#(tt(), V1, V2) -> 753.37/208.17 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.17 isNat^#(activate(V1))) 753.37/208.17 , U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.37/208.17 , U21^#(tt(), V1) -> 753.37/208.17 c_9(U22^#(isNatKind(activate(V1)), activate(V1))) 753.37/208.17 , U22^#(tt(), V1) -> c_10(isNat^#(activate(V1))) 753.37/208.17 , U61^#(tt(), M, N) -> 753.37/208.17 c_11(U62^#(isNatKind(activate(M)), activate(M), activate(N))) 753.37/208.17 , U62^#(tt(), M, N) -> 753.37/208.17 c_12(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.17 isNat^#(activate(N))) } 753.37/208.17 Weak Trs: 753.37/208.17 { U11(tt(), V1, V2) -> 753.37/208.17 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.17 , U12(tt(), V1, V2) -> 753.37/208.17 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.17 , isNatKind(n__0()) -> tt() 753.37/208.17 , isNatKind(n__plus(V1, V2)) -> 753.37/208.17 U31(isNatKind(activate(V1)), activate(V2)) 753.37/208.17 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.37/208.17 , activate(X) -> X 753.37/208.17 , activate(n__0()) -> 0() 753.37/208.17 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.37/208.17 , activate(n__s(X)) -> s(activate(X)) 753.37/208.17 , U13(tt(), V1, V2) -> 753.37/208.17 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.17 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.37/208.17 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.37/208.17 , isNat(n__0()) -> tt() 753.37/208.17 , isNat(n__plus(V1, V2)) -> 753.37/208.17 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.17 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.37/208.17 , U16(tt()) -> tt() 753.37/208.17 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.37/208.17 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.37/208.17 , U23(tt()) -> tt() 753.37/208.17 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.37/208.17 , U32(tt()) -> tt() 753.37/208.17 , U41(tt()) -> tt() 753.37/208.17 , s(X) -> n__s(X) 753.37/208.17 , plus(X1, X2) -> n__plus(X1, X2) 753.37/208.17 , 0() -> n__0() } 753.37/208.17 Obligation: 753.37/208.17 innermost runtime complexity 753.37/208.17 Answer: 753.37/208.17 YES(O(1),O(n^1)) 753.37/208.17 753.37/208.17 Due to missing edges in the dependency-graph, the right-hand sides 753.37/208.17 of following rules could be simplified: 753.37/208.17 753.37/208.17 { U62^#(tt(), M, N) -> 753.37/208.17 c_12(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.37/208.17 isNat^#(activate(N))) } 753.37/208.17 753.37/208.17 We are left with following problem, upon which TcT provides the 753.37/208.17 certificate YES(O(1),O(n^1)). 753.37/208.17 753.37/208.17 Strict DPs: 753.37/208.17 { isNat^#(n__plus(V1, V2)) -> 753.37/208.17 c_1(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.37/208.17 , isNat^#(n__s(V1)) -> 753.37/208.17 c_2(U21^#(isNatKind(activate(V1)), activate(V1))) } 753.37/208.17 Weak DPs: 753.37/208.17 { U11^#(tt(), V1, V2) -> 753.37/208.17 c_3(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.37/208.17 , U12^#(tt(), V1, V2) -> 753.37/208.17 c_4(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.37/208.17 , U13^#(tt(), V1, V2) -> 753.37/208.17 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.37/208.17 , U14^#(tt(), V1, V2) -> 753.37/208.17 c_6(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.17 isNat^#(activate(V1))) 753.37/208.17 , U15^#(tt(), V2) -> c_7(isNat^#(activate(V2))) 753.37/208.17 , U21^#(tt(), V1) -> 753.37/208.17 c_8(U22^#(isNatKind(activate(V1)), activate(V1))) 753.37/208.17 , U22^#(tt(), V1) -> c_9(isNat^#(activate(V1))) 753.37/208.17 , U61^#(tt(), M, N) -> 753.37/208.17 c_10(U62^#(isNatKind(activate(M)), activate(M), activate(N))) 753.37/208.17 , U62^#(tt(), M, N) -> c_11(isNat^#(activate(N))) } 753.37/208.17 Weak Trs: 753.37/208.17 { U11(tt(), V1, V2) -> 753.37/208.17 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.17 , U12(tt(), V1, V2) -> 753.37/208.17 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.17 , isNatKind(n__0()) -> tt() 753.37/208.17 , isNatKind(n__plus(V1, V2)) -> 753.37/208.17 U31(isNatKind(activate(V1)), activate(V2)) 753.37/208.17 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.37/208.17 , activate(X) -> X 753.37/208.17 , activate(n__0()) -> 0() 753.37/208.17 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.37/208.17 , activate(n__s(X)) -> s(activate(X)) 753.37/208.17 , U13(tt(), V1, V2) -> 753.37/208.17 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.17 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.37/208.17 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.37/208.17 , isNat(n__0()) -> tt() 753.37/208.17 , isNat(n__plus(V1, V2)) -> 753.37/208.17 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.17 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.37/208.17 , U16(tt()) -> tt() 753.37/208.17 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.37/208.17 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.37/208.17 , U23(tt()) -> tt() 753.37/208.17 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.37/208.17 , U32(tt()) -> tt() 753.37/208.17 , U41(tt()) -> tt() 753.37/208.17 , s(X) -> n__s(X) 753.37/208.17 , plus(X1, X2) -> n__plus(X1, X2) 753.37/208.17 , 0() -> n__0() } 753.37/208.17 Obligation: 753.37/208.17 innermost runtime complexity 753.37/208.17 Answer: 753.37/208.17 YES(O(1),O(n^1)) 753.37/208.17 753.37/208.17 We use the processor 'matrix interpretation of dimension 1' to 753.37/208.17 orient following rules strictly. 753.37/208.17 753.37/208.17 DPs: 753.37/208.17 { 1: isNat^#(n__plus(V1, V2)) -> 753.37/208.17 c_1(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.37/208.17 , 2: isNat^#(n__s(V1)) -> 753.37/208.17 c_2(U21^#(isNatKind(activate(V1)), activate(V1))) 753.37/208.17 , 10: U61^#(tt(), M, N) -> 753.37/208.17 c_10(U62^#(isNatKind(activate(M)), activate(M), activate(N))) } 753.37/208.17 753.37/208.17 Sub-proof: 753.37/208.17 ---------- 753.37/208.17 The following argument positions are usable: 753.37/208.17 Uargs(c_1) = {1}, Uargs(c_2) = {1}, Uargs(c_3) = {1}, 753.37/208.17 Uargs(c_4) = {1}, Uargs(c_5) = {1}, Uargs(c_6) = {1, 2}, 753.37/208.17 Uargs(c_7) = {1}, Uargs(c_8) = {1}, Uargs(c_9) = {1}, 753.37/208.17 Uargs(c_10) = {1}, Uargs(c_11) = {1} 753.37/208.17 753.37/208.17 TcT has computed the following constructor-based matrix 753.37/208.17 interpretation satisfying not(EDA). 753.37/208.17 753.37/208.17 [U11](x1, x2, x3) = [0] 753.37/208.17 753.37/208.17 [tt] = [0] 753.37/208.17 753.37/208.17 [U12](x1, x2, x3) = [0] 753.37/208.17 753.37/208.17 [isNatKind](x1) = [0] 753.37/208.17 753.37/208.17 [activate](x1) = [1] x1 + [0] 753.37/208.17 753.37/208.17 [U13](x1, x2, x3) = [0] 753.37/208.17 753.37/208.17 [U14](x1, x2, x3) = [0] 753.37/208.17 753.37/208.17 [U15](x1, x2) = [0] 753.37/208.17 753.37/208.17 [isNat](x1) = [0] 753.37/208.17 753.37/208.17 [U16](x1) = [0] 753.37/208.17 753.37/208.17 [U21](x1, x2) = [0] 753.37/208.17 753.37/208.17 [U22](x1, x2) = [0] 753.37/208.17 753.37/208.17 [U23](x1) = [0] 753.37/208.17 753.37/208.17 [U31](x1, x2) = [0] 753.37/208.17 753.37/208.17 [U32](x1) = [0] 753.37/208.17 753.37/208.17 [U41](x1) = [0] 753.37/208.17 753.37/208.17 [s](x1) = [1] x1 + [4] 753.37/208.17 753.37/208.17 [plus](x1, x2) = [1] x1 + [1] x2 + [4] 753.37/208.17 753.37/208.17 [n__0] = [0] 753.37/208.17 753.37/208.17 [n__plus](x1, x2) = [1] x1 + [1] x2 + [4] 753.37/208.17 753.37/208.17 [n__s](x1) = [1] x1 + [4] 753.37/208.17 753.37/208.17 [0] = [0] 753.37/208.17 753.37/208.17 [U11^#](x1, x2, x3) = [1] x2 + [1] x3 + [0] 753.37/208.17 753.37/208.17 [U12^#](x1, x2, x3) = [1] x2 + [1] x3 + [0] 753.37/208.17 753.37/208.17 [isNatKind^#](x1) = [7] x1 + [0] 753.37/208.17 753.37/208.17 [U13^#](x1, x2, x3) = [1] x2 + [1] x3 + [0] 753.37/208.17 753.37/208.17 [U14^#](x1, x2, x3) = [1] x2 + [1] x3 + [0] 753.37/208.17 753.37/208.17 [U15^#](x1, x2) = [1] x2 + [0] 753.37/208.17 753.37/208.17 [isNat^#](x1) = [1] x1 + [0] 753.37/208.17 753.37/208.17 [U21^#](x1, x2) = [1] x2 + [0] 753.37/208.17 753.37/208.17 [U22^#](x1, x2) = [1] x2 + [0] 753.37/208.17 753.37/208.17 [U51^#](x1, x2) = [7] x1 + [7] x2 + [0] 753.37/208.17 753.37/208.17 [U61^#](x1, x2, x3) = [7] x1 + [7] x2 + [7] x3 + [7] 753.37/208.17 753.37/208.17 [U62^#](x1, x2, x3) = [1] x3 + [0] 753.37/208.17 753.37/208.17 [U63^#](x1, x2, x3) = [7] x1 + [7] x2 + [7] x3 + [0] 753.37/208.17 753.37/208.17 [c_1](x1, x2) = [7] x1 + [7] x2 + [0] 753.37/208.17 753.37/208.17 [c_2](x1, x2) = [7] x1 + [7] x2 + [0] 753.37/208.17 753.37/208.17 [c_5](x1, x2) = [7] x1 + [7] x2 + [0] 753.37/208.17 753.37/208.17 [c_7](x1, x2) = [7] x1 + [7] x2 + [0] 753.37/208.17 753.37/208.17 [c_8](x1) = [7] x1 + [0] 753.37/208.17 753.37/208.17 [c_9](x1, x2) = [7] x1 + [7] x2 + [0] 753.37/208.17 753.37/208.17 [c_10](x1, x2) = [7] x1 + [7] x2 + [0] 753.37/208.17 753.37/208.17 [c_11](x1, x2) = [7] x1 + [7] x2 + [0] 753.37/208.17 753.37/208.17 [c_12](x1) = [7] x1 + [0] 753.37/208.17 753.37/208.17 [c_13](x1, x2) = [7] x1 + [7] x2 + [0] 753.37/208.17 753.37/208.17 [c_14](x1, x2) = [7] x1 + [7] x2 + [0] 753.37/208.17 753.37/208.17 [c_15](x1) = [7] x1 + [0] 753.37/208.17 753.37/208.17 [c_16](x1) = [7] x1 + [0] 753.37/208.17 753.37/208.17 [c] = [0] 753.37/208.17 753.37/208.17 [c_1](x1) = [7] x1 + [0] 753.37/208.17 753.37/208.17 [c_2](x1) = [7] x1 + [0] 753.37/208.17 753.37/208.17 [c_3] = [0] 753.37/208.17 753.37/208.17 [c_4](x1) = [7] x1 + [0] 753.37/208.17 753.37/208.17 [c_5](x1) = [7] x1 + [0] 753.37/208.17 753.37/208.17 [c_6](x1) = [7] x1 + [0] 753.37/208.17 753.37/208.17 [c_7](x1, x2) = [7] x1 + [7] x2 + [0] 753.37/208.17 753.37/208.17 [c_8](x1) = [7] x1 + [0] 753.37/208.17 753.37/208.17 [c_9](x1) = [7] x1 + [0] 753.37/208.17 753.37/208.17 [c_10](x1) = [7] x1 + [0] 753.37/208.17 753.37/208.17 [c_11](x1) = [7] x1 + [0] 753.37/208.17 753.37/208.17 [c_12](x1, x2) = [7] x1 + [7] x2 + [0] 753.37/208.17 753.37/208.17 [c] = [0] 753.37/208.17 753.37/208.17 [c_1](x1) = [1] x1 + [1] 753.37/208.17 753.37/208.17 [c_2](x1) = [1] x1 + [3] 753.37/208.17 753.37/208.17 [c_3](x1) = [1] x1 + [0] 753.37/208.17 753.37/208.17 [c_4](x1) = [1] x1 + [0] 753.37/208.17 753.37/208.17 [c_5](x1) = [1] x1 + [0] 753.37/208.17 753.37/208.17 [c_6](x1, x2) = [1] x1 + [1] x2 + [0] 753.37/208.17 753.37/208.17 [c_7](x1) = [1] x1 + [0] 753.37/208.17 753.37/208.17 [c_8](x1) = [1] x1 + [0] 753.37/208.17 753.37/208.17 [c_9](x1) = [1] x1 + [0] 753.37/208.17 753.37/208.17 [c_10](x1) = [1] x1 + [3] 753.37/208.17 753.37/208.17 [c_11](x1) = [1] x1 + [0] 753.37/208.17 753.37/208.17 The order satisfies the following ordering constraints: 753.37/208.17 753.37/208.17 [U11(tt(), V1, V2)] = [0] 753.37/208.17 >= [0] 753.37/208.17 = [U12(isNatKind(activate(V1)), activate(V1), activate(V2))] 753.37/208.17 753.37/208.17 [U12(tt(), V1, V2)] = [0] 753.37/208.17 >= [0] 753.37/208.17 = [U13(isNatKind(activate(V2)), activate(V1), activate(V2))] 753.37/208.17 753.37/208.17 [isNatKind(n__0())] = [0] 753.37/208.17 >= [0] 753.37/208.17 = [tt()] 753.37/208.17 753.37/208.17 [isNatKind(n__plus(V1, V2))] = [0] 753.37/208.17 >= [0] 753.37/208.17 = [U31(isNatKind(activate(V1)), activate(V2))] 753.37/208.17 753.37/208.17 [isNatKind(n__s(V1))] = [0] 753.37/208.17 >= [0] 753.37/208.17 = [U41(isNatKind(activate(V1)))] 753.37/208.17 753.37/208.17 [activate(X)] = [1] X + [0] 753.37/208.17 >= [1] X + [0] 753.37/208.17 = [X] 753.37/208.17 753.37/208.17 [activate(n__0())] = [0] 753.37/208.17 >= [0] 753.37/208.17 = [0()] 753.37/208.17 753.37/208.17 [activate(n__plus(X1, X2))] = [1] X1 + [1] X2 + [4] 753.37/208.17 >= [1] X1 + [1] X2 + [4] 753.37/208.17 = [plus(activate(X1), activate(X2))] 753.37/208.17 753.37/208.17 [activate(n__s(X))] = [1] X + [4] 753.37/208.17 >= [1] X + [4] 753.37/208.17 = [s(activate(X))] 753.37/208.17 753.37/208.17 [U13(tt(), V1, V2)] = [0] 753.37/208.17 >= [0] 753.37/208.17 = [U14(isNatKind(activate(V2)), activate(V1), activate(V2))] 753.37/208.17 753.37/208.17 [U14(tt(), V1, V2)] = [0] 753.37/208.17 >= [0] 753.37/208.17 = [U15(isNat(activate(V1)), activate(V2))] 753.37/208.18 753.37/208.18 [U15(tt(), V2)] = [0] 753.37/208.18 >= [0] 753.37/208.18 = [U16(isNat(activate(V2)))] 753.37/208.18 753.37/208.18 [isNat(n__0())] = [0] 753.37/208.18 >= [0] 753.37/208.18 = [tt()] 753.37/208.18 753.37/208.18 [isNat(n__plus(V1, V2))] = [0] 753.37/208.18 >= [0] 753.37/208.18 = [U11(isNatKind(activate(V1)), activate(V1), activate(V2))] 753.37/208.18 753.37/208.18 [isNat(n__s(V1))] = [0] 753.37/208.18 >= [0] 753.37/208.18 = [U21(isNatKind(activate(V1)), activate(V1))] 753.37/208.18 753.37/208.18 [U16(tt())] = [0] 753.37/208.18 >= [0] 753.37/208.18 = [tt()] 753.37/208.18 753.37/208.18 [U21(tt(), V1)] = [0] 753.37/208.18 >= [0] 753.37/208.18 = [U22(isNatKind(activate(V1)), activate(V1))] 753.37/208.18 753.37/208.18 [U22(tt(), V1)] = [0] 753.37/208.18 >= [0] 753.37/208.18 = [U23(isNat(activate(V1)))] 753.37/208.18 753.37/208.18 [U23(tt())] = [0] 753.37/208.18 >= [0] 753.37/208.18 = [tt()] 753.37/208.18 753.37/208.18 [U31(tt(), V2)] = [0] 753.37/208.18 >= [0] 753.37/208.18 = [U32(isNatKind(activate(V2)))] 753.37/208.18 753.37/208.18 [U32(tt())] = [0] 753.37/208.18 >= [0] 753.37/208.18 = [tt()] 753.37/208.18 753.37/208.18 [U41(tt())] = [0] 753.37/208.18 >= [0] 753.37/208.18 = [tt()] 753.37/208.18 753.37/208.18 [s(X)] = [1] X + [4] 753.37/208.18 >= [1] X + [4] 753.37/208.18 = [n__s(X)] 753.37/208.18 753.37/208.18 [plus(X1, X2)] = [1] X1 + [1] X2 + [4] 753.37/208.18 >= [1] X1 + [1] X2 + [4] 753.37/208.18 = [n__plus(X1, X2)] 753.37/208.18 753.37/208.18 [0()] = [0] 753.37/208.18 >= [0] 753.37/208.18 = [n__0()] 753.37/208.18 753.37/208.18 [U11^#(tt(), V1, V2)] = [1] V1 + [1] V2 + [0] 753.37/208.18 >= [1] V1 + [1] V2 + [0] 753.37/208.18 = [c_3(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)))] 753.37/208.18 753.37/208.18 [U12^#(tt(), V1, V2)] = [1] V1 + [1] V2 + [0] 753.37/208.18 >= [1] V1 + [1] V2 + [0] 753.37/208.18 = [c_4(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)))] 753.37/208.18 753.37/208.18 [U13^#(tt(), V1, V2)] = [1] V1 + [1] V2 + [0] 753.37/208.18 >= [1] V1 + [1] V2 + [0] 753.37/208.18 = [c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)))] 753.37/208.18 753.37/208.18 [U14^#(tt(), V1, V2)] = [1] V1 + [1] V2 + [0] 753.37/208.18 >= [1] V1 + [1] V2 + [0] 753.37/208.18 = [c_6(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.18 isNat^#(activate(V1)))] 753.37/208.18 753.37/208.18 [U15^#(tt(), V2)] = [1] V2 + [0] 753.37/208.18 >= [1] V2 + [0] 753.37/208.18 = [c_7(isNat^#(activate(V2)))] 753.37/208.18 753.37/208.18 [isNat^#(n__plus(V1, V2))] = [1] V1 + [1] V2 + [4] 753.37/208.18 > [1] V1 + [1] V2 + [1] 753.37/208.18 = [c_1(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)))] 753.37/208.18 753.37/208.18 [isNat^#(n__s(V1))] = [1] V1 + [4] 753.37/208.18 > [1] V1 + [3] 753.37/208.18 = [c_2(U21^#(isNatKind(activate(V1)), activate(V1)))] 753.37/208.18 753.37/208.18 [U21^#(tt(), V1)] = [1] V1 + [0] 753.37/208.18 >= [1] V1 + [0] 753.37/208.18 = [c_8(U22^#(isNatKind(activate(V1)), activate(V1)))] 753.37/208.18 753.37/208.18 [U22^#(tt(), V1)] = [1] V1 + [0] 753.37/208.18 >= [1] V1 + [0] 753.37/208.18 = [c_9(isNat^#(activate(V1)))] 753.37/208.18 753.37/208.18 [U61^#(tt(), M, N)] = [7] N + [7] M + [7] 753.37/208.18 > [1] N + [3] 753.37/208.18 = [c_10(U62^#(isNatKind(activate(M)), activate(M), activate(N)))] 753.37/208.18 753.37/208.18 [U62^#(tt(), M, N)] = [1] N + [0] 753.37/208.18 >= [1] N + [0] 753.37/208.18 = [c_11(isNat^#(activate(N)))] 753.37/208.18 753.37/208.18 753.37/208.18 We return to the main proof. Consider the set of all dependency 753.37/208.18 pairs 753.37/208.18 753.37/208.18 : 753.37/208.18 { 1: isNat^#(n__plus(V1, V2)) -> 753.37/208.18 c_1(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.37/208.18 , 2: isNat^#(n__s(V1)) -> 753.37/208.18 c_2(U21^#(isNatKind(activate(V1)), activate(V1))) 753.37/208.18 , 3: U11^#(tt(), V1, V2) -> 753.37/208.18 c_3(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.37/208.18 , 4: U12^#(tt(), V1, V2) -> 753.37/208.18 c_4(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.37/208.18 , 5: U13^#(tt(), V1, V2) -> 753.37/208.18 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.37/208.18 , 6: U14^#(tt(), V1, V2) -> 753.37/208.18 c_6(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.18 isNat^#(activate(V1))) 753.37/208.18 , 7: U15^#(tt(), V2) -> c_7(isNat^#(activate(V2))) 753.37/208.18 , 8: U21^#(tt(), V1) -> 753.37/208.18 c_8(U22^#(isNatKind(activate(V1)), activate(V1))) 753.37/208.18 , 9: U22^#(tt(), V1) -> c_9(isNat^#(activate(V1))) 753.37/208.18 , 10: U61^#(tt(), M, N) -> 753.37/208.18 c_10(U62^#(isNatKind(activate(M)), activate(M), activate(N))) 753.37/208.18 , 11: U62^#(tt(), M, N) -> c_11(isNat^#(activate(N))) } 753.37/208.18 753.37/208.18 Processor 'matrix interpretation of dimension 1' induces the 753.37/208.18 complexity certificate YES(?,O(n^1)) on application of dependency 753.37/208.18 pairs {1,2,10}. These cover all (indirect) predecessors of 753.37/208.18 dependency pairs {1,2,3,4,5,6,7,8,9,10,11}, their number of 753.37/208.18 application is equally bounded. The dependency pairs are shifted 753.37/208.18 into the weak component. 753.37/208.18 753.37/208.18 We are left with following problem, upon which TcT provides the 753.37/208.18 certificate YES(O(1),O(1)). 753.37/208.18 753.37/208.18 Weak DPs: 753.37/208.18 { U11^#(tt(), V1, V2) -> 753.37/208.18 c_3(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.37/208.18 , U12^#(tt(), V1, V2) -> 753.37/208.18 c_4(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.37/208.18 , U13^#(tt(), V1, V2) -> 753.37/208.18 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.37/208.18 , U14^#(tt(), V1, V2) -> 753.37/208.18 c_6(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.18 isNat^#(activate(V1))) 753.37/208.18 , U15^#(tt(), V2) -> c_7(isNat^#(activate(V2))) 753.37/208.18 , isNat^#(n__plus(V1, V2)) -> 753.37/208.18 c_1(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.37/208.18 , isNat^#(n__s(V1)) -> 753.37/208.18 c_2(U21^#(isNatKind(activate(V1)), activate(V1))) 753.37/208.18 , U21^#(tt(), V1) -> 753.37/208.18 c_8(U22^#(isNatKind(activate(V1)), activate(V1))) 753.37/208.18 , U22^#(tt(), V1) -> c_9(isNat^#(activate(V1))) 753.37/208.18 , U61^#(tt(), M, N) -> 753.37/208.18 c_10(U62^#(isNatKind(activate(M)), activate(M), activate(N))) 753.37/208.18 , U62^#(tt(), M, N) -> c_11(isNat^#(activate(N))) } 753.37/208.18 Weak Trs: 753.37/208.18 { U11(tt(), V1, V2) -> 753.37/208.18 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.18 , U12(tt(), V1, V2) -> 753.37/208.18 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.18 , isNatKind(n__0()) -> tt() 753.37/208.18 , isNatKind(n__plus(V1, V2)) -> 753.37/208.18 U31(isNatKind(activate(V1)), activate(V2)) 753.37/208.18 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.37/208.18 , activate(X) -> X 753.37/208.18 , activate(n__0()) -> 0() 753.37/208.18 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.37/208.18 , activate(n__s(X)) -> s(activate(X)) 753.37/208.18 , U13(tt(), V1, V2) -> 753.37/208.18 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.18 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.37/208.18 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.37/208.18 , isNat(n__0()) -> tt() 753.37/208.18 , isNat(n__plus(V1, V2)) -> 753.37/208.18 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.18 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.37/208.18 , U16(tt()) -> tt() 753.37/208.18 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.37/208.18 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.37/208.18 , U23(tt()) -> tt() 753.37/208.18 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.37/208.18 , U32(tt()) -> tt() 753.37/208.18 , U41(tt()) -> tt() 753.37/208.18 , s(X) -> n__s(X) 753.37/208.18 , plus(X1, X2) -> n__plus(X1, X2) 753.37/208.18 , 0() -> n__0() } 753.37/208.18 Obligation: 753.37/208.18 innermost runtime complexity 753.37/208.18 Answer: 753.37/208.18 YES(O(1),O(1)) 753.37/208.18 753.37/208.18 The following weak DPs constitute a sub-graph of the DG that is 753.37/208.18 closed under successors. The DPs are removed. 753.37/208.18 753.37/208.18 { U11^#(tt(), V1, V2) -> 753.37/208.18 c_3(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.37/208.18 , U12^#(tt(), V1, V2) -> 753.37/208.18 c_4(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.37/208.18 , U13^#(tt(), V1, V2) -> 753.37/208.18 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.37/208.18 , U14^#(tt(), V1, V2) -> 753.37/208.18 c_6(U15^#(isNat(activate(V1)), activate(V2)), 753.37/208.18 isNat^#(activate(V1))) 753.37/208.18 , U15^#(tt(), V2) -> c_7(isNat^#(activate(V2))) 753.37/208.18 , isNat^#(n__plus(V1, V2)) -> 753.37/208.18 c_1(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.37/208.18 , isNat^#(n__s(V1)) -> 753.37/208.18 c_2(U21^#(isNatKind(activate(V1)), activate(V1))) 753.37/208.18 , U21^#(tt(), V1) -> 753.37/208.18 c_8(U22^#(isNatKind(activate(V1)), activate(V1))) 753.37/208.18 , U22^#(tt(), V1) -> c_9(isNat^#(activate(V1))) 753.37/208.18 , U61^#(tt(), M, N) -> 753.37/208.18 c_10(U62^#(isNatKind(activate(M)), activate(M), activate(N))) 753.37/208.18 , U62^#(tt(), M, N) -> c_11(isNat^#(activate(N))) } 753.37/208.18 753.37/208.18 We are left with following problem, upon which TcT provides the 753.37/208.18 certificate YES(O(1),O(1)). 753.37/208.18 753.37/208.18 Weak Trs: 753.37/208.18 { U11(tt(), V1, V2) -> 753.37/208.18 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.18 , U12(tt(), V1, V2) -> 753.37/208.18 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.18 , isNatKind(n__0()) -> tt() 753.37/208.18 , isNatKind(n__plus(V1, V2)) -> 753.37/208.18 U31(isNatKind(activate(V1)), activate(V2)) 753.37/208.18 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.37/208.18 , activate(X) -> X 753.37/208.18 , activate(n__0()) -> 0() 753.37/208.18 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.37/208.18 , activate(n__s(X)) -> s(activate(X)) 753.37/208.18 , U13(tt(), V1, V2) -> 753.37/208.18 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.18 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.37/208.18 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.37/208.18 , isNat(n__0()) -> tt() 753.37/208.18 , isNat(n__plus(V1, V2)) -> 753.37/208.18 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.18 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.37/208.18 , U16(tt()) -> tt() 753.37/208.18 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.37/208.18 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.37/208.18 , U23(tt()) -> tt() 753.37/208.18 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.37/208.18 , U32(tt()) -> tt() 753.37/208.18 , U41(tt()) -> tt() 753.37/208.18 , s(X) -> n__s(X) 753.37/208.18 , plus(X1, X2) -> n__plus(X1, X2) 753.37/208.18 , 0() -> n__0() } 753.37/208.18 Obligation: 753.37/208.18 innermost runtime complexity 753.37/208.18 Answer: 753.37/208.18 YES(O(1),O(1)) 753.37/208.18 753.37/208.18 No rule is usable, rules are removed from the input problem. 753.37/208.18 753.37/208.18 We are left with following problem, upon which TcT provides the 753.37/208.18 certificate YES(O(1),O(1)). 753.37/208.18 753.37/208.18 Rules: Empty 753.37/208.18 Obligation: 753.37/208.18 innermost runtime complexity 753.37/208.18 Answer: 753.37/208.18 YES(O(1),O(1)) 753.37/208.18 753.37/208.18 Empty rules are trivially bounded 753.37/208.18 753.37/208.18 We return to the main proof. 753.37/208.18 753.37/208.18 We are left with following problem, upon which TcT provides the 753.37/208.18 certificate YES(O(1),O(n^1)). 753.37/208.18 753.37/208.18 Strict DPs: 753.37/208.18 { isNatKind^#(n__plus(V1, V2)) -> 753.37/208.18 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.37/208.18 isNatKind^#(activate(V1))) 753.37/208.18 , isNatKind^#(n__s(V1)) -> c_4(isNatKind^#(activate(V1))) 753.37/208.18 , U31^#(tt(), V2) -> c_6(isNatKind^#(activate(V2))) } 753.37/208.18 Weak DPs: 753.37/208.18 { U11^#(tt(), V1, V2) -> 753.37/208.18 U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.18 , U11^#(tt(), V1, V2) -> isNatKind^#(activate(V1)) 753.37/208.18 , U12^#(tt(), V1, V2) -> isNatKind^#(activate(V2)) 753.37/208.18 , U12^#(tt(), V1, V2) -> 753.37/208.18 U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.18 , U13^#(tt(), V1, V2) -> isNatKind^#(activate(V2)) 753.37/208.18 , U13^#(tt(), V1, V2) -> 753.37/208.18 U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.18 , U14^#(tt(), V1, V2) -> U15^#(isNat(activate(V1)), activate(V2)) 753.37/208.18 , U14^#(tt(), V1, V2) -> isNat^#(activate(V1)) 753.37/208.18 , U15^#(tt(), V2) -> isNat^#(activate(V2)) 753.37/208.18 , isNat^#(n__plus(V1, V2)) -> 753.37/208.18 U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.18 , isNat^#(n__plus(V1, V2)) -> isNatKind^#(activate(V1)) 753.37/208.18 , isNat^#(n__s(V1)) -> isNatKind^#(activate(V1)) 753.37/208.18 , isNat^#(n__s(V1)) -> U21^#(isNatKind(activate(V1)), activate(V1)) 753.37/208.18 , U21^#(tt(), V1) -> isNatKind^#(activate(V1)) 753.37/208.18 , U21^#(tt(), V1) -> U22^#(isNatKind(activate(V1)), activate(V1)) 753.37/208.18 , U22^#(tt(), V1) -> isNat^#(activate(V1)) 753.37/208.18 , U51^#(tt(), N) -> isNatKind^#(activate(N)) 753.37/208.18 , U61^#(tt(), M, N) -> isNatKind^#(activate(M)) 753.37/208.18 , U61^#(tt(), M, N) -> 753.37/208.18 U62^#(isNatKind(activate(M)), activate(M), activate(N)) 753.37/208.18 , U62^#(tt(), M, N) -> isNat^#(activate(N)) 753.37/208.18 , U62^#(tt(), M, N) -> 753.37/208.18 U63^#(isNat(activate(N)), activate(M), activate(N)) 753.37/208.18 , U63^#(tt(), M, N) -> isNatKind^#(activate(N)) } 753.37/208.18 Weak Trs: 753.37/208.18 { U11(tt(), V1, V2) -> 753.37/208.18 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.18 , U12(tt(), V1, V2) -> 753.37/208.18 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.18 , isNatKind(n__0()) -> tt() 753.37/208.18 , isNatKind(n__plus(V1, V2)) -> 753.37/208.18 U31(isNatKind(activate(V1)), activate(V2)) 753.37/208.18 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.37/208.18 , activate(X) -> X 753.37/208.18 , activate(n__0()) -> 0() 753.37/208.18 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.37/208.18 , activate(n__s(X)) -> s(activate(X)) 753.37/208.18 , U13(tt(), V1, V2) -> 753.37/208.18 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.18 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.37/208.18 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.37/208.18 , isNat(n__0()) -> tt() 753.37/208.18 , isNat(n__plus(V1, V2)) -> 753.37/208.18 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.18 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.37/208.18 , U16(tt()) -> tt() 753.37/208.18 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.37/208.18 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.37/208.18 , U23(tt()) -> tt() 753.37/208.18 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.37/208.18 , U32(tt()) -> tt() 753.37/208.18 , U41(tt()) -> tt() 753.37/208.18 , s(X) -> n__s(X) 753.37/208.18 , plus(X1, X2) -> n__plus(X1, X2) 753.37/208.18 , 0() -> n__0() } 753.37/208.18 Obligation: 753.37/208.18 innermost runtime complexity 753.37/208.18 Answer: 753.37/208.18 YES(O(1),O(n^1)) 753.37/208.18 753.37/208.18 We use the processor 'matrix interpretation of dimension 1' to 753.37/208.18 orient following rules strictly. 753.37/208.18 753.37/208.18 DPs: 753.37/208.18 { 2: isNatKind^#(n__s(V1)) -> c_4(isNatKind^#(activate(V1))) 753.37/208.18 , 15: isNat^#(n__s(V1)) -> isNatKind^#(activate(V1)) 753.37/208.18 , 16: isNat^#(n__s(V1)) -> 753.37/208.18 U21^#(isNatKind(activate(V1)), activate(V1)) 753.37/208.18 , 20: U51^#(tt(), N) -> isNatKind^#(activate(N)) 753.37/208.18 , 21: U61^#(tt(), M, N) -> isNatKind^#(activate(M)) 753.37/208.18 , 22: U61^#(tt(), M, N) -> 753.37/208.18 U62^#(isNatKind(activate(M)), activate(M), activate(N)) } 753.37/208.18 753.37/208.18 Sub-proof: 753.37/208.18 ---------- 753.37/208.18 The following argument positions are usable: 753.37/208.18 Uargs(c_3) = {1, 2}, Uargs(c_4) = {1}, Uargs(c_6) = {1} 753.37/208.18 753.37/208.18 TcT has computed the following constructor-based matrix 753.37/208.18 interpretation satisfying not(EDA). 753.37/208.18 753.37/208.18 [U11](x1, x2, x3) = [0] 753.37/208.18 753.37/208.18 [tt] = [0] 753.37/208.18 753.37/208.18 [U12](x1, x2, x3) = [0] 753.37/208.18 753.37/208.18 [isNatKind](x1) = [0] 753.37/208.18 753.37/208.18 [activate](x1) = [1] x1 + [0] 753.37/208.18 753.37/208.18 [U13](x1, x2, x3) = [0] 753.37/208.18 753.37/208.18 [U14](x1, x2, x3) = [0] 753.37/208.18 753.37/208.18 [U15](x1, x2) = [0] 753.37/208.18 753.37/208.18 [isNat](x1) = [0] 753.37/208.18 753.37/208.18 [U16](x1) = [0] 753.37/208.18 753.37/208.18 [U21](x1, x2) = [0] 753.37/208.18 753.37/208.18 [U22](x1, x2) = [0] 753.37/208.18 753.37/208.18 [U23](x1) = [0] 753.37/208.18 753.37/208.18 [U31](x1, x2) = [0] 753.37/208.18 753.37/208.18 [U32](x1) = [0] 753.37/208.18 753.37/208.18 [U41](x1) = [0] 753.37/208.18 753.37/208.18 [s](x1) = [1] x1 + [1] 753.37/208.18 753.37/208.18 [plus](x1, x2) = [1] x1 + [1] x2 + [0] 753.37/208.18 753.37/208.18 [n__0] = [0] 753.37/208.18 753.37/208.18 [n__plus](x1, x2) = [1] x1 + [1] x2 + [0] 753.37/208.18 753.37/208.18 [n__s](x1) = [1] x1 + [1] 753.37/208.18 753.37/208.18 [0] = [0] 753.37/208.18 753.37/208.18 [U11^#](x1, x2, x3) = [2] x2 + [2] x3 + [0] 753.37/208.18 753.37/208.18 [U12^#](x1, x2, x3) = [2] x2 + [2] x3 + [0] 753.37/208.18 753.37/208.18 [isNatKind^#](x1) = [2] x1 + [0] 753.37/208.18 753.37/208.18 [U13^#](x1, x2, x3) = [2] x2 + [2] x3 + [0] 753.37/208.18 753.37/208.18 [U31^#](x1, x2) = [2] x2 + [0] 753.37/208.18 753.37/208.18 [U14^#](x1, x2, x3) = [2] x2 + [2] x3 + [0] 753.37/208.18 753.37/208.18 [U15^#](x1, x2) = [2] x2 + [0] 753.37/208.18 753.37/208.18 [isNat^#](x1) = [2] x1 + [0] 753.37/208.18 753.37/208.18 [U21^#](x1, x2) = [2] x2 + [0] 753.37/208.18 753.37/208.18 [U22^#](x1, x2) = [2] x2 + [0] 753.37/208.18 753.37/208.18 [U51^#](x1, x2) = [7] x1 + [7] x2 + [7] 753.37/208.18 753.37/208.18 [U61^#](x1, x2, x3) = [7] x1 + [7] x2 + [7] x3 + [1] 753.37/208.18 753.37/208.18 [U62^#](x1, x2, x3) = [4] x2 + [4] x3 + [0] 753.37/208.18 753.37/208.18 [U63^#](x1, x2, x3) = [2] x3 + [0] 753.37/208.18 753.37/208.18 [c_3](x1, x2) = [1] x1 + [1] x2 + [0] 753.37/208.18 753.37/208.18 [c_4](x1) = [1] x1 + [1] 753.37/208.18 753.37/208.18 [c_6](x1) = [1] x1 + [0] 753.37/208.18 753.37/208.18 The order satisfies the following ordering constraints: 753.37/208.18 753.37/208.18 [U11(tt(), V1, V2)] = [0] 753.37/208.18 >= [0] 753.37/208.18 = [U12(isNatKind(activate(V1)), activate(V1), activate(V2))] 753.37/208.18 753.37/208.18 [U12(tt(), V1, V2)] = [0] 753.37/208.18 >= [0] 753.37/208.18 = [U13(isNatKind(activate(V2)), activate(V1), activate(V2))] 753.37/208.18 753.37/208.18 [isNatKind(n__0())] = [0] 753.37/208.18 >= [0] 753.37/208.18 = [tt()] 753.37/208.18 753.37/208.18 [isNatKind(n__plus(V1, V2))] = [0] 753.37/208.18 >= [0] 753.37/208.18 = [U31(isNatKind(activate(V1)), activate(V2))] 753.37/208.18 753.37/208.18 [isNatKind(n__s(V1))] = [0] 753.37/208.18 >= [0] 753.37/208.18 = [U41(isNatKind(activate(V1)))] 753.37/208.18 753.37/208.18 [activate(X)] = [1] X + [0] 753.37/208.18 >= [1] X + [0] 753.37/208.18 = [X] 753.37/208.18 753.37/208.18 [activate(n__0())] = [0] 753.37/208.18 >= [0] 753.37/208.18 = [0()] 753.37/208.19 753.37/208.19 [activate(n__plus(X1, X2))] = [1] X1 + [1] X2 + [0] 753.37/208.19 >= [1] X1 + [1] X2 + [0] 753.37/208.19 = [plus(activate(X1), activate(X2))] 753.37/208.19 753.37/208.19 [activate(n__s(X))] = [1] X + [1] 753.37/208.19 >= [1] X + [1] 753.37/208.19 = [s(activate(X))] 753.37/208.19 753.37/208.19 [U13(tt(), V1, V2)] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [U14(isNatKind(activate(V2)), activate(V1), activate(V2))] 753.37/208.19 753.37/208.19 [U14(tt(), V1, V2)] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [U15(isNat(activate(V1)), activate(V2))] 753.37/208.19 753.37/208.19 [U15(tt(), V2)] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [U16(isNat(activate(V2)))] 753.37/208.19 753.37/208.19 [isNat(n__0())] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [tt()] 753.37/208.19 753.37/208.19 [isNat(n__plus(V1, V2))] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [U11(isNatKind(activate(V1)), activate(V1), activate(V2))] 753.37/208.19 753.37/208.19 [isNat(n__s(V1))] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [U21(isNatKind(activate(V1)), activate(V1))] 753.37/208.19 753.37/208.19 [U16(tt())] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [tt()] 753.37/208.19 753.37/208.19 [U21(tt(), V1)] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [U22(isNatKind(activate(V1)), activate(V1))] 753.37/208.19 753.37/208.19 [U22(tt(), V1)] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [U23(isNat(activate(V1)))] 753.37/208.19 753.37/208.19 [U23(tt())] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [tt()] 753.37/208.19 753.37/208.19 [U31(tt(), V2)] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [U32(isNatKind(activate(V2)))] 753.37/208.19 753.37/208.19 [U32(tt())] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [tt()] 753.37/208.19 753.37/208.19 [U41(tt())] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [tt()] 753.37/208.19 753.37/208.19 [s(X)] = [1] X + [1] 753.37/208.19 >= [1] X + [1] 753.37/208.19 = [n__s(X)] 753.37/208.19 753.37/208.19 [plus(X1, X2)] = [1] X1 + [1] X2 + [0] 753.37/208.19 >= [1] X1 + [1] X2 + [0] 753.37/208.19 = [n__plus(X1, X2)] 753.37/208.19 753.37/208.19 [0()] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [n__0()] 753.37/208.19 753.37/208.19 [U11^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [0] 753.37/208.19 >= [2] V1 + [2] V2 + [0] 753.37/208.19 = [U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))] 753.37/208.19 753.37/208.19 [U11^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [0] 753.37/208.19 >= [2] V1 + [0] 753.37/208.19 = [isNatKind^#(activate(V1))] 753.37/208.19 753.37/208.19 [U12^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [0] 753.37/208.19 >= [2] V2 + [0] 753.37/208.19 = [isNatKind^#(activate(V2))] 753.37/208.19 753.37/208.19 [U12^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [0] 753.37/208.19 >= [2] V1 + [2] V2 + [0] 753.37/208.19 = [U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))] 753.37/208.19 753.37/208.19 [isNatKind^#(n__plus(V1, V2))] = [2] V1 + [2] V2 + [0] 753.37/208.19 >= [2] V1 + [2] V2 + [0] 753.37/208.19 = [c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.37/208.19 isNatKind^#(activate(V1)))] 753.37/208.19 753.37/208.19 [isNatKind^#(n__s(V1))] = [2] V1 + [2] 753.37/208.19 > [2] V1 + [1] 753.37/208.19 = [c_4(isNatKind^#(activate(V1)))] 753.37/208.19 753.37/208.19 [U13^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [0] 753.37/208.19 >= [2] V2 + [0] 753.37/208.19 = [isNatKind^#(activate(V2))] 753.37/208.19 753.37/208.19 [U13^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [0] 753.37/208.19 >= [2] V1 + [2] V2 + [0] 753.37/208.19 = [U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))] 753.37/208.19 753.37/208.19 [U31^#(tt(), V2)] = [2] V2 + [0] 753.37/208.19 >= [2] V2 + [0] 753.37/208.19 = [c_6(isNatKind^#(activate(V2)))] 753.37/208.19 753.37/208.19 [U14^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [0] 753.37/208.19 >= [2] V2 + [0] 753.37/208.19 = [U15^#(isNat(activate(V1)), activate(V2))] 753.37/208.19 753.37/208.19 [U14^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [0] 753.37/208.19 >= [2] V1 + [0] 753.37/208.19 = [isNat^#(activate(V1))] 753.37/208.19 753.37/208.19 [U15^#(tt(), V2)] = [2] V2 + [0] 753.37/208.19 >= [2] V2 + [0] 753.37/208.19 = [isNat^#(activate(V2))] 753.37/208.19 753.37/208.19 [isNat^#(n__plus(V1, V2))] = [2] V1 + [2] V2 + [0] 753.37/208.19 >= [2] V1 + [2] V2 + [0] 753.37/208.19 = [U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))] 753.37/208.19 753.37/208.19 [isNat^#(n__plus(V1, V2))] = [2] V1 + [2] V2 + [0] 753.37/208.19 >= [2] V1 + [0] 753.37/208.19 = [isNatKind^#(activate(V1))] 753.37/208.19 753.37/208.19 [isNat^#(n__s(V1))] = [2] V1 + [2] 753.37/208.19 > [2] V1 + [0] 753.37/208.19 = [isNatKind^#(activate(V1))] 753.37/208.19 753.37/208.19 [isNat^#(n__s(V1))] = [2] V1 + [2] 753.37/208.19 > [2] V1 + [0] 753.37/208.19 = [U21^#(isNatKind(activate(V1)), activate(V1))] 753.37/208.19 753.37/208.19 [U21^#(tt(), V1)] = [2] V1 + [0] 753.37/208.19 >= [2] V1 + [0] 753.37/208.19 = [isNatKind^#(activate(V1))] 753.37/208.19 753.37/208.19 [U21^#(tt(), V1)] = [2] V1 + [0] 753.37/208.19 >= [2] V1 + [0] 753.37/208.19 = [U22^#(isNatKind(activate(V1)), activate(V1))] 753.37/208.19 753.37/208.19 [U22^#(tt(), V1)] = [2] V1 + [0] 753.37/208.19 >= [2] V1 + [0] 753.37/208.19 = [isNat^#(activate(V1))] 753.37/208.19 753.37/208.19 [U51^#(tt(), N)] = [7] N + [7] 753.37/208.19 > [2] N + [0] 753.37/208.19 = [isNatKind^#(activate(N))] 753.37/208.19 753.37/208.19 [U61^#(tt(), M, N)] = [7] N + [7] M + [1] 753.37/208.19 > [2] M + [0] 753.37/208.19 = [isNatKind^#(activate(M))] 753.37/208.19 753.37/208.19 [U61^#(tt(), M, N)] = [7] N + [7] M + [1] 753.37/208.19 > [4] N + [4] M + [0] 753.37/208.19 = [U62^#(isNatKind(activate(M)), activate(M), activate(N))] 753.37/208.19 753.37/208.19 [U62^#(tt(), M, N)] = [4] N + [4] M + [0] 753.37/208.19 >= [2] N + [0] 753.37/208.19 = [isNat^#(activate(N))] 753.37/208.19 753.37/208.19 [U62^#(tt(), M, N)] = [4] N + [4] M + [0] 753.37/208.19 >= [2] N + [0] 753.37/208.19 = [U63^#(isNat(activate(N)), activate(M), activate(N))] 753.37/208.19 753.37/208.19 [U63^#(tt(), M, N)] = [2] N + [0] 753.37/208.19 >= [2] N + [0] 753.37/208.19 = [isNatKind^#(activate(N))] 753.37/208.19 753.37/208.19 753.37/208.19 We return to the main proof. Consider the set of all dependency 753.37/208.19 pairs 753.37/208.19 753.37/208.19 : 753.37/208.19 { 1: isNatKind^#(n__plus(V1, V2)) -> 753.37/208.19 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.37/208.19 isNatKind^#(activate(V1))) 753.37/208.19 , 2: isNatKind^#(n__s(V1)) -> c_4(isNatKind^#(activate(V1))) 753.37/208.19 , 3: U31^#(tt(), V2) -> c_6(isNatKind^#(activate(V2))) 753.37/208.19 , 4: U11^#(tt(), V1, V2) -> 753.37/208.19 U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.19 , 5: U11^#(tt(), V1, V2) -> isNatKind^#(activate(V1)) 753.37/208.19 , 6: U12^#(tt(), V1, V2) -> isNatKind^#(activate(V2)) 753.37/208.19 , 7: U12^#(tt(), V1, V2) -> 753.37/208.19 U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.19 , 8: U13^#(tt(), V1, V2) -> isNatKind^#(activate(V2)) 753.37/208.19 , 9: U13^#(tt(), V1, V2) -> 753.37/208.19 U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.19 , 10: U14^#(tt(), V1, V2) -> 753.37/208.19 U15^#(isNat(activate(V1)), activate(V2)) 753.37/208.19 , 11: U14^#(tt(), V1, V2) -> isNat^#(activate(V1)) 753.37/208.19 , 12: U15^#(tt(), V2) -> isNat^#(activate(V2)) 753.37/208.19 , 13: isNat^#(n__plus(V1, V2)) -> 753.37/208.19 U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.19 , 14: isNat^#(n__plus(V1, V2)) -> isNatKind^#(activate(V1)) 753.37/208.19 , 15: isNat^#(n__s(V1)) -> isNatKind^#(activate(V1)) 753.37/208.19 , 16: isNat^#(n__s(V1)) -> 753.37/208.19 U21^#(isNatKind(activate(V1)), activate(V1)) 753.37/208.19 , 17: U21^#(tt(), V1) -> isNatKind^#(activate(V1)) 753.37/208.19 , 18: U21^#(tt(), V1) -> 753.37/208.19 U22^#(isNatKind(activate(V1)), activate(V1)) 753.37/208.19 , 19: U22^#(tt(), V1) -> isNat^#(activate(V1)) 753.37/208.19 , 20: U51^#(tt(), N) -> isNatKind^#(activate(N)) 753.37/208.19 , 21: U61^#(tt(), M, N) -> isNatKind^#(activate(M)) 753.37/208.19 , 22: U61^#(tt(), M, N) -> 753.37/208.19 U62^#(isNatKind(activate(M)), activate(M), activate(N)) 753.37/208.19 , 23: U62^#(tt(), M, N) -> isNat^#(activate(N)) 753.37/208.19 , 24: U62^#(tt(), M, N) -> 753.37/208.19 U63^#(isNat(activate(N)), activate(M), activate(N)) 753.37/208.19 , 25: U63^#(tt(), M, N) -> isNatKind^#(activate(N)) } 753.37/208.19 753.37/208.19 Processor 'matrix interpretation of dimension 1' induces the 753.37/208.19 complexity certificate YES(?,O(n^1)) on application of dependency 753.37/208.19 pairs {2,15,16,20,21,22}. These cover all (indirect) predecessors 753.37/208.19 of dependency pairs {2,15,16,17,18,19,20,21,22,23,24,25}, their 753.37/208.19 number of application is equally bounded. The dependency pairs are 753.37/208.19 shifted into the weak component. 753.37/208.19 753.37/208.19 We are left with following problem, upon which TcT provides the 753.37/208.19 certificate YES(O(1),O(n^1)). 753.37/208.19 753.37/208.19 Strict DPs: 753.37/208.19 { isNatKind^#(n__plus(V1, V2)) -> 753.37/208.19 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.37/208.19 isNatKind^#(activate(V1))) 753.37/208.19 , U31^#(tt(), V2) -> c_6(isNatKind^#(activate(V2))) } 753.37/208.19 Weak DPs: 753.37/208.19 { U11^#(tt(), V1, V2) -> 753.37/208.19 U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.19 , U11^#(tt(), V1, V2) -> isNatKind^#(activate(V1)) 753.37/208.19 , U12^#(tt(), V1, V2) -> isNatKind^#(activate(V2)) 753.37/208.19 , U12^#(tt(), V1, V2) -> 753.37/208.19 U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.19 , isNatKind^#(n__s(V1)) -> c_4(isNatKind^#(activate(V1))) 753.37/208.19 , U13^#(tt(), V1, V2) -> isNatKind^#(activate(V2)) 753.37/208.19 , U13^#(tt(), V1, V2) -> 753.37/208.19 U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.19 , U14^#(tt(), V1, V2) -> U15^#(isNat(activate(V1)), activate(V2)) 753.37/208.19 , U14^#(tt(), V1, V2) -> isNat^#(activate(V1)) 753.37/208.19 , U15^#(tt(), V2) -> isNat^#(activate(V2)) 753.37/208.19 , isNat^#(n__plus(V1, V2)) -> 753.37/208.19 U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.19 , isNat^#(n__plus(V1, V2)) -> isNatKind^#(activate(V1)) 753.37/208.19 , isNat^#(n__s(V1)) -> isNatKind^#(activate(V1)) 753.37/208.19 , isNat^#(n__s(V1)) -> U21^#(isNatKind(activate(V1)), activate(V1)) 753.37/208.19 , U21^#(tt(), V1) -> isNatKind^#(activate(V1)) 753.37/208.19 , U21^#(tt(), V1) -> U22^#(isNatKind(activate(V1)), activate(V1)) 753.37/208.19 , U22^#(tt(), V1) -> isNat^#(activate(V1)) 753.37/208.19 , U51^#(tt(), N) -> isNatKind^#(activate(N)) 753.37/208.19 , U61^#(tt(), M, N) -> isNatKind^#(activate(M)) 753.37/208.19 , U61^#(tt(), M, N) -> 753.37/208.19 U62^#(isNatKind(activate(M)), activate(M), activate(N)) 753.37/208.19 , U62^#(tt(), M, N) -> isNat^#(activate(N)) 753.37/208.19 , U62^#(tt(), M, N) -> 753.37/208.19 U63^#(isNat(activate(N)), activate(M), activate(N)) 753.37/208.19 , U63^#(tt(), M, N) -> isNatKind^#(activate(N)) } 753.37/208.19 Weak Trs: 753.37/208.19 { U11(tt(), V1, V2) -> 753.37/208.19 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.19 , U12(tt(), V1, V2) -> 753.37/208.19 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.19 , isNatKind(n__0()) -> tt() 753.37/208.19 , isNatKind(n__plus(V1, V2)) -> 753.37/208.19 U31(isNatKind(activate(V1)), activate(V2)) 753.37/208.19 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.37/208.19 , activate(X) -> X 753.37/208.19 , activate(n__0()) -> 0() 753.37/208.19 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.37/208.19 , activate(n__s(X)) -> s(activate(X)) 753.37/208.19 , U13(tt(), V1, V2) -> 753.37/208.19 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.37/208.19 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.37/208.19 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.37/208.19 , isNat(n__0()) -> tt() 753.37/208.19 , isNat(n__plus(V1, V2)) -> 753.37/208.19 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.19 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.37/208.19 , U16(tt()) -> tt() 753.37/208.19 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.37/208.19 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.37/208.19 , U23(tt()) -> tt() 753.37/208.19 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.37/208.19 , U32(tt()) -> tt() 753.37/208.19 , U41(tt()) -> tt() 753.37/208.19 , s(X) -> n__s(X) 753.37/208.19 , plus(X1, X2) -> n__plus(X1, X2) 753.37/208.19 , 0() -> n__0() } 753.37/208.19 Obligation: 753.37/208.19 innermost runtime complexity 753.37/208.19 Answer: 753.37/208.19 YES(O(1),O(n^1)) 753.37/208.19 753.37/208.19 We use the processor 'matrix interpretation of dimension 1' to 753.37/208.19 orient following rules strictly. 753.37/208.19 753.37/208.19 DPs: 753.37/208.19 { 1: isNatKind^#(n__plus(V1, V2)) -> 753.37/208.19 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.37/208.19 isNatKind^#(activate(V1))) 753.37/208.19 , 7: isNatKind^#(n__s(V1)) -> c_4(isNatKind^#(activate(V1))) 753.37/208.19 , 13: isNat^#(n__plus(V1, V2)) -> 753.37/208.19 U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.37/208.19 , 14: isNat^#(n__plus(V1, V2)) -> isNatKind^#(activate(V1)) 753.37/208.19 , 15: isNat^#(n__s(V1)) -> isNatKind^#(activate(V1)) 753.37/208.19 , 17: U21^#(tt(), V1) -> isNatKind^#(activate(V1)) 753.37/208.19 , 19: U22^#(tt(), V1) -> isNat^#(activate(V1)) 753.37/208.19 , 20: U51^#(tt(), N) -> isNatKind^#(activate(N)) 753.37/208.19 , 21: U61^#(tt(), M, N) -> isNatKind^#(activate(M)) 753.37/208.19 , 22: U61^#(tt(), M, N) -> 753.37/208.19 U62^#(isNatKind(activate(M)), activate(M), activate(N)) } 753.37/208.19 753.37/208.19 Sub-proof: 753.37/208.19 ---------- 753.37/208.19 The following argument positions are usable: 753.37/208.19 Uargs(c_3) = {1, 2}, Uargs(c_4) = {1}, Uargs(c_6) = {1} 753.37/208.19 753.37/208.19 TcT has computed the following constructor-based matrix 753.37/208.19 interpretation satisfying not(EDA). 753.37/208.19 753.37/208.19 [U11](x1, x2, x3) = [0] 753.37/208.19 753.37/208.19 [tt] = [0] 753.37/208.19 753.37/208.19 [U12](x1, x2, x3) = [0] 753.37/208.19 753.37/208.19 [isNatKind](x1) = [0] 753.37/208.19 753.37/208.19 [activate](x1) = [1] x1 + [0] 753.37/208.19 753.37/208.19 [U13](x1, x2, x3) = [0] 753.37/208.19 753.37/208.19 [U14](x1, x2, x3) = [0] 753.37/208.19 753.37/208.19 [U15](x1, x2) = [0] 753.37/208.19 753.37/208.19 [isNat](x1) = [0] 753.37/208.19 753.37/208.19 [U16](x1) = [0] 753.37/208.19 753.37/208.19 [U21](x1, x2) = [0] 753.37/208.19 753.37/208.19 [U22](x1, x2) = [0] 753.37/208.19 753.37/208.19 [U23](x1) = [0] 753.37/208.19 753.37/208.19 [U31](x1, x2) = [0] 753.37/208.19 753.37/208.19 [U32](x1) = [0] 753.37/208.19 753.37/208.19 [U41](x1) = [0] 753.37/208.19 753.37/208.19 [s](x1) = [1] x1 + [4] 753.37/208.19 753.37/208.19 [plus](x1, x2) = [1] x1 + [1] x2 + [1] 753.37/208.19 753.37/208.19 [n__0] = [0] 753.37/208.19 753.37/208.19 [n__plus](x1, x2) = [1] x1 + [1] x2 + [1] 753.37/208.19 753.37/208.19 [n__s](x1) = [1] x1 + [4] 753.37/208.19 753.37/208.19 [0] = [0] 753.37/208.19 753.37/208.19 [U11^#](x1, x2, x3) = [1] x2 + [1] x3 + [0] 753.37/208.19 753.37/208.19 [U12^#](x1, x2, x3) = [1] x2 + [1] x3 + [0] 753.37/208.19 753.37/208.19 [isNatKind^#](x1) = [1] x1 + [0] 753.37/208.19 753.37/208.19 [U13^#](x1, x2, x3) = [1] x2 + [1] x3 + [0] 753.37/208.19 753.37/208.19 [U31^#](x1, x2) = [1] x2 + [0] 753.37/208.19 753.37/208.19 [U14^#](x1, x2, x3) = [1] x2 + [1] x3 + [0] 753.37/208.19 753.37/208.19 [U15^#](x1, x2) = [1] x2 + [0] 753.37/208.19 753.37/208.19 [isNat^#](x1) = [1] x1 + [0] 753.37/208.19 753.37/208.19 [U21^#](x1, x2) = [1] x2 + [4] 753.37/208.19 753.37/208.19 [U22^#](x1, x2) = [1] x2 + [4] 753.37/208.19 753.37/208.19 [U51^#](x1, x2) = [7] x1 + [7] x2 + [7] 753.37/208.19 753.37/208.19 [U61^#](x1, x2, x3) = [7] x1 + [7] x2 + [7] x3 + [1] 753.37/208.19 753.37/208.19 [U62^#](x1, x2, x3) = [4] x3 + [0] 753.37/208.19 753.37/208.19 [U63^#](x1, x2, x3) = [1] x3 + [0] 753.37/208.19 753.37/208.19 [c_3](x1, x2) = [1] x1 + [1] x2 + [0] 753.37/208.19 753.37/208.19 [c_4](x1) = [1] x1 + [3] 753.37/208.19 753.37/208.19 [c_6](x1) = [1] x1 + [0] 753.37/208.19 753.37/208.19 The order satisfies the following ordering constraints: 753.37/208.19 753.37/208.19 [U11(tt(), V1, V2)] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [U12(isNatKind(activate(V1)), activate(V1), activate(V2))] 753.37/208.19 753.37/208.19 [U12(tt(), V1, V2)] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [U13(isNatKind(activate(V2)), activate(V1), activate(V2))] 753.37/208.19 753.37/208.19 [isNatKind(n__0())] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [tt()] 753.37/208.19 753.37/208.19 [isNatKind(n__plus(V1, V2))] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [U31(isNatKind(activate(V1)), activate(V2))] 753.37/208.19 753.37/208.19 [isNatKind(n__s(V1))] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [U41(isNatKind(activate(V1)))] 753.37/208.19 753.37/208.19 [activate(X)] = [1] X + [0] 753.37/208.19 >= [1] X + [0] 753.37/208.19 = [X] 753.37/208.19 753.37/208.19 [activate(n__0())] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [0()] 753.37/208.19 753.37/208.19 [activate(n__plus(X1, X2))] = [1] X1 + [1] X2 + [1] 753.37/208.19 >= [1] X1 + [1] X2 + [1] 753.37/208.19 = [plus(activate(X1), activate(X2))] 753.37/208.19 753.37/208.19 [activate(n__s(X))] = [1] X + [4] 753.37/208.19 >= [1] X + [4] 753.37/208.19 = [s(activate(X))] 753.37/208.19 753.37/208.19 [U13(tt(), V1, V2)] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [U14(isNatKind(activate(V2)), activate(V1), activate(V2))] 753.37/208.19 753.37/208.19 [U14(tt(), V1, V2)] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [U15(isNat(activate(V1)), activate(V2))] 753.37/208.19 753.37/208.19 [U15(tt(), V2)] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [U16(isNat(activate(V2)))] 753.37/208.19 753.37/208.19 [isNat(n__0())] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [tt()] 753.37/208.19 753.37/208.19 [isNat(n__plus(V1, V2))] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [U11(isNatKind(activate(V1)), activate(V1), activate(V2))] 753.37/208.19 753.37/208.19 [isNat(n__s(V1))] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [U21(isNatKind(activate(V1)), activate(V1))] 753.37/208.19 753.37/208.19 [U16(tt())] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [tt()] 753.37/208.19 753.37/208.19 [U21(tt(), V1)] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [U22(isNatKind(activate(V1)), activate(V1))] 753.37/208.19 753.37/208.19 [U22(tt(), V1)] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [U23(isNat(activate(V1)))] 753.37/208.19 753.37/208.19 [U23(tt())] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [tt()] 753.37/208.19 753.37/208.19 [U31(tt(), V2)] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [U32(isNatKind(activate(V2)))] 753.37/208.19 753.37/208.19 [U32(tt())] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [tt()] 753.37/208.19 753.37/208.19 [U41(tt())] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [tt()] 753.37/208.19 753.37/208.19 [s(X)] = [1] X + [4] 753.37/208.19 >= [1] X + [4] 753.37/208.19 = [n__s(X)] 753.37/208.19 753.37/208.19 [plus(X1, X2)] = [1] X1 + [1] X2 + [1] 753.37/208.19 >= [1] X1 + [1] X2 + [1] 753.37/208.19 = [n__plus(X1, X2)] 753.37/208.19 753.37/208.19 [0()] = [0] 753.37/208.19 >= [0] 753.37/208.19 = [n__0()] 753.37/208.19 753.37/208.19 [U11^#(tt(), V1, V2)] = [1] V1 + [1] V2 + [0] 753.37/208.19 >= [1] V1 + [1] V2 + [0] 753.37/208.19 = [U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))] 753.37/208.19 753.37/208.19 [U11^#(tt(), V1, V2)] = [1] V1 + [1] V2 + [0] 753.37/208.19 >= [1] V1 + [0] 753.37/208.19 = [isNatKind^#(activate(V1))] 753.37/208.19 753.37/208.19 [U12^#(tt(), V1, V2)] = [1] V1 + [1] V2 + [0] 753.37/208.19 >= [1] V2 + [0] 753.37/208.19 = [isNatKind^#(activate(V2))] 753.37/208.19 753.37/208.19 [U12^#(tt(), V1, V2)] = [1] V1 + [1] V2 + [0] 753.37/208.19 >= [1] V1 + [1] V2 + [0] 753.37/208.19 = [U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))] 753.37/208.19 753.37/208.19 [isNatKind^#(n__plus(V1, V2))] = [1] V1 + [1] V2 + [1] 753.37/208.19 > [1] V1 + [1] V2 + [0] 753.37/208.19 = [c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.37/208.19 isNatKind^#(activate(V1)))] 753.37/208.19 753.37/208.19 [isNatKind^#(n__s(V1))] = [1] V1 + [4] 753.37/208.19 > [1] V1 + [3] 753.37/208.19 = [c_4(isNatKind^#(activate(V1)))] 753.37/208.19 753.37/208.19 [U13^#(tt(), V1, V2)] = [1] V1 + [1] V2 + [0] 753.37/208.19 >= [1] V2 + [0] 753.37/208.19 = [isNatKind^#(activate(V2))] 753.37/208.19 753.37/208.19 [U13^#(tt(), V1, V2)] = [1] V1 + [1] V2 + [0] 753.37/208.19 >= [1] V1 + [1] V2 + [0] 753.37/208.19 = [U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))] 753.37/208.19 753.37/208.19 [U31^#(tt(), V2)] = [1] V2 + [0] 753.37/208.19 >= [1] V2 + [0] 753.37/208.19 = [c_6(isNatKind^#(activate(V2)))] 753.37/208.19 753.37/208.19 [U14^#(tt(), V1, V2)] = [1] V1 + [1] V2 + [0] 753.37/208.19 >= [1] V2 + [0] 753.37/208.19 = [U15^#(isNat(activate(V1)), activate(V2))] 753.37/208.19 753.37/208.19 [U14^#(tt(), V1, V2)] = [1] V1 + [1] V2 + [0] 753.37/208.19 >= [1] V1 + [0] 753.37/208.19 = [isNat^#(activate(V1))] 753.37/208.19 753.37/208.19 [U15^#(tt(), V2)] = [1] V2 + [0] 753.37/208.19 >= [1] V2 + [0] 753.37/208.19 = [isNat^#(activate(V2))] 753.37/208.19 753.37/208.19 [isNat^#(n__plus(V1, V2))] = [1] V1 + [1] V2 + [1] 753.37/208.19 > [1] V1 + [1] V2 + [0] 753.37/208.19 = [U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))] 753.37/208.19 753.37/208.19 [isNat^#(n__plus(V1, V2))] = [1] V1 + [1] V2 + [1] 753.37/208.19 > [1] V1 + [0] 753.37/208.19 = [isNatKind^#(activate(V1))] 753.37/208.19 753.64/208.20 [isNat^#(n__s(V1))] = [1] V1 + [4] 753.64/208.20 > [1] V1 + [0] 753.64/208.20 = [isNatKind^#(activate(V1))] 753.64/208.20 753.64/208.20 [isNat^#(n__s(V1))] = [1] V1 + [4] 753.64/208.20 >= [1] V1 + [4] 753.64/208.20 = [U21^#(isNatKind(activate(V1)), activate(V1))] 753.64/208.20 753.64/208.20 [U21^#(tt(), V1)] = [1] V1 + [4] 753.64/208.20 > [1] V1 + [0] 753.64/208.20 = [isNatKind^#(activate(V1))] 753.64/208.20 753.64/208.20 [U21^#(tt(), V1)] = [1] V1 + [4] 753.64/208.20 >= [1] V1 + [4] 753.64/208.20 = [U22^#(isNatKind(activate(V1)), activate(V1))] 753.64/208.20 753.64/208.20 [U22^#(tt(), V1)] = [1] V1 + [4] 753.64/208.20 > [1] V1 + [0] 753.64/208.20 = [isNat^#(activate(V1))] 753.64/208.20 753.64/208.20 [U51^#(tt(), N)] = [7] N + [7] 753.64/208.20 > [1] N + [0] 753.64/208.20 = [isNatKind^#(activate(N))] 753.64/208.20 753.64/208.20 [U61^#(tt(), M, N)] = [7] N + [7] M + [1] 753.64/208.20 > [1] M + [0] 753.64/208.20 = [isNatKind^#(activate(M))] 753.64/208.20 753.64/208.20 [U61^#(tt(), M, N)] = [7] N + [7] M + [1] 753.64/208.20 > [4] N + [0] 753.64/208.20 = [U62^#(isNatKind(activate(M)), activate(M), activate(N))] 753.64/208.20 753.64/208.20 [U62^#(tt(), M, N)] = [4] N + [0] 753.64/208.20 >= [1] N + [0] 753.64/208.20 = [isNat^#(activate(N))] 753.64/208.20 753.64/208.20 [U62^#(tt(), M, N)] = [4] N + [0] 753.64/208.20 >= [1] N + [0] 753.64/208.20 = [U63^#(isNat(activate(N)), activate(M), activate(N))] 753.64/208.20 753.64/208.20 [U63^#(tt(), M, N)] = [1] N + [0] 753.64/208.20 >= [1] N + [0] 753.64/208.20 = [isNatKind^#(activate(N))] 753.64/208.20 753.64/208.20 753.64/208.20 We return to the main proof. Consider the set of all dependency 753.64/208.20 pairs 753.64/208.20 753.64/208.20 : 753.64/208.20 { 1: isNatKind^#(n__plus(V1, V2)) -> 753.64/208.20 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.64/208.20 isNatKind^#(activate(V1))) 753.64/208.20 , 2: U31^#(tt(), V2) -> c_6(isNatKind^#(activate(V2))) 753.64/208.20 , 3: U11^#(tt(), V1, V2) -> 753.64/208.20 U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.64/208.20 , 4: U11^#(tt(), V1, V2) -> isNatKind^#(activate(V1)) 753.64/208.20 , 5: U12^#(tt(), V1, V2) -> isNatKind^#(activate(V2)) 753.64/208.20 , 6: U12^#(tt(), V1, V2) -> 753.64/208.20 U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.64/208.20 , 7: isNatKind^#(n__s(V1)) -> c_4(isNatKind^#(activate(V1))) 753.64/208.20 , 8: U13^#(tt(), V1, V2) -> isNatKind^#(activate(V2)) 753.64/208.20 , 9: U13^#(tt(), V1, V2) -> 753.64/208.20 U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.64/208.20 , 10: U14^#(tt(), V1, V2) -> 753.64/208.20 U15^#(isNat(activate(V1)), activate(V2)) 753.64/208.20 , 11: U14^#(tt(), V1, V2) -> isNat^#(activate(V1)) 753.64/208.20 , 12: U15^#(tt(), V2) -> isNat^#(activate(V2)) 753.64/208.20 , 13: isNat^#(n__plus(V1, V2)) -> 753.64/208.20 U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.64/208.20 , 14: isNat^#(n__plus(V1, V2)) -> isNatKind^#(activate(V1)) 753.64/208.20 , 15: isNat^#(n__s(V1)) -> isNatKind^#(activate(V1)) 753.64/208.20 , 16: isNat^#(n__s(V1)) -> 753.64/208.20 U21^#(isNatKind(activate(V1)), activate(V1)) 753.64/208.20 , 17: U21^#(tt(), V1) -> isNatKind^#(activate(V1)) 753.64/208.20 , 18: U21^#(tt(), V1) -> 753.64/208.20 U22^#(isNatKind(activate(V1)), activate(V1)) 753.64/208.20 , 19: U22^#(tt(), V1) -> isNat^#(activate(V1)) 753.64/208.20 , 20: U51^#(tt(), N) -> isNatKind^#(activate(N)) 753.64/208.20 , 21: U61^#(tt(), M, N) -> isNatKind^#(activate(M)) 753.64/208.20 , 22: U61^#(tt(), M, N) -> 753.64/208.20 U62^#(isNatKind(activate(M)), activate(M), activate(N)) 753.64/208.20 , 23: U62^#(tt(), M, N) -> isNat^#(activate(N)) 753.64/208.20 , 24: U62^#(tt(), M, N) -> 753.64/208.20 U63^#(isNat(activate(N)), activate(M), activate(N)) 753.64/208.20 , 25: U63^#(tt(), M, N) -> isNatKind^#(activate(N)) } 753.64/208.20 753.64/208.20 Processor 'matrix interpretation of dimension 1' induces the 753.64/208.20 complexity certificate YES(?,O(n^1)) on application of dependency 753.64/208.20 pairs {1,7,13,14,15,17,19,20,21,22}. These cover all (indirect) 753.64/208.20 predecessors of dependency pairs 753.64/208.20 {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25}, 753.64/208.20 their number of application is equally bounded. The dependency 753.64/208.20 pairs are shifted into the weak component. 753.64/208.20 753.64/208.20 We are left with following problem, upon which TcT provides the 753.64/208.20 certificate YES(O(1),O(1)). 753.64/208.20 753.64/208.20 Weak DPs: 753.64/208.20 { U11^#(tt(), V1, V2) -> 753.64/208.20 U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.64/208.20 , U11^#(tt(), V1, V2) -> isNatKind^#(activate(V1)) 753.64/208.20 , U12^#(tt(), V1, V2) -> isNatKind^#(activate(V2)) 753.64/208.20 , U12^#(tt(), V1, V2) -> 753.64/208.20 U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.64/208.20 , isNatKind^#(n__plus(V1, V2)) -> 753.64/208.20 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.64/208.20 isNatKind^#(activate(V1))) 753.64/208.20 , isNatKind^#(n__s(V1)) -> c_4(isNatKind^#(activate(V1))) 753.64/208.20 , U13^#(tt(), V1, V2) -> isNatKind^#(activate(V2)) 753.64/208.20 , U13^#(tt(), V1, V2) -> 753.64/208.20 U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.64/208.20 , U31^#(tt(), V2) -> c_6(isNatKind^#(activate(V2))) 753.64/208.20 , U14^#(tt(), V1, V2) -> U15^#(isNat(activate(V1)), activate(V2)) 753.64/208.20 , U14^#(tt(), V1, V2) -> isNat^#(activate(V1)) 753.64/208.20 , U15^#(tt(), V2) -> isNat^#(activate(V2)) 753.64/208.20 , isNat^#(n__plus(V1, V2)) -> 753.64/208.20 U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.64/208.20 , isNat^#(n__plus(V1, V2)) -> isNatKind^#(activate(V1)) 753.64/208.20 , isNat^#(n__s(V1)) -> isNatKind^#(activate(V1)) 753.64/208.20 , isNat^#(n__s(V1)) -> U21^#(isNatKind(activate(V1)), activate(V1)) 753.64/208.20 , U21^#(tt(), V1) -> isNatKind^#(activate(V1)) 753.64/208.20 , U21^#(tt(), V1) -> U22^#(isNatKind(activate(V1)), activate(V1)) 753.64/208.20 , U22^#(tt(), V1) -> isNat^#(activate(V1)) 753.64/208.20 , U51^#(tt(), N) -> isNatKind^#(activate(N)) 753.64/208.20 , U61^#(tt(), M, N) -> isNatKind^#(activate(M)) 753.64/208.20 , U61^#(tt(), M, N) -> 753.64/208.20 U62^#(isNatKind(activate(M)), activate(M), activate(N)) 753.64/208.20 , U62^#(tt(), M, N) -> isNat^#(activate(N)) 753.64/208.20 , U62^#(tt(), M, N) -> 753.64/208.20 U63^#(isNat(activate(N)), activate(M), activate(N)) 753.64/208.20 , U63^#(tt(), M, N) -> isNatKind^#(activate(N)) } 753.64/208.20 Weak Trs: 753.64/208.20 { U11(tt(), V1, V2) -> 753.64/208.20 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.64/208.20 , U12(tt(), V1, V2) -> 753.64/208.20 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.64/208.20 , isNatKind(n__0()) -> tt() 753.64/208.20 , isNatKind(n__plus(V1, V2)) -> 753.64/208.20 U31(isNatKind(activate(V1)), activate(V2)) 753.64/208.20 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.64/208.20 , activate(X) -> X 753.64/208.20 , activate(n__0()) -> 0() 753.64/208.20 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.64/208.20 , activate(n__s(X)) -> s(activate(X)) 753.64/208.20 , U13(tt(), V1, V2) -> 753.64/208.20 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.64/208.20 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.64/208.20 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.64/208.20 , isNat(n__0()) -> tt() 753.64/208.20 , isNat(n__plus(V1, V2)) -> 753.64/208.20 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.64/208.20 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.64/208.20 , U16(tt()) -> tt() 753.64/208.20 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.64/208.20 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.64/208.20 , U23(tt()) -> tt() 753.64/208.20 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.64/208.20 , U32(tt()) -> tt() 753.64/208.20 , U41(tt()) -> tt() 753.64/208.20 , s(X) -> n__s(X) 753.64/208.20 , plus(X1, X2) -> n__plus(X1, X2) 753.64/208.20 , 0() -> n__0() } 753.64/208.20 Obligation: 753.64/208.20 innermost runtime complexity 753.64/208.20 Answer: 753.64/208.20 YES(O(1),O(1)) 753.64/208.20 753.64/208.20 The following weak DPs constitute a sub-graph of the DG that is 753.64/208.20 closed under successors. The DPs are removed. 753.64/208.20 753.64/208.20 { U11^#(tt(), V1, V2) -> 753.64/208.20 U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.64/208.20 , U11^#(tt(), V1, V2) -> isNatKind^#(activate(V1)) 753.64/208.20 , U12^#(tt(), V1, V2) -> isNatKind^#(activate(V2)) 753.64/208.20 , U12^#(tt(), V1, V2) -> 753.64/208.20 U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.64/208.20 , isNatKind^#(n__plus(V1, V2)) -> 753.64/208.20 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.64/208.20 isNatKind^#(activate(V1))) 753.64/208.20 , isNatKind^#(n__s(V1)) -> c_4(isNatKind^#(activate(V1))) 753.64/208.20 , U13^#(tt(), V1, V2) -> isNatKind^#(activate(V2)) 753.64/208.20 , U13^#(tt(), V1, V2) -> 753.64/208.20 U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.64/208.20 , U31^#(tt(), V2) -> c_6(isNatKind^#(activate(V2))) 753.64/208.20 , U14^#(tt(), V1, V2) -> U15^#(isNat(activate(V1)), activate(V2)) 753.64/208.20 , U14^#(tt(), V1, V2) -> isNat^#(activate(V1)) 753.64/208.20 , U15^#(tt(), V2) -> isNat^#(activate(V2)) 753.64/208.20 , isNat^#(n__plus(V1, V2)) -> 753.64/208.20 U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.64/208.20 , isNat^#(n__plus(V1, V2)) -> isNatKind^#(activate(V1)) 753.64/208.20 , isNat^#(n__s(V1)) -> isNatKind^#(activate(V1)) 753.64/208.20 , isNat^#(n__s(V1)) -> U21^#(isNatKind(activate(V1)), activate(V1)) 753.64/208.20 , U21^#(tt(), V1) -> isNatKind^#(activate(V1)) 753.64/208.20 , U21^#(tt(), V1) -> U22^#(isNatKind(activate(V1)), activate(V1)) 753.64/208.20 , U22^#(tt(), V1) -> isNat^#(activate(V1)) 753.64/208.20 , U51^#(tt(), N) -> isNatKind^#(activate(N)) 753.64/208.20 , U61^#(tt(), M, N) -> isNatKind^#(activate(M)) 753.64/208.20 , U61^#(tt(), M, N) -> 753.64/208.20 U62^#(isNatKind(activate(M)), activate(M), activate(N)) 753.64/208.20 , U62^#(tt(), M, N) -> isNat^#(activate(N)) 753.64/208.20 , U62^#(tt(), M, N) -> 753.64/208.20 U63^#(isNat(activate(N)), activate(M), activate(N)) 753.64/208.20 , U63^#(tt(), M, N) -> isNatKind^#(activate(N)) } 753.64/208.20 753.64/208.20 We are left with following problem, upon which TcT provides the 753.64/208.20 certificate YES(O(1),O(1)). 753.64/208.20 753.64/208.20 Weak Trs: 753.64/208.20 { U11(tt(), V1, V2) -> 753.64/208.20 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.64/208.20 , U12(tt(), V1, V2) -> 753.64/208.20 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.64/208.20 , isNatKind(n__0()) -> tt() 753.64/208.20 , isNatKind(n__plus(V1, V2)) -> 753.64/208.20 U31(isNatKind(activate(V1)), activate(V2)) 753.64/208.20 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.64/208.20 , activate(X) -> X 753.64/208.20 , activate(n__0()) -> 0() 753.64/208.20 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.64/208.20 , activate(n__s(X)) -> s(activate(X)) 753.64/208.20 , U13(tt(), V1, V2) -> 753.64/208.20 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.64/208.20 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.64/208.20 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.64/208.20 , isNat(n__0()) -> tt() 753.64/208.20 , isNat(n__plus(V1, V2)) -> 753.64/208.20 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.64/208.20 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.64/208.20 , U16(tt()) -> tt() 753.64/208.20 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.64/208.20 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.64/208.20 , U23(tt()) -> tt() 753.64/208.20 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.64/208.20 , U32(tt()) -> tt() 753.64/208.20 , U41(tt()) -> tt() 753.64/208.20 , s(X) -> n__s(X) 753.64/208.20 , plus(X1, X2) -> n__plus(X1, X2) 753.64/208.20 , 0() -> n__0() } 753.64/208.20 Obligation: 753.64/208.20 innermost runtime complexity 753.64/208.20 Answer: 753.64/208.20 YES(O(1),O(1)) 753.64/208.20 753.64/208.20 No rule is usable, rules are removed from the input problem. 753.64/208.20 753.64/208.20 We are left with following problem, upon which TcT provides the 753.64/208.20 certificate YES(O(1),O(1)). 753.64/208.20 753.64/208.20 Rules: Empty 753.64/208.20 Obligation: 753.64/208.20 innermost runtime complexity 753.64/208.20 Answer: 753.64/208.20 YES(O(1),O(1)) 753.64/208.20 753.64/208.20 Empty rules are trivially bounded 753.64/208.20 753.64/208.20 S) We are left with following problem, upon which TcT provides the 753.64/208.20 certificate YES(O(1),O(1)). 753.64/208.20 753.64/208.20 Strict DPs: { U63^#(tt(), M, N) -> c_15(isNatKind^#(activate(N))) } 753.64/208.20 Weak DPs: 753.64/208.20 { U11^#(tt(), V1, V2) -> 753.64/208.20 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.64/208.20 isNatKind^#(activate(V1))) 753.64/208.20 , U12^#(tt(), V1, V2) -> 753.64/208.20 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.64/208.20 isNatKind^#(activate(V2))) 753.64/208.20 , isNatKind^#(n__plus(V1, V2)) -> 753.64/208.20 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.64/208.20 isNatKind^#(activate(V1))) 753.64/208.20 , isNatKind^#(n__s(V1)) -> c_4(isNatKind^#(activate(V1))) 753.64/208.20 , U13^#(tt(), V1, V2) -> 753.64/208.20 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.64/208.20 isNatKind^#(activate(V2))) 753.64/208.20 , U31^#(tt(), V2) -> c_6(isNatKind^#(activate(V2))) 753.64/208.21 , U14^#(tt(), V1, V2) -> 753.64/208.21 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.64/208.21 isNat^#(activate(V1))) 753.64/208.21 , U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.64/208.21 , isNat^#(n__plus(V1, V2)) -> 753.64/208.21 c_9(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.64/208.21 isNatKind^#(activate(V1))) 753.64/208.21 , isNat^#(n__s(V1)) -> 753.64/208.21 c_10(U21^#(isNatKind(activate(V1)), activate(V1)), 753.64/208.21 isNatKind^#(activate(V1))) 753.64/208.21 , U21^#(tt(), V1) -> 753.64/208.21 c_11(U22^#(isNatKind(activate(V1)), activate(V1)), 753.64/208.21 isNatKind^#(activate(V1))) 753.64/208.21 , U22^#(tt(), V1) -> c_12(isNat^#(activate(V1))) 753.64/208.21 , U51^#(tt(), N) -> c_16(isNatKind^#(activate(N))) 753.64/208.21 , U61^#(tt(), M, N) -> 753.64/208.21 c_13(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.64/208.21 isNatKind^#(activate(M))) 753.64/208.21 , U62^#(tt(), M, N) -> 753.64/208.21 c_14(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.64/208.21 isNat^#(activate(N))) } 753.64/208.21 Weak Trs: 753.64/208.21 { U11(tt(), V1, V2) -> 753.64/208.21 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.64/208.21 , U12(tt(), V1, V2) -> 753.64/208.21 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.64/208.21 , isNatKind(n__0()) -> tt() 753.64/208.21 , isNatKind(n__plus(V1, V2)) -> 753.64/208.21 U31(isNatKind(activate(V1)), activate(V2)) 753.64/208.21 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.64/208.21 , activate(X) -> X 753.64/208.21 , activate(n__0()) -> 0() 753.64/208.21 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.64/208.21 , activate(n__s(X)) -> s(activate(X)) 753.64/208.21 , U13(tt(), V1, V2) -> 753.64/208.21 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.64/208.21 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.64/208.21 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.64/208.21 , isNat(n__0()) -> tt() 753.64/208.21 , isNat(n__plus(V1, V2)) -> 753.64/208.21 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.64/208.21 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.64/208.21 , U16(tt()) -> tt() 753.64/208.21 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.64/208.21 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.64/208.21 , U23(tt()) -> tt() 753.64/208.21 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.64/208.21 , U32(tt()) -> tt() 753.64/208.21 , U41(tt()) -> tt() 753.64/208.21 , s(X) -> n__s(X) 753.64/208.21 , plus(X1, X2) -> n__plus(X1, X2) 753.64/208.21 , 0() -> n__0() } 753.64/208.21 Obligation: 753.64/208.21 innermost runtime complexity 753.64/208.21 Answer: 753.64/208.21 YES(O(1),O(1)) 753.64/208.21 753.64/208.21 The following weak DPs constitute a sub-graph of the DG that is 753.64/208.21 closed under successors. The DPs are removed. 753.64/208.21 753.64/208.21 { U11^#(tt(), V1, V2) -> 753.64/208.21 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.64/208.21 isNatKind^#(activate(V1))) 753.64/208.21 , U12^#(tt(), V1, V2) -> 753.64/208.21 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.64/208.21 isNatKind^#(activate(V2))) 753.64/208.21 , isNatKind^#(n__plus(V1, V2)) -> 753.64/208.21 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.64/208.21 isNatKind^#(activate(V1))) 753.64/208.21 , isNatKind^#(n__s(V1)) -> c_4(isNatKind^#(activate(V1))) 753.64/208.21 , U13^#(tt(), V1, V2) -> 753.64/208.21 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.64/208.21 isNatKind^#(activate(V2))) 753.64/208.21 , U31^#(tt(), V2) -> c_6(isNatKind^#(activate(V2))) 753.64/208.21 , U14^#(tt(), V1, V2) -> 753.64/208.21 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.64/208.21 isNat^#(activate(V1))) 753.64/208.21 , U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.64/208.21 , isNat^#(n__plus(V1, V2)) -> 753.64/208.21 c_9(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.64/208.21 isNatKind^#(activate(V1))) 753.64/208.21 , isNat^#(n__s(V1)) -> 753.64/208.21 c_10(U21^#(isNatKind(activate(V1)), activate(V1)), 753.64/208.21 isNatKind^#(activate(V1))) 753.64/208.21 , U21^#(tt(), V1) -> 753.64/208.21 c_11(U22^#(isNatKind(activate(V1)), activate(V1)), 753.64/208.21 isNatKind^#(activate(V1))) 753.64/208.21 , U22^#(tt(), V1) -> c_12(isNat^#(activate(V1))) 753.64/208.21 , U51^#(tt(), N) -> c_16(isNatKind^#(activate(N))) } 753.64/208.21 753.64/208.21 We are left with following problem, upon which TcT provides the 753.64/208.21 certificate YES(O(1),O(1)). 753.64/208.21 753.64/208.21 Strict DPs: { U63^#(tt(), M, N) -> c_15(isNatKind^#(activate(N))) } 753.64/208.21 Weak DPs: 753.64/208.21 { U61^#(tt(), M, N) -> 753.64/208.21 c_13(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.64/208.21 isNatKind^#(activate(M))) 753.64/208.21 , U62^#(tt(), M, N) -> 753.64/208.21 c_14(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.64/208.21 isNat^#(activate(N))) } 753.64/208.21 Weak Trs: 753.64/208.21 { U11(tt(), V1, V2) -> 753.64/208.21 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.64/208.21 , U12(tt(), V1, V2) -> 753.64/208.21 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.64/208.21 , isNatKind(n__0()) -> tt() 753.64/208.21 , isNatKind(n__plus(V1, V2)) -> 753.64/208.21 U31(isNatKind(activate(V1)), activate(V2)) 753.64/208.21 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.64/208.21 , activate(X) -> X 753.64/208.21 , activate(n__0()) -> 0() 753.64/208.21 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.64/208.21 , activate(n__s(X)) -> s(activate(X)) 753.64/208.21 , U13(tt(), V1, V2) -> 753.64/208.21 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.64/208.21 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.64/208.21 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.64/208.21 , isNat(n__0()) -> tt() 753.64/208.21 , isNat(n__plus(V1, V2)) -> 753.64/208.21 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.64/208.21 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.64/208.21 , U16(tt()) -> tt() 753.64/208.21 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.64/208.21 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.64/208.21 , U23(tt()) -> tt() 753.64/208.21 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.64/208.21 , U32(tt()) -> tt() 753.64/208.21 , U41(tt()) -> tt() 753.64/208.21 , s(X) -> n__s(X) 753.64/208.21 , plus(X1, X2) -> n__plus(X1, X2) 753.64/208.21 , 0() -> n__0() } 753.64/208.21 Obligation: 753.64/208.21 innermost runtime complexity 753.64/208.21 Answer: 753.64/208.21 YES(O(1),O(1)) 753.64/208.21 753.64/208.21 Due to missing edges in the dependency-graph, the right-hand sides 753.64/208.21 of following rules could be simplified: 753.64/208.21 753.64/208.21 { U61^#(tt(), M, N) -> 753.64/208.21 c_13(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.64/208.21 isNatKind^#(activate(M))) 753.64/208.21 , U62^#(tt(), M, N) -> 753.64/208.21 c_14(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.64/208.21 isNat^#(activate(N))) 753.64/208.21 , U63^#(tt(), M, N) -> c_15(isNatKind^#(activate(N))) } 753.64/208.21 753.64/208.21 We are left with following problem, upon which TcT provides the 753.64/208.21 certificate YES(O(1),O(1)). 753.64/208.21 753.64/208.21 Strict DPs: { U63^#(tt(), M, N) -> c_1() } 753.64/208.21 Weak DPs: 753.64/208.21 { U61^#(tt(), M, N) -> 753.64/208.21 c_2(U62^#(isNatKind(activate(M)), activate(M), activate(N))) 753.64/208.21 , U62^#(tt(), M, N) -> 753.64/208.21 c_3(U63^#(isNat(activate(N)), activate(M), activate(N))) } 753.64/208.21 Weak Trs: 753.64/208.21 { U11(tt(), V1, V2) -> 753.64/208.21 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.64/208.21 , U12(tt(), V1, V2) -> 753.64/208.21 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.64/208.21 , isNatKind(n__0()) -> tt() 753.64/208.21 , isNatKind(n__plus(V1, V2)) -> 753.64/208.21 U31(isNatKind(activate(V1)), activate(V2)) 753.64/208.21 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.64/208.21 , activate(X) -> X 753.64/208.21 , activate(n__0()) -> 0() 753.64/208.21 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.64/208.21 , activate(n__s(X)) -> s(activate(X)) 753.64/208.21 , U13(tt(), V1, V2) -> 753.64/208.21 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.64/208.21 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.64/208.21 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.64/208.21 , isNat(n__0()) -> tt() 753.64/208.21 , isNat(n__plus(V1, V2)) -> 753.64/208.21 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.64/208.21 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.64/208.21 , U16(tt()) -> tt() 753.64/208.21 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.64/208.21 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.64/208.21 , U23(tt()) -> tt() 753.64/208.21 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.64/208.21 , U32(tt()) -> tt() 753.64/208.21 , U41(tt()) -> tt() 753.64/208.21 , s(X) -> n__s(X) 753.64/208.21 , plus(X1, X2) -> n__plus(X1, X2) 753.64/208.21 , 0() -> n__0() } 753.64/208.21 Obligation: 753.64/208.21 innermost runtime complexity 753.64/208.21 Answer: 753.64/208.21 YES(O(1),O(1)) 753.64/208.21 753.64/208.21 The dependency graph contains no loops, we remove all dependency 753.64/208.21 pairs. 753.64/208.21 753.64/208.21 We are left with following problem, upon which TcT provides the 753.64/208.21 certificate YES(O(1),O(1)). 753.64/208.21 753.64/208.21 Weak Trs: 753.64/208.21 { U11(tt(), V1, V2) -> 753.64/208.21 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.64/208.21 , U12(tt(), V1, V2) -> 753.64/208.21 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.64/208.21 , isNatKind(n__0()) -> tt() 753.64/208.21 , isNatKind(n__plus(V1, V2)) -> 753.64/208.21 U31(isNatKind(activate(V1)), activate(V2)) 753.64/208.21 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.64/208.21 , activate(X) -> X 753.64/208.21 , activate(n__0()) -> 0() 753.64/208.21 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.64/208.21 , activate(n__s(X)) -> s(activate(X)) 753.64/208.21 , U13(tt(), V1, V2) -> 753.64/208.21 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.64/208.21 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.64/208.21 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.64/208.21 , isNat(n__0()) -> tt() 753.64/208.21 , isNat(n__plus(V1, V2)) -> 753.64/208.21 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.64/208.21 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.64/208.21 , U16(tt()) -> tt() 753.64/208.21 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.64/208.21 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.64/208.21 , U23(tt()) -> tt() 753.64/208.21 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.64/208.21 , U32(tt()) -> tt() 753.64/208.21 , U41(tt()) -> tt() 753.64/208.21 , s(X) -> n__s(X) 753.64/208.21 , plus(X1, X2) -> n__plus(X1, X2) 753.64/208.21 , 0() -> n__0() } 753.64/208.21 Obligation: 753.64/208.21 innermost runtime complexity 753.64/208.21 Answer: 753.64/208.21 YES(O(1),O(1)) 753.64/208.21 753.64/208.21 No rule is usable, rules are removed from the input problem. 753.64/208.21 753.64/208.21 We are left with following problem, upon which TcT provides the 753.64/208.21 certificate YES(O(1),O(1)). 753.64/208.21 753.64/208.21 Rules: Empty 753.64/208.21 Obligation: 753.64/208.21 innermost runtime complexity 753.64/208.21 Answer: 753.64/208.21 YES(O(1),O(1)) 753.64/208.21 753.64/208.21 Empty rules are trivially bounded 753.64/208.21 753.64/208.21 753.64/208.21 S) We are left with following problem, upon which TcT provides the 753.64/208.21 certificate YES(O(1),O(n^1)). 753.64/208.21 753.64/208.21 Strict DPs: 753.64/208.21 { U11^#(tt(), V1, V2) -> 753.64/208.21 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.64/208.21 isNatKind^#(activate(V1))) 753.64/208.21 , U12^#(tt(), V1, V2) -> 753.64/208.21 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.64/208.21 isNatKind^#(activate(V2))) 753.64/208.21 , U13^#(tt(), V1, V2) -> 753.64/208.21 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.64/208.21 isNatKind^#(activate(V2))) 753.64/208.21 , U14^#(tt(), V1, V2) -> 753.64/208.21 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.64/208.21 isNat^#(activate(V1))) 753.64/208.21 , U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.64/208.21 , isNat^#(n__plus(V1, V2)) -> 753.64/208.21 c_9(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.64/208.21 isNatKind^#(activate(V1))) 753.64/208.21 , isNat^#(n__s(V1)) -> 753.64/208.21 c_10(U21^#(isNatKind(activate(V1)), activate(V1)), 753.64/208.21 isNatKind^#(activate(V1))) 753.64/208.21 , U21^#(tt(), V1) -> 753.64/208.21 c_11(U22^#(isNatKind(activate(V1)), activate(V1)), 753.64/208.21 isNatKind^#(activate(V1))) 753.64/208.21 , U22^#(tt(), V1) -> c_12(isNat^#(activate(V1))) } 753.64/208.21 Weak DPs: 753.64/208.21 { isNatKind^#(n__plus(V1, V2)) -> 753.64/208.21 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.64/208.21 isNatKind^#(activate(V1))) 753.64/208.21 , isNatKind^#(n__s(V1)) -> c_4(isNatKind^#(activate(V1))) 753.64/208.21 , U31^#(tt(), V2) -> c_6(isNatKind^#(activate(V2))) 753.64/208.21 , U51^#(tt(), N) -> c_16(isNatKind^#(activate(N))) 753.64/208.21 , U61^#(tt(), M, N) -> 753.64/208.21 c_13(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.64/208.21 isNatKind^#(activate(M))) 753.64/208.21 , U62^#(tt(), M, N) -> 753.64/208.21 c_14(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.64/208.21 isNat^#(activate(N))) 753.64/208.21 , U63^#(tt(), M, N) -> c_15(isNatKind^#(activate(N))) } 753.64/208.21 Weak Trs: 753.64/208.21 { U11(tt(), V1, V2) -> 753.64/208.21 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.64/208.21 , U12(tt(), V1, V2) -> 753.64/208.21 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.64/208.21 , isNatKind(n__0()) -> tt() 753.64/208.21 , isNatKind(n__plus(V1, V2)) -> 753.64/208.21 U31(isNatKind(activate(V1)), activate(V2)) 753.64/208.21 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.64/208.21 , activate(X) -> X 753.64/208.21 , activate(n__0()) -> 0() 753.64/208.21 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.64/208.21 , activate(n__s(X)) -> s(activate(X)) 753.64/208.21 , U13(tt(), V1, V2) -> 753.64/208.21 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.64/208.21 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.64/208.21 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.64/208.21 , isNat(n__0()) -> tt() 753.64/208.21 , isNat(n__plus(V1, V2)) -> 753.64/208.21 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.64/208.21 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.64/208.21 , U16(tt()) -> tt() 753.64/208.21 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.64/208.21 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.64/208.21 , U23(tt()) -> tt() 753.64/208.21 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.64/208.21 , U32(tt()) -> tt() 753.64/208.21 , U41(tt()) -> tt() 753.64/208.21 , s(X) -> n__s(X) 753.64/208.21 , plus(X1, X2) -> n__plus(X1, X2) 753.64/208.21 , 0() -> n__0() } 753.64/208.21 Obligation: 753.64/208.21 innermost runtime complexity 753.64/208.21 Answer: 753.64/208.21 YES(O(1),O(n^1)) 753.64/208.21 753.64/208.21 The following weak DPs constitute a sub-graph of the DG that is 753.64/208.21 closed under successors. The DPs are removed. 753.64/208.21 753.64/208.21 { isNatKind^#(n__plus(V1, V2)) -> 753.64/208.21 c_3(U31^#(isNatKind(activate(V1)), activate(V2)), 753.64/208.21 isNatKind^#(activate(V1))) 753.64/208.21 , isNatKind^#(n__s(V1)) -> c_4(isNatKind^#(activate(V1))) 753.64/208.21 , U31^#(tt(), V2) -> c_6(isNatKind^#(activate(V2))) 753.64/208.21 , U51^#(tt(), N) -> c_16(isNatKind^#(activate(N))) 753.64/208.21 , U63^#(tt(), M, N) -> c_15(isNatKind^#(activate(N))) } 753.64/208.21 753.64/208.21 We are left with following problem, upon which TcT provides the 753.64/208.21 certificate YES(O(1),O(n^1)). 753.64/208.21 753.64/208.21 Strict DPs: 753.64/208.21 { U11^#(tt(), V1, V2) -> 753.64/208.21 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.64/208.21 isNatKind^#(activate(V1))) 753.64/208.21 , U12^#(tt(), V1, V2) -> 753.64/208.21 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.64/208.21 isNatKind^#(activate(V2))) 753.64/208.21 , U13^#(tt(), V1, V2) -> 753.64/208.21 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.64/208.21 isNatKind^#(activate(V2))) 753.64/208.21 , U14^#(tt(), V1, V2) -> 753.64/208.21 c_7(U15^#(isNat(activate(V1)), activate(V2)), 753.64/208.21 isNat^#(activate(V1))) 753.64/208.21 , U15^#(tt(), V2) -> c_8(isNat^#(activate(V2))) 753.64/208.21 , isNat^#(n__plus(V1, V2)) -> 753.64/208.21 c_9(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.64/208.21 isNatKind^#(activate(V1))) 753.64/208.21 , isNat^#(n__s(V1)) -> 753.64/208.21 c_10(U21^#(isNatKind(activate(V1)), activate(V1)), 753.64/208.21 isNatKind^#(activate(V1))) 753.64/208.21 , U21^#(tt(), V1) -> 753.64/208.21 c_11(U22^#(isNatKind(activate(V1)), activate(V1)), 753.64/208.22 isNatKind^#(activate(V1))) 753.64/208.22 , U22^#(tt(), V1) -> c_12(isNat^#(activate(V1))) } 753.64/208.22 Weak DPs: 753.64/208.22 { U61^#(tt(), M, N) -> 753.64/208.22 c_13(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.64/208.22 isNatKind^#(activate(M))) 753.64/208.22 , U62^#(tt(), M, N) -> 753.64/208.22 c_14(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.64/208.22 isNat^#(activate(N))) } 753.64/208.22 Weak Trs: 753.64/208.22 { U11(tt(), V1, V2) -> 753.64/208.22 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.64/208.22 , U12(tt(), V1, V2) -> 753.64/208.22 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.64/208.22 , isNatKind(n__0()) -> tt() 753.64/208.22 , isNatKind(n__plus(V1, V2)) -> 753.64/208.22 U31(isNatKind(activate(V1)), activate(V2)) 753.64/208.22 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.64/208.22 , activate(X) -> X 753.64/208.22 , activate(n__0()) -> 0() 753.64/208.22 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.64/208.22 , activate(n__s(X)) -> s(activate(X)) 753.64/208.22 , U13(tt(), V1, V2) -> 753.64/208.22 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.64/208.22 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.64/208.22 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.64/208.22 , isNat(n__0()) -> tt() 753.64/208.22 , isNat(n__plus(V1, V2)) -> 753.64/208.22 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.64/208.22 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.64/208.22 , U16(tt()) -> tt() 753.64/208.22 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.64/208.22 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.64/208.22 , U23(tt()) -> tt() 753.64/208.22 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.64/208.22 , U32(tt()) -> tt() 753.64/208.22 , U41(tt()) -> tt() 753.64/208.22 , s(X) -> n__s(X) 753.64/208.22 , plus(X1, X2) -> n__plus(X1, X2) 753.64/208.22 , 0() -> n__0() } 753.64/208.22 Obligation: 753.64/208.22 innermost runtime complexity 753.64/208.22 Answer: 753.64/208.22 YES(O(1),O(n^1)) 753.64/208.22 753.64/208.22 Due to missing edges in the dependency-graph, the right-hand sides 753.64/208.22 of following rules could be simplified: 753.64/208.22 753.64/208.22 { U11^#(tt(), V1, V2) -> 753.64/208.22 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.64/208.22 isNatKind^#(activate(V1))) 753.64/208.22 , U12^#(tt(), V1, V2) -> 753.64/208.22 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.64/208.22 isNatKind^#(activate(V2))) 753.64/208.22 , U13^#(tt(), V1, V2) -> 753.64/208.22 c_5(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)), 753.64/208.22 isNatKind^#(activate(V2))) 753.64/208.22 , isNat^#(n__plus(V1, V2)) -> 753.64/208.22 c_9(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)), 753.64/208.22 isNatKind^#(activate(V1))) 753.64/208.22 , isNat^#(n__s(V1)) -> 753.64/208.22 c_10(U21^#(isNatKind(activate(V1)), activate(V1)), 753.64/208.22 isNatKind^#(activate(V1))) 753.64/208.22 , U21^#(tt(), V1) -> 753.64/208.22 c_11(U22^#(isNatKind(activate(V1)), activate(V1)), 753.64/208.22 isNatKind^#(activate(V1))) 753.64/208.22 , U61^#(tt(), M, N) -> 753.64/208.22 c_13(U62^#(isNatKind(activate(M)), activate(M), activate(N)), 753.64/208.22 isNatKind^#(activate(M))) 753.64/208.22 , U62^#(tt(), M, N) -> 753.64/208.22 c_14(U63^#(isNat(activate(N)), activate(M), activate(N)), 753.64/208.22 isNat^#(activate(N))) } 753.64/208.22 753.64/208.22 We are left with following problem, upon which TcT provides the 753.64/208.22 certificate YES(O(1),O(n^1)). 753.64/208.22 753.64/208.22 Strict DPs: 753.64/208.22 { U11^#(tt(), V1, V2) -> 753.64/208.22 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.64/208.22 , U12^#(tt(), V1, V2) -> 753.64/208.22 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.64/208.22 , U13^#(tt(), V1, V2) -> 753.64/208.22 c_3(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.64/208.22 , U14^#(tt(), V1, V2) -> 753.64/208.22 c_4(U15^#(isNat(activate(V1)), activate(V2)), 753.64/208.22 isNat^#(activate(V1))) 753.64/208.22 , U15^#(tt(), V2) -> c_5(isNat^#(activate(V2))) 753.64/208.22 , isNat^#(n__plus(V1, V2)) -> 753.64/208.22 c_6(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.64/208.22 , isNat^#(n__s(V1)) -> 753.64/208.22 c_7(U21^#(isNatKind(activate(V1)), activate(V1))) 753.64/208.22 , U21^#(tt(), V1) -> 753.64/208.22 c_8(U22^#(isNatKind(activate(V1)), activate(V1))) 753.64/208.22 , U22^#(tt(), V1) -> c_9(isNat^#(activate(V1))) } 753.64/208.22 Weak DPs: 753.64/208.22 { U61^#(tt(), M, N) -> 753.64/208.22 c_10(U62^#(isNatKind(activate(M)), activate(M), activate(N))) 753.64/208.22 , U62^#(tt(), M, N) -> c_11(isNat^#(activate(N))) } 753.64/208.22 Weak Trs: 753.64/208.22 { U11(tt(), V1, V2) -> 753.64/208.22 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.64/208.22 , U12(tt(), V1, V2) -> 753.64/208.22 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.64/208.22 , isNatKind(n__0()) -> tt() 753.64/208.22 , isNatKind(n__plus(V1, V2)) -> 753.64/208.22 U31(isNatKind(activate(V1)), activate(V2)) 753.64/208.22 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.64/208.22 , activate(X) -> X 753.64/208.22 , activate(n__0()) -> 0() 753.64/208.22 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.64/208.22 , activate(n__s(X)) -> s(activate(X)) 753.64/208.22 , U13(tt(), V1, V2) -> 753.64/208.22 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.64/208.22 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.64/208.22 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.64/208.22 , isNat(n__0()) -> tt() 753.64/208.22 , isNat(n__plus(V1, V2)) -> 753.64/208.22 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.64/208.22 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.64/208.22 , U16(tt()) -> tt() 753.64/208.22 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.64/208.22 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.64/208.22 , U23(tt()) -> tt() 753.64/208.22 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.64/208.22 , U32(tt()) -> tt() 753.64/208.22 , U41(tt()) -> tt() 753.64/208.22 , s(X) -> n__s(X) 753.64/208.22 , plus(X1, X2) -> n__plus(X1, X2) 753.64/208.22 , 0() -> n__0() } 753.64/208.22 Obligation: 753.64/208.22 innermost runtime complexity 753.64/208.22 Answer: 753.64/208.22 YES(O(1),O(n^1)) 753.64/208.22 753.64/208.22 We use the processor 'matrix interpretation of dimension 1' to 753.64/208.22 orient following rules strictly. 753.64/208.22 753.64/208.22 DPs: 753.64/208.22 { 1: U11^#(tt(), V1, V2) -> 753.64/208.22 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.64/208.22 , 6: isNat^#(n__plus(V1, V2)) -> 753.64/208.22 c_6(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.64/208.22 , 7: isNat^#(n__s(V1)) -> 753.64/208.22 c_7(U21^#(isNatKind(activate(V1)), activate(V1))) 753.64/208.22 , 8: U21^#(tt(), V1) -> 753.64/208.22 c_8(U22^#(isNatKind(activate(V1)), activate(V1))) 753.64/208.22 , 10: U61^#(tt(), M, N) -> 753.64/208.22 c_10(U62^#(isNatKind(activate(M)), activate(M), activate(N))) } 753.64/208.22 753.64/208.22 Sub-proof: 753.64/208.22 ---------- 753.64/208.22 The following argument positions are usable: 753.64/208.22 Uargs(c_1) = {1}, Uargs(c_2) = {1}, Uargs(c_3) = {1}, 753.64/208.22 Uargs(c_4) = {1, 2}, Uargs(c_5) = {1}, Uargs(c_6) = {1}, 753.64/208.22 Uargs(c_7) = {1}, Uargs(c_8) = {1}, Uargs(c_9) = {1}, 753.64/208.22 Uargs(c_10) = {1}, Uargs(c_11) = {1} 753.64/208.22 753.64/208.22 TcT has computed the following constructor-based matrix 753.64/208.22 interpretation satisfying not(EDA). 753.64/208.22 753.64/208.22 [U11](x1, x2, x3) = [0] 753.64/208.22 753.64/208.22 [tt] = [0] 753.64/208.22 753.64/208.22 [U12](x1, x2, x3) = [0] 753.64/208.22 753.64/208.22 [isNatKind](x1) = [0] 753.64/208.22 753.64/208.22 [activate](x1) = [1] x1 + [0] 753.64/208.22 753.64/208.22 [U13](x1, x2, x3) = [0] 753.64/208.22 753.64/208.22 [U14](x1, x2, x3) = [0] 753.64/208.22 753.64/208.22 [U15](x1, x2) = [0] 753.64/208.22 753.64/208.22 [isNat](x1) = [0] 753.64/208.22 753.64/208.22 [U16](x1) = [0] 753.64/208.22 753.64/208.22 [U21](x1, x2) = [0] 753.64/208.22 753.64/208.22 [U22](x1, x2) = [0] 753.64/208.22 753.64/208.22 [U23](x1) = [0] 753.64/208.22 753.64/208.22 [U31](x1, x2) = [0] 753.64/208.22 753.64/208.22 [U32](x1) = [0] 753.64/208.22 753.64/208.22 [U41](x1) = [0] 753.64/208.22 753.64/208.22 [s](x1) = [1] x1 + [2] 753.64/208.22 753.64/208.22 [plus](x1, x2) = [1] x1 + [1] x2 + [2] 753.64/208.22 753.64/208.22 [n__0] = [0] 753.64/208.22 753.64/208.22 [n__plus](x1, x2) = [1] x1 + [1] x2 + [2] 753.64/208.22 753.64/208.22 [n__s](x1) = [1] x1 + [2] 753.64/208.22 753.64/208.22 [0] = [0] 753.64/208.22 753.64/208.22 [U11^#](x1, x2, x3) = [4] x2 + [4] x3 + [4] 753.64/208.22 753.64/208.22 [U12^#](x1, x2, x3) = [4] x2 + [4] x3 + [0] 753.64/208.22 753.64/208.22 [U13^#](x1, x2, x3) = [4] x2 + [4] x3 + [0] 753.64/208.22 753.64/208.22 [U14^#](x1, x2, x3) = [4] x2 + [4] x3 + [0] 753.64/208.22 753.64/208.22 [U15^#](x1, x2) = [4] x2 + [0] 753.64/208.22 753.64/208.22 [isNat^#](x1) = [4] x1 + [0] 753.64/208.22 753.64/208.22 [U21^#](x1, x2) = [4] x2 + [4] 753.64/208.22 753.64/208.22 [U22^#](x1, x2) = [4] x2 + [0] 753.64/208.22 753.64/208.22 [U61^#](x1, x2, x3) = [7] x1 + [7] x2 + [7] x3 + [7] 753.64/208.22 753.64/208.22 [U62^#](x1, x2, x3) = [4] x3 + [0] 753.64/208.22 753.64/208.22 [c_1](x1) = [1] x1 + [3] 753.64/208.22 753.64/208.22 [c_2](x1) = [1] x1 + [0] 753.64/208.22 753.64/208.22 [c_3](x1) = [1] x1 + [0] 753.64/208.22 753.64/208.22 [c_4](x1, x2) = [1] x1 + [1] x2 + [0] 753.64/208.22 753.64/208.22 [c_5](x1) = [1] x1 + [0] 753.64/208.22 753.64/208.22 [c_6](x1) = [1] x1 + [3] 753.64/208.22 753.64/208.22 [c_7](x1) = [1] x1 + [3] 753.64/208.22 753.64/208.22 [c_8](x1) = [1] x1 + [1] 753.64/208.22 753.64/208.22 [c_9](x1) = [1] x1 + [0] 753.64/208.22 753.64/208.22 [c_10](x1) = [1] x1 + [3] 753.64/208.22 753.64/208.22 [c_11](x1) = [1] x1 + [0] 753.64/208.22 753.64/208.22 The order satisfies the following ordering constraints: 753.64/208.22 753.64/208.22 [U11(tt(), V1, V2)] = [0] 753.64/208.22 >= [0] 753.64/208.22 = [U12(isNatKind(activate(V1)), activate(V1), activate(V2))] 753.64/208.22 753.64/208.22 [U12(tt(), V1, V2)] = [0] 753.64/208.22 >= [0] 753.64/208.22 = [U13(isNatKind(activate(V2)), activate(V1), activate(V2))] 753.64/208.22 753.64/208.22 [isNatKind(n__0())] = [0] 753.64/208.22 >= [0] 753.64/208.22 = [tt()] 753.64/208.22 753.64/208.22 [isNatKind(n__plus(V1, V2))] = [0] 753.64/208.22 >= [0] 753.64/208.22 = [U31(isNatKind(activate(V1)), activate(V2))] 753.64/208.22 753.64/208.22 [isNatKind(n__s(V1))] = [0] 753.64/208.22 >= [0] 753.64/208.22 = [U41(isNatKind(activate(V1)))] 753.64/208.22 753.64/208.22 [activate(X)] = [1] X + [0] 753.64/208.22 >= [1] X + [0] 753.64/208.22 = [X] 753.64/208.22 753.64/208.22 [activate(n__0())] = [0] 753.64/208.22 >= [0] 753.64/208.22 = [0()] 753.64/208.22 753.64/208.22 [activate(n__plus(X1, X2))] = [1] X1 + [1] X2 + [2] 753.64/208.22 >= [1] X1 + [1] X2 + [2] 753.64/208.22 = [plus(activate(X1), activate(X2))] 753.64/208.22 753.64/208.22 [activate(n__s(X))] = [1] X + [2] 753.64/208.22 >= [1] X + [2] 753.64/208.22 = [s(activate(X))] 753.64/208.22 753.64/208.22 [U13(tt(), V1, V2)] = [0] 753.64/208.22 >= [0] 753.64/208.22 = [U14(isNatKind(activate(V2)), activate(V1), activate(V2))] 753.64/208.22 753.64/208.22 [U14(tt(), V1, V2)] = [0] 753.64/208.22 >= [0] 753.64/208.22 = [U15(isNat(activate(V1)), activate(V2))] 753.64/208.22 753.64/208.22 [U15(tt(), V2)] = [0] 753.64/208.22 >= [0] 753.64/208.22 = [U16(isNat(activate(V2)))] 753.64/208.22 753.64/208.22 [isNat(n__0())] = [0] 753.64/208.22 >= [0] 753.64/208.22 = [tt()] 753.64/208.22 753.64/208.22 [isNat(n__plus(V1, V2))] = [0] 753.64/208.22 >= [0] 753.64/208.22 = [U11(isNatKind(activate(V1)), activate(V1), activate(V2))] 753.64/208.22 753.64/208.22 [isNat(n__s(V1))] = [0] 753.64/208.22 >= [0] 753.64/208.22 = [U21(isNatKind(activate(V1)), activate(V1))] 753.64/208.22 753.64/208.22 [U16(tt())] = [0] 753.64/208.22 >= [0] 753.64/208.22 = [tt()] 753.64/208.22 753.64/208.22 [U21(tt(), V1)] = [0] 753.64/208.22 >= [0] 753.64/208.22 = [U22(isNatKind(activate(V1)), activate(V1))] 753.64/208.22 753.64/208.22 [U22(tt(), V1)] = [0] 753.64/208.22 >= [0] 753.64/208.22 = [U23(isNat(activate(V1)))] 753.64/208.22 753.64/208.22 [U23(tt())] = [0] 753.64/208.22 >= [0] 753.64/208.22 = [tt()] 753.64/208.22 753.64/208.22 [U31(tt(), V2)] = [0] 753.64/208.22 >= [0] 753.64/208.22 = [U32(isNatKind(activate(V2)))] 753.64/208.22 753.64/208.22 [U32(tt())] = [0] 753.64/208.22 >= [0] 753.64/208.22 = [tt()] 753.64/208.22 753.64/208.22 [U41(tt())] = [0] 753.64/208.22 >= [0] 753.64/208.22 = [tt()] 753.64/208.22 753.64/208.22 [s(X)] = [1] X + [2] 753.64/208.22 >= [1] X + [2] 753.64/208.22 = [n__s(X)] 753.64/208.22 753.64/208.22 [plus(X1, X2)] = [1] X1 + [1] X2 + [2] 753.64/208.22 >= [1] X1 + [1] X2 + [2] 753.64/208.22 = [n__plus(X1, X2)] 753.64/208.22 753.64/208.22 [0()] = [0] 753.64/208.22 >= [0] 753.64/208.22 = [n__0()] 753.64/208.22 753.64/208.22 [U11^#(tt(), V1, V2)] = [4] V1 + [4] V2 + [4] 753.64/208.22 > [4] V1 + [4] V2 + [3] 753.64/208.22 = [c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2)))] 753.64/208.22 753.64/208.22 [U12^#(tt(), V1, V2)] = [4] V1 + [4] V2 + [0] 753.64/208.22 >= [4] V1 + [4] V2 + [0] 753.64/208.22 = [c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2)))] 753.64/208.22 753.64/208.22 [U13^#(tt(), V1, V2)] = [4] V1 + [4] V2 + [0] 753.64/208.22 >= [4] V1 + [4] V2 + [0] 753.64/208.22 = [c_3(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2)))] 753.64/208.22 753.64/208.22 [U14^#(tt(), V1, V2)] = [4] V1 + [4] V2 + [0] 753.64/208.22 >= [4] V1 + [4] V2 + [0] 753.64/208.22 = [c_4(U15^#(isNat(activate(V1)), activate(V2)), 753.64/208.22 isNat^#(activate(V1)))] 753.64/208.22 753.64/208.22 [U15^#(tt(), V2)] = [4] V2 + [0] 753.64/208.22 >= [4] V2 + [0] 753.64/208.22 = [c_5(isNat^#(activate(V2)))] 753.64/208.22 753.64/208.22 [isNat^#(n__plus(V1, V2))] = [4] V1 + [4] V2 + [8] 753.64/208.22 > [4] V1 + [4] V2 + [7] 753.64/208.22 = [c_6(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2)))] 753.64/208.22 753.64/208.22 [isNat^#(n__s(V1))] = [4] V1 + [8] 753.64/208.22 > [4] V1 + [7] 753.64/208.22 = [c_7(U21^#(isNatKind(activate(V1)), activate(V1)))] 753.64/208.22 753.64/208.22 [U21^#(tt(), V1)] = [4] V1 + [4] 753.64/208.22 > [4] V1 + [1] 753.64/208.22 = [c_8(U22^#(isNatKind(activate(V1)), activate(V1)))] 753.64/208.22 753.64/208.22 [U22^#(tt(), V1)] = [4] V1 + [0] 753.64/208.22 >= [4] V1 + [0] 753.64/208.22 = [c_9(isNat^#(activate(V1)))] 753.64/208.22 753.64/208.22 [U61^#(tt(), M, N)] = [7] N + [7] M + [7] 753.64/208.22 > [4] N + [3] 753.64/208.22 = [c_10(U62^#(isNatKind(activate(M)), activate(M), activate(N)))] 753.64/208.22 753.64/208.22 [U62^#(tt(), M, N)] = [4] N + [0] 753.64/208.22 >= [4] N + [0] 753.64/208.22 = [c_11(isNat^#(activate(N)))] 753.64/208.22 753.64/208.22 753.64/208.22 We return to the main proof. Consider the set of all dependency 753.64/208.22 pairs 753.64/208.22 753.64/208.22 : 753.64/208.22 { 1: U11^#(tt(), V1, V2) -> 753.64/208.22 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.64/208.22 , 2: U12^#(tt(), V1, V2) -> 753.64/208.22 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.64/208.22 , 3: U13^#(tt(), V1, V2) -> 753.64/208.22 c_3(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.64/208.22 , 4: U14^#(tt(), V1, V2) -> 753.64/208.22 c_4(U15^#(isNat(activate(V1)), activate(V2)), 753.64/208.22 isNat^#(activate(V1))) 753.64/208.22 , 5: U15^#(tt(), V2) -> c_5(isNat^#(activate(V2))) 753.64/208.22 , 6: isNat^#(n__plus(V1, V2)) -> 753.64/208.22 c_6(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.64/208.22 , 7: isNat^#(n__s(V1)) -> 753.64/208.22 c_7(U21^#(isNatKind(activate(V1)), activate(V1))) 753.64/208.22 , 8: U21^#(tt(), V1) -> 753.64/208.22 c_8(U22^#(isNatKind(activate(V1)), activate(V1))) 753.64/208.22 , 9: U22^#(tt(), V1) -> c_9(isNat^#(activate(V1))) 753.64/208.22 , 10: U61^#(tt(), M, N) -> 753.64/208.22 c_10(U62^#(isNatKind(activate(M)), activate(M), activate(N))) 753.64/208.22 , 11: U62^#(tt(), M, N) -> c_11(isNat^#(activate(N))) } 753.64/208.22 753.64/208.22 Processor 'matrix interpretation of dimension 1' induces the 753.64/208.22 complexity certificate YES(?,O(n^1)) on application of dependency 753.64/208.22 pairs {1,6,7,8,10}. These cover all (indirect) predecessors of 753.64/208.22 dependency pairs {1,2,3,4,5,6,7,8,9,10,11}, their number of 753.64/208.22 application is equally bounded. The dependency pairs are shifted 753.64/208.22 into the weak component. 753.64/208.22 753.64/208.22 We are left with following problem, upon which TcT provides the 753.64/208.22 certificate YES(O(1),O(1)). 753.64/208.22 753.64/208.22 Weak DPs: 753.64/208.22 { U11^#(tt(), V1, V2) -> 753.64/208.22 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.64/208.22 , U12^#(tt(), V1, V2) -> 753.64/208.22 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.64/208.22 , U13^#(tt(), V1, V2) -> 753.64/208.22 c_3(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.64/208.22 , U14^#(tt(), V1, V2) -> 753.64/208.22 c_4(U15^#(isNat(activate(V1)), activate(V2)), 753.64/208.22 isNat^#(activate(V1))) 753.64/208.22 , U15^#(tt(), V2) -> c_5(isNat^#(activate(V2))) 753.64/208.22 , isNat^#(n__plus(V1, V2)) -> 753.64/208.22 c_6(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.64/208.22 , isNat^#(n__s(V1)) -> 753.64/208.22 c_7(U21^#(isNatKind(activate(V1)), activate(V1))) 753.64/208.22 , U21^#(tt(), V1) -> 753.64/208.22 c_8(U22^#(isNatKind(activate(V1)), activate(V1))) 753.64/208.22 , U22^#(tt(), V1) -> c_9(isNat^#(activate(V1))) 753.64/208.22 , U61^#(tt(), M, N) -> 753.64/208.22 c_10(U62^#(isNatKind(activate(M)), activate(M), activate(N))) 753.64/208.22 , U62^#(tt(), M, N) -> c_11(isNat^#(activate(N))) } 753.64/208.22 Weak Trs: 753.64/208.22 { U11(tt(), V1, V2) -> 753.64/208.22 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.64/208.22 , U12(tt(), V1, V2) -> 753.64/208.22 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.64/208.22 , isNatKind(n__0()) -> tt() 753.64/208.22 , isNatKind(n__plus(V1, V2)) -> 753.64/208.22 U31(isNatKind(activate(V1)), activate(V2)) 753.64/208.22 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.64/208.22 , activate(X) -> X 753.64/208.22 , activate(n__0()) -> 0() 753.64/208.22 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.64/208.22 , activate(n__s(X)) -> s(activate(X)) 753.64/208.22 , U13(tt(), V1, V2) -> 753.64/208.22 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.64/208.22 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.64/208.22 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.64/208.22 , isNat(n__0()) -> tt() 753.64/208.22 , isNat(n__plus(V1, V2)) -> 753.64/208.22 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.64/208.22 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.64/208.22 , U16(tt()) -> tt() 753.64/208.22 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.64/208.22 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.64/208.22 , U23(tt()) -> tt() 753.64/208.22 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.64/208.22 , U32(tt()) -> tt() 753.64/208.22 , U41(tt()) -> tt() 753.64/208.22 , s(X) -> n__s(X) 753.64/208.22 , plus(X1, X2) -> n__plus(X1, X2) 753.64/208.22 , 0() -> n__0() } 753.64/208.22 Obligation: 753.64/208.22 innermost runtime complexity 753.64/208.22 Answer: 753.64/208.22 YES(O(1),O(1)) 753.64/208.22 753.64/208.22 The following weak DPs constitute a sub-graph of the DG that is 753.64/208.22 closed under successors. The DPs are removed. 753.64/208.22 753.64/208.22 { U11^#(tt(), V1, V2) -> 753.64/208.22 c_1(U12^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.64/208.22 , U12^#(tt(), V1, V2) -> 753.64/208.22 c_2(U13^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.64/208.22 , U13^#(tt(), V1, V2) -> 753.64/208.22 c_3(U14^#(isNatKind(activate(V2)), activate(V1), activate(V2))) 753.64/208.22 , U14^#(tt(), V1, V2) -> 753.64/208.22 c_4(U15^#(isNat(activate(V1)), activate(V2)), 753.64/208.22 isNat^#(activate(V1))) 753.64/208.22 , U15^#(tt(), V2) -> c_5(isNat^#(activate(V2))) 753.64/208.22 , isNat^#(n__plus(V1, V2)) -> 753.64/208.22 c_6(U11^#(isNatKind(activate(V1)), activate(V1), activate(V2))) 753.64/208.22 , isNat^#(n__s(V1)) -> 753.64/208.22 c_7(U21^#(isNatKind(activate(V1)), activate(V1))) 753.64/208.22 , U21^#(tt(), V1) -> 753.64/208.22 c_8(U22^#(isNatKind(activate(V1)), activate(V1))) 753.64/208.22 , U22^#(tt(), V1) -> c_9(isNat^#(activate(V1))) 753.64/208.22 , U61^#(tt(), M, N) -> 753.64/208.22 c_10(U62^#(isNatKind(activate(M)), activate(M), activate(N))) 753.64/208.22 , U62^#(tt(), M, N) -> c_11(isNat^#(activate(N))) } 753.64/208.22 753.64/208.22 We are left with following problem, upon which TcT provides the 753.64/208.22 certificate YES(O(1),O(1)). 753.64/208.22 753.64/208.22 Weak Trs: 753.64/208.22 { U11(tt(), V1, V2) -> 753.64/208.22 U12(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.64/208.22 , U12(tt(), V1, V2) -> 753.64/208.22 U13(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.64/208.22 , isNatKind(n__0()) -> tt() 753.64/208.22 , isNatKind(n__plus(V1, V2)) -> 753.64/208.22 U31(isNatKind(activate(V1)), activate(V2)) 753.64/208.22 , isNatKind(n__s(V1)) -> U41(isNatKind(activate(V1))) 753.64/208.22 , activate(X) -> X 753.64/208.22 , activate(n__0()) -> 0() 753.64/208.22 , activate(n__plus(X1, X2)) -> plus(activate(X1), activate(X2)) 753.64/208.22 , activate(n__s(X)) -> s(activate(X)) 753.64/208.22 , U13(tt(), V1, V2) -> 753.64/208.22 U14(isNatKind(activate(V2)), activate(V1), activate(V2)) 753.64/208.22 , U14(tt(), V1, V2) -> U15(isNat(activate(V1)), activate(V2)) 753.64/208.22 , U15(tt(), V2) -> U16(isNat(activate(V2))) 753.64/208.22 , isNat(n__0()) -> tt() 753.64/208.22 , isNat(n__plus(V1, V2)) -> 753.64/208.22 U11(isNatKind(activate(V1)), activate(V1), activate(V2)) 753.64/208.22 , isNat(n__s(V1)) -> U21(isNatKind(activate(V1)), activate(V1)) 753.64/208.22 , U16(tt()) -> tt() 753.64/208.22 , U21(tt(), V1) -> U22(isNatKind(activate(V1)), activate(V1)) 753.64/208.22 , U22(tt(), V1) -> U23(isNat(activate(V1))) 753.64/208.22 , U23(tt()) -> tt() 753.64/208.22 , U31(tt(), V2) -> U32(isNatKind(activate(V2))) 753.64/208.22 , U32(tt()) -> tt() 753.64/208.22 , U41(tt()) -> tt() 753.64/208.22 , s(X) -> n__s(X) 753.64/208.22 , plus(X1, X2) -> n__plus(X1, X2) 753.64/208.22 , 0() -> n__0() } 753.64/208.22 Obligation: 753.64/208.22 innermost runtime complexity 753.64/208.22 Answer: 753.64/208.22 YES(O(1),O(1)) 753.64/208.22 753.64/208.22 No rule is usable, rules are removed from the input problem. 753.64/208.22 753.64/208.22 We are left with following problem, upon which TcT provides the 753.64/208.22 certificate YES(O(1),O(1)). 753.64/208.22 753.64/208.22 Rules: Empty 753.64/208.22 Obligation: 753.64/208.22 innermost runtime complexity 753.64/208.22 Answer: 753.64/208.22 YES(O(1),O(1)) 753.64/208.22 753.64/208.22 Empty rules are trivially bounded 753.64/208.22 753.64/208.22 753.64/208.22 753.64/208.22 Hurray, we answered YES(O(1),O(n^3)) 753.78/208.32 EOF