We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^2)). Strict Trs: { __(X1, X2) -> n____(X1, X2) , __(X, nil()) -> X , __(__(X, Y), Z) -> __(X, __(Y, Z)) , __(nil(), X) -> X , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , U71(tt(), I, P) -> U72(isPalListKind(activate(I)), activate(P)) , U72(tt(), P) -> U73(isPal(activate(P)), activate(P)) , U73(tt(), P) -> U74(isPalListKind(activate(P))) , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U74(tt()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , isNePal(n____(I, __(P, I))) -> U71(isQid(activate(I)), activate(I), activate(P)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^2)) Arguments of following rules are not normal-forms: { __(X, nil()) -> X , __(__(X, Y), Z) -> __(X, __(Y, Z)) , __(nil(), X) -> X , isNePal(n____(I, __(P, I))) -> U71(isQid(activate(I)), activate(I), activate(P)) } All above mentioned rules can be savely removed. We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^2)). Strict Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , U71(tt(), I, P) -> U72(isPalListKind(activate(I)), activate(P)) , U72(tt(), P) -> U73(isPal(activate(P)), activate(P)) , U73(tt(), P) -> U74(isPalListKind(activate(P))) , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U74(tt()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^2)) We add the following dependency tuples: Strict DPs: { __^#(X1, X2) -> c_1() , nil^#() -> c_2() , U11^#(tt(), V) -> c_3(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U12^#(tt(), V) -> c_4(U13^#(isNeList(activate(V))), isNeList^#(activate(V)), activate^#(V)) , isPalListKind^#(n__nil()) -> c_5() , isPalListKind^#(n____(V1, V2)) -> c_6(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V2)) , isPalListKind^#(n__a()) -> c_7() , isPalListKind^#(n__e()) -> c_8() , isPalListKind^#(n__i()) -> c_9() , isPalListKind^#(n__o()) -> c_10() , isPalListKind^#(n__u()) -> c_11() , activate^#(X) -> c_12() , activate^#(n__nil()) -> c_13(nil^#()) , activate^#(n____(X1, X2)) -> c_14(__^#(X1, X2)) , activate^#(n__a()) -> c_15(a^#()) , activate^#(n__e()) -> c_16(e^#()) , activate^#(n__i()) -> c_17(i^#()) , activate^#(n__o()) -> c_18(o^#()) , activate^#(n__u()) -> c_19(u^#()) , U13^#(tt()) -> c_20() , isNeList^#(V) -> c_21(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , isNeList^#(n____(V1, V2)) -> c_22(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , isNeList^#(n____(V1, V2)) -> c_23(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U91^#(tt(), V2) -> c_66(U92^#(isPalListKind(activate(V2))), isPalListKind^#(activate(V2)), activate^#(V2)) , a^#() -> c_68() , e^#() -> c_69() , i^#() -> c_70() , o^#() -> c_71() , u^#() -> c_72() , U31^#(tt(), V) -> c_33(U32^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U41^#(tt(), V1, V2) -> c_41(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U51^#(tt(), V1, V2) -> c_47(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U21^#(tt(), V1, V2) -> c_24(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U22^#(tt(), V1, V2) -> c_25(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U23^#(tt(), V1, V2) -> c_26(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U24^#(tt(), V1, V2) -> c_27(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1)), activate^#(V1), activate^#(V2)) , U25^#(tt(), V2) -> c_28(U26^#(isList(activate(V2))), isList^#(activate(V2)), activate^#(V2)) , isList^#(V) -> c_29(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , isList^#(n__nil()) -> c_30() , isList^#(n____(V1, V2)) -> c_31(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U26^#(tt()) -> c_32() , U32^#(tt(), V) -> c_34(U33^#(isQid(activate(V))), isQid^#(activate(V)), activate^#(V)) , U33^#(tt()) -> c_35() , isQid^#(n__a()) -> c_36() , isQid^#(n__e()) -> c_37() , isQid^#(n__i()) -> c_38() , isQid^#(n__o()) -> c_39() , isQid^#(n__u()) -> c_40() , U42^#(tt(), V1, V2) -> c_42(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U43^#(tt(), V1, V2) -> c_43(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U44^#(tt(), V1, V2) -> c_44(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1)), activate^#(V1), activate^#(V2)) , U45^#(tt(), V2) -> c_45(U46^#(isNeList(activate(V2))), isNeList^#(activate(V2)), activate^#(V2)) , U46^#(tt()) -> c_46() , U52^#(tt(), V1, V2) -> c_48(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U53^#(tt(), V1, V2) -> c_49(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U54^#(tt(), V1, V2) -> c_50(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1)), activate^#(V1), activate^#(V2)) , U55^#(tt(), V2) -> c_51(U56^#(isList(activate(V2))), isList^#(activate(V2)), activate^#(V2)) , U56^#(tt()) -> c_52() , U61^#(tt(), V) -> c_53(U62^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U62^#(tt(), V) -> c_54(U63^#(isQid(activate(V))), isQid^#(activate(V)), activate^#(V)) , U63^#(tt()) -> c_55() , U71^#(tt(), I, P) -> c_56(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I)), activate^#(I), activate^#(P)) , U72^#(tt(), P) -> c_57(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)), activate^#(P), activate^#(P)) , U73^#(tt(), P) -> c_58(U74^#(isPalListKind(activate(P))), isPalListKind^#(activate(P)), activate^#(P)) , isPal^#(V) -> c_59(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , isPal^#(n__nil()) -> c_60() , U74^#(tt()) -> c_61() , U81^#(tt(), V) -> c_62(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U82^#(tt(), V) -> c_63(U83^#(isNePal(activate(V))), isNePal^#(activate(V)), activate^#(V)) , U83^#(tt()) -> c_64() , isNePal^#(V) -> c_65(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U92^#(tt()) -> c_67() } and mark the set of starting terms. We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^2)). Strict DPs: { __^#(X1, X2) -> c_1() , nil^#() -> c_2() , U11^#(tt(), V) -> c_3(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U12^#(tt(), V) -> c_4(U13^#(isNeList(activate(V))), isNeList^#(activate(V)), activate^#(V)) , isPalListKind^#(n__nil()) -> c_5() , isPalListKind^#(n____(V1, V2)) -> c_6(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V2)) , isPalListKind^#(n__a()) -> c_7() , isPalListKind^#(n__e()) -> c_8() , isPalListKind^#(n__i()) -> c_9() , isPalListKind^#(n__o()) -> c_10() , isPalListKind^#(n__u()) -> c_11() , activate^#(X) -> c_12() , activate^#(n__nil()) -> c_13(nil^#()) , activate^#(n____(X1, X2)) -> c_14(__^#(X1, X2)) , activate^#(n__a()) -> c_15(a^#()) , activate^#(n__e()) -> c_16(e^#()) , activate^#(n__i()) -> c_17(i^#()) , activate^#(n__o()) -> c_18(o^#()) , activate^#(n__u()) -> c_19(u^#()) , U13^#(tt()) -> c_20() , isNeList^#(V) -> c_21(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , isNeList^#(n____(V1, V2)) -> c_22(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , isNeList^#(n____(V1, V2)) -> c_23(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U91^#(tt(), V2) -> c_66(U92^#(isPalListKind(activate(V2))), isPalListKind^#(activate(V2)), activate^#(V2)) , a^#() -> c_68() , e^#() -> c_69() , i^#() -> c_70() , o^#() -> c_71() , u^#() -> c_72() , U31^#(tt(), V) -> c_33(U32^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U41^#(tt(), V1, V2) -> c_41(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U51^#(tt(), V1, V2) -> c_47(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U21^#(tt(), V1, V2) -> c_24(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U22^#(tt(), V1, V2) -> c_25(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U23^#(tt(), V1, V2) -> c_26(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U24^#(tt(), V1, V2) -> c_27(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1)), activate^#(V1), activate^#(V2)) , U25^#(tt(), V2) -> c_28(U26^#(isList(activate(V2))), isList^#(activate(V2)), activate^#(V2)) , isList^#(V) -> c_29(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , isList^#(n__nil()) -> c_30() , isList^#(n____(V1, V2)) -> c_31(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U26^#(tt()) -> c_32() , U32^#(tt(), V) -> c_34(U33^#(isQid(activate(V))), isQid^#(activate(V)), activate^#(V)) , U33^#(tt()) -> c_35() , isQid^#(n__a()) -> c_36() , isQid^#(n__e()) -> c_37() , isQid^#(n__i()) -> c_38() , isQid^#(n__o()) -> c_39() , isQid^#(n__u()) -> c_40() , U42^#(tt(), V1, V2) -> c_42(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U43^#(tt(), V1, V2) -> c_43(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U44^#(tt(), V1, V2) -> c_44(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1)), activate^#(V1), activate^#(V2)) , U45^#(tt(), V2) -> c_45(U46^#(isNeList(activate(V2))), isNeList^#(activate(V2)), activate^#(V2)) , U46^#(tt()) -> c_46() , U52^#(tt(), V1, V2) -> c_48(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U53^#(tt(), V1, V2) -> c_49(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U54^#(tt(), V1, V2) -> c_50(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1)), activate^#(V1), activate^#(V2)) , U55^#(tt(), V2) -> c_51(U56^#(isList(activate(V2))), isList^#(activate(V2)), activate^#(V2)) , U56^#(tt()) -> c_52() , U61^#(tt(), V) -> c_53(U62^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U62^#(tt(), V) -> c_54(U63^#(isQid(activate(V))), isQid^#(activate(V)), activate^#(V)) , U63^#(tt()) -> c_55() , U71^#(tt(), I, P) -> c_56(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I)), activate^#(I), activate^#(P)) , U72^#(tt(), P) -> c_57(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)), activate^#(P), activate^#(P)) , U73^#(tt(), P) -> c_58(U74^#(isPalListKind(activate(P))), isPalListKind^#(activate(P)), activate^#(P)) , isPal^#(V) -> c_59(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , isPal^#(n__nil()) -> c_60() , U74^#(tt()) -> c_61() , U81^#(tt(), V) -> c_62(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U82^#(tt(), V) -> c_63(U83^#(isNePal(activate(V))), isNePal^#(activate(V)), activate^#(V)) , U83^#(tt()) -> c_64() , isNePal^#(V) -> c_65(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U92^#(tt()) -> c_67() } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , U71(tt(), I, P) -> U72(isPalListKind(activate(I)), activate(P)) , U72(tt(), P) -> U73(isPal(activate(P)), activate(P)) , U73(tt(), P) -> U74(isPalListKind(activate(P))) , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U74(tt()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^2)) We estimate the number of application of {1,2,5,7,8,9,10,11,12,20,25,26,27,28,29,39,41,43,44,45,46,47,48,53,58,61,66,67,70,72} by applications of Pre({1,2,5,7,8,9,10,11,12,20,25,26,27,28,29,39,41,43,44,45,46,47,48,53,58,61,66,67,70,72}) = {3,4,6,13,14,15,16,17,18,19,21,22,23,24,30,31,32,33,34,35,36,37,38,40,42,49,50,51,52,54,55,56,57,59,60,62,63,64,65,68,69,71}. Here rules are labeled as follows: DPs: { 1: __^#(X1, X2) -> c_1() , 2: nil^#() -> c_2() , 3: U11^#(tt(), V) -> c_3(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , 4: U12^#(tt(), V) -> c_4(U13^#(isNeList(activate(V))), isNeList^#(activate(V)), activate^#(V)) , 5: isPalListKind^#(n__nil()) -> c_5() , 6: isPalListKind^#(n____(V1, V2)) -> c_6(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V2)) , 7: isPalListKind^#(n__a()) -> c_7() , 8: isPalListKind^#(n__e()) -> c_8() , 9: isPalListKind^#(n__i()) -> c_9() , 10: isPalListKind^#(n__o()) -> c_10() , 11: isPalListKind^#(n__u()) -> c_11() , 12: activate^#(X) -> c_12() , 13: activate^#(n__nil()) -> c_13(nil^#()) , 14: activate^#(n____(X1, X2)) -> c_14(__^#(X1, X2)) , 15: activate^#(n__a()) -> c_15(a^#()) , 16: activate^#(n__e()) -> c_16(e^#()) , 17: activate^#(n__i()) -> c_17(i^#()) , 18: activate^#(n__o()) -> c_18(o^#()) , 19: activate^#(n__u()) -> c_19(u^#()) , 20: U13^#(tt()) -> c_20() , 21: isNeList^#(V) -> c_21(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , 22: isNeList^#(n____(V1, V2)) -> c_22(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , 23: isNeList^#(n____(V1, V2)) -> c_23(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , 24: U91^#(tt(), V2) -> c_66(U92^#(isPalListKind(activate(V2))), isPalListKind^#(activate(V2)), activate^#(V2)) , 25: a^#() -> c_68() , 26: e^#() -> c_69() , 27: i^#() -> c_70() , 28: o^#() -> c_71() , 29: u^#() -> c_72() , 30: U31^#(tt(), V) -> c_33(U32^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , 31: U41^#(tt(), V1, V2) -> c_41(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , 32: U51^#(tt(), V1, V2) -> c_47(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , 33: U21^#(tt(), V1, V2) -> c_24(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , 34: U22^#(tt(), V1, V2) -> c_25(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , 35: U23^#(tt(), V1, V2) -> c_26(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , 36: U24^#(tt(), V1, V2) -> c_27(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1)), activate^#(V1), activate^#(V2)) , 37: U25^#(tt(), V2) -> c_28(U26^#(isList(activate(V2))), isList^#(activate(V2)), activate^#(V2)) , 38: isList^#(V) -> c_29(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , 39: isList^#(n__nil()) -> c_30() , 40: isList^#(n____(V1, V2)) -> c_31(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , 41: U26^#(tt()) -> c_32() , 42: U32^#(tt(), V) -> c_34(U33^#(isQid(activate(V))), isQid^#(activate(V)), activate^#(V)) , 43: U33^#(tt()) -> c_35() , 44: isQid^#(n__a()) -> c_36() , 45: isQid^#(n__e()) -> c_37() , 46: isQid^#(n__i()) -> c_38() , 47: isQid^#(n__o()) -> c_39() , 48: isQid^#(n__u()) -> c_40() , 49: U42^#(tt(), V1, V2) -> c_42(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , 50: U43^#(tt(), V1, V2) -> c_43(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , 51: U44^#(tt(), V1, V2) -> c_44(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1)), activate^#(V1), activate^#(V2)) , 52: U45^#(tt(), V2) -> c_45(U46^#(isNeList(activate(V2))), isNeList^#(activate(V2)), activate^#(V2)) , 53: U46^#(tt()) -> c_46() , 54: U52^#(tt(), V1, V2) -> c_48(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , 55: U53^#(tt(), V1, V2) -> c_49(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , 56: U54^#(tt(), V1, V2) -> c_50(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1)), activate^#(V1), activate^#(V2)) , 57: U55^#(tt(), V2) -> c_51(U56^#(isList(activate(V2))), isList^#(activate(V2)), activate^#(V2)) , 58: U56^#(tt()) -> c_52() , 59: U61^#(tt(), V) -> c_53(U62^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , 60: U62^#(tt(), V) -> c_54(U63^#(isQid(activate(V))), isQid^#(activate(V)), activate^#(V)) , 61: U63^#(tt()) -> c_55() , 62: U71^#(tt(), I, P) -> c_56(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I)), activate^#(I), activate^#(P)) , 63: U72^#(tt(), P) -> c_57(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)), activate^#(P), activate^#(P)) , 64: U73^#(tt(), P) -> c_58(U74^#(isPalListKind(activate(P))), isPalListKind^#(activate(P)), activate^#(P)) , 65: isPal^#(V) -> c_59(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , 66: isPal^#(n__nil()) -> c_60() , 67: U74^#(tt()) -> c_61() , 68: U81^#(tt(), V) -> c_62(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , 69: U82^#(tt(), V) -> c_63(U83^#(isNePal(activate(V))), isNePal^#(activate(V)), activate^#(V)) , 70: U83^#(tt()) -> c_64() , 71: isNePal^#(V) -> c_65(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , 72: U92^#(tt()) -> c_67() } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^2)). Strict DPs: { U11^#(tt(), V) -> c_3(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U12^#(tt(), V) -> c_4(U13^#(isNeList(activate(V))), isNeList^#(activate(V)), activate^#(V)) , isPalListKind^#(n____(V1, V2)) -> c_6(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V2)) , activate^#(n__nil()) -> c_13(nil^#()) , activate^#(n____(X1, X2)) -> c_14(__^#(X1, X2)) , activate^#(n__a()) -> c_15(a^#()) , activate^#(n__e()) -> c_16(e^#()) , activate^#(n__i()) -> c_17(i^#()) , activate^#(n__o()) -> c_18(o^#()) , activate^#(n__u()) -> c_19(u^#()) , isNeList^#(V) -> c_21(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , isNeList^#(n____(V1, V2)) -> c_22(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , isNeList^#(n____(V1, V2)) -> c_23(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U91^#(tt(), V2) -> c_66(U92^#(isPalListKind(activate(V2))), isPalListKind^#(activate(V2)), activate^#(V2)) , U31^#(tt(), V) -> c_33(U32^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U41^#(tt(), V1, V2) -> c_41(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U51^#(tt(), V1, V2) -> c_47(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U21^#(tt(), V1, V2) -> c_24(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U22^#(tt(), V1, V2) -> c_25(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U23^#(tt(), V1, V2) -> c_26(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U24^#(tt(), V1, V2) -> c_27(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1)), activate^#(V1), activate^#(V2)) , U25^#(tt(), V2) -> c_28(U26^#(isList(activate(V2))), isList^#(activate(V2)), activate^#(V2)) , isList^#(V) -> c_29(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , isList^#(n____(V1, V2)) -> c_31(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U32^#(tt(), V) -> c_34(U33^#(isQid(activate(V))), isQid^#(activate(V)), activate^#(V)) , U42^#(tt(), V1, V2) -> c_42(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U43^#(tt(), V1, V2) -> c_43(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U44^#(tt(), V1, V2) -> c_44(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1)), activate^#(V1), activate^#(V2)) , U45^#(tt(), V2) -> c_45(U46^#(isNeList(activate(V2))), isNeList^#(activate(V2)), activate^#(V2)) , U52^#(tt(), V1, V2) -> c_48(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U53^#(tt(), V1, V2) -> c_49(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U54^#(tt(), V1, V2) -> c_50(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1)), activate^#(V1), activate^#(V2)) , U55^#(tt(), V2) -> c_51(U56^#(isList(activate(V2))), isList^#(activate(V2)), activate^#(V2)) , U61^#(tt(), V) -> c_53(U62^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U62^#(tt(), V) -> c_54(U63^#(isQid(activate(V))), isQid^#(activate(V)), activate^#(V)) , U71^#(tt(), I, P) -> c_56(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I)), activate^#(I), activate^#(P)) , U72^#(tt(), P) -> c_57(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)), activate^#(P), activate^#(P)) , U73^#(tt(), P) -> c_58(U74^#(isPalListKind(activate(P))), isPalListKind^#(activate(P)), activate^#(P)) , isPal^#(V) -> c_59(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U81^#(tt(), V) -> c_62(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U82^#(tt(), V) -> c_63(U83^#(isNePal(activate(V))), isNePal^#(activate(V)), activate^#(V)) , isNePal^#(V) -> c_65(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) } Weak DPs: { __^#(X1, X2) -> c_1() , nil^#() -> c_2() , isPalListKind^#(n__nil()) -> c_5() , isPalListKind^#(n__a()) -> c_7() , isPalListKind^#(n__e()) -> c_8() , isPalListKind^#(n__i()) -> c_9() , isPalListKind^#(n__o()) -> c_10() , isPalListKind^#(n__u()) -> c_11() , activate^#(X) -> c_12() , U13^#(tt()) -> c_20() , a^#() -> c_68() , e^#() -> c_69() , i^#() -> c_70() , o^#() -> c_71() , u^#() -> c_72() , isList^#(n__nil()) -> c_30() , U26^#(tt()) -> c_32() , U33^#(tt()) -> c_35() , isQid^#(n__a()) -> c_36() , isQid^#(n__e()) -> c_37() , isQid^#(n__i()) -> c_38() , isQid^#(n__o()) -> c_39() , isQid^#(n__u()) -> c_40() , U46^#(tt()) -> c_46() , U56^#(tt()) -> c_52() , U63^#(tt()) -> c_55() , isPal^#(n__nil()) -> c_60() , U74^#(tt()) -> c_61() , U83^#(tt()) -> c_64() , U92^#(tt()) -> c_67() } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , U71(tt(), I, P) -> U72(isPalListKind(activate(I)), activate(P)) , U72(tt(), P) -> U73(isPal(activate(P)), activate(P)) , U73(tt(), P) -> U74(isPalListKind(activate(P))) , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U74(tt()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^2)) We estimate the number of application of {4,5,6,7,8,9,10} by applications of Pre({4,5,6,7,8,9,10}) = {1,2,3,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42}. Here rules are labeled as follows: DPs: { 1: U11^#(tt(), V) -> c_3(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , 2: U12^#(tt(), V) -> c_4(U13^#(isNeList(activate(V))), isNeList^#(activate(V)), activate^#(V)) , 3: isPalListKind^#(n____(V1, V2)) -> c_6(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V2)) , 4: activate^#(n__nil()) -> c_13(nil^#()) , 5: activate^#(n____(X1, X2)) -> c_14(__^#(X1, X2)) , 6: activate^#(n__a()) -> c_15(a^#()) , 7: activate^#(n__e()) -> c_16(e^#()) , 8: activate^#(n__i()) -> c_17(i^#()) , 9: activate^#(n__o()) -> c_18(o^#()) , 10: activate^#(n__u()) -> c_19(u^#()) , 11: isNeList^#(V) -> c_21(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , 12: isNeList^#(n____(V1, V2)) -> c_22(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , 13: isNeList^#(n____(V1, V2)) -> c_23(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , 14: U91^#(tt(), V2) -> c_66(U92^#(isPalListKind(activate(V2))), isPalListKind^#(activate(V2)), activate^#(V2)) , 15: U31^#(tt(), V) -> c_33(U32^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , 16: U41^#(tt(), V1, V2) -> c_41(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , 17: U51^#(tt(), V1, V2) -> c_47(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , 18: U21^#(tt(), V1, V2) -> c_24(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , 19: U22^#(tt(), V1, V2) -> c_25(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , 20: U23^#(tt(), V1, V2) -> c_26(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , 21: U24^#(tt(), V1, V2) -> c_27(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1)), activate^#(V1), activate^#(V2)) , 22: U25^#(tt(), V2) -> c_28(U26^#(isList(activate(V2))), isList^#(activate(V2)), activate^#(V2)) , 23: isList^#(V) -> c_29(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , 24: isList^#(n____(V1, V2)) -> c_31(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , 25: U32^#(tt(), V) -> c_34(U33^#(isQid(activate(V))), isQid^#(activate(V)), activate^#(V)) , 26: U42^#(tt(), V1, V2) -> c_42(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , 27: U43^#(tt(), V1, V2) -> c_43(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , 28: U44^#(tt(), V1, V2) -> c_44(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1)), activate^#(V1), activate^#(V2)) , 29: U45^#(tt(), V2) -> c_45(U46^#(isNeList(activate(V2))), isNeList^#(activate(V2)), activate^#(V2)) , 30: U52^#(tt(), V1, V2) -> c_48(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , 31: U53^#(tt(), V1, V2) -> c_49(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , 32: U54^#(tt(), V1, V2) -> c_50(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1)), activate^#(V1), activate^#(V2)) , 33: U55^#(tt(), V2) -> c_51(U56^#(isList(activate(V2))), isList^#(activate(V2)), activate^#(V2)) , 34: U61^#(tt(), V) -> c_53(U62^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , 35: U62^#(tt(), V) -> c_54(U63^#(isQid(activate(V))), isQid^#(activate(V)), activate^#(V)) , 36: U71^#(tt(), I, P) -> c_56(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I)), activate^#(I), activate^#(P)) , 37: U72^#(tt(), P) -> c_57(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)), activate^#(P), activate^#(P)) , 38: U73^#(tt(), P) -> c_58(U74^#(isPalListKind(activate(P))), isPalListKind^#(activate(P)), activate^#(P)) , 39: isPal^#(V) -> c_59(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , 40: U81^#(tt(), V) -> c_62(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , 41: U82^#(tt(), V) -> c_63(U83^#(isNePal(activate(V))), isNePal^#(activate(V)), activate^#(V)) , 42: isNePal^#(V) -> c_65(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , 43: __^#(X1, X2) -> c_1() , 44: nil^#() -> c_2() , 45: isPalListKind^#(n__nil()) -> c_5() , 46: isPalListKind^#(n__a()) -> c_7() , 47: isPalListKind^#(n__e()) -> c_8() , 48: isPalListKind^#(n__i()) -> c_9() , 49: isPalListKind^#(n__o()) -> c_10() , 50: isPalListKind^#(n__u()) -> c_11() , 51: activate^#(X) -> c_12() , 52: U13^#(tt()) -> c_20() , 53: a^#() -> c_68() , 54: e^#() -> c_69() , 55: i^#() -> c_70() , 56: o^#() -> c_71() , 57: u^#() -> c_72() , 58: isList^#(n__nil()) -> c_30() , 59: U26^#(tt()) -> c_32() , 60: U33^#(tt()) -> c_35() , 61: isQid^#(n__a()) -> c_36() , 62: isQid^#(n__e()) -> c_37() , 63: isQid^#(n__i()) -> c_38() , 64: isQid^#(n__o()) -> c_39() , 65: isQid^#(n__u()) -> c_40() , 66: U46^#(tt()) -> c_46() , 67: U56^#(tt()) -> c_52() , 68: U63^#(tt()) -> c_55() , 69: isPal^#(n__nil()) -> c_60() , 70: U74^#(tt()) -> c_61() , 71: U83^#(tt()) -> c_64() , 72: U92^#(tt()) -> c_67() } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^2)). Strict DPs: { U11^#(tt(), V) -> c_3(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U12^#(tt(), V) -> c_4(U13^#(isNeList(activate(V))), isNeList^#(activate(V)), activate^#(V)) , isPalListKind^#(n____(V1, V2)) -> c_6(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V2)) , isNeList^#(V) -> c_21(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , isNeList^#(n____(V1, V2)) -> c_22(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , isNeList^#(n____(V1, V2)) -> c_23(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U91^#(tt(), V2) -> c_66(U92^#(isPalListKind(activate(V2))), isPalListKind^#(activate(V2)), activate^#(V2)) , U31^#(tt(), V) -> c_33(U32^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U41^#(tt(), V1, V2) -> c_41(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U51^#(tt(), V1, V2) -> c_47(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U21^#(tt(), V1, V2) -> c_24(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U22^#(tt(), V1, V2) -> c_25(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U23^#(tt(), V1, V2) -> c_26(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U24^#(tt(), V1, V2) -> c_27(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1)), activate^#(V1), activate^#(V2)) , U25^#(tt(), V2) -> c_28(U26^#(isList(activate(V2))), isList^#(activate(V2)), activate^#(V2)) , isList^#(V) -> c_29(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , isList^#(n____(V1, V2)) -> c_31(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U32^#(tt(), V) -> c_34(U33^#(isQid(activate(V))), isQid^#(activate(V)), activate^#(V)) , U42^#(tt(), V1, V2) -> c_42(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U43^#(tt(), V1, V2) -> c_43(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U44^#(tt(), V1, V2) -> c_44(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1)), activate^#(V1), activate^#(V2)) , U45^#(tt(), V2) -> c_45(U46^#(isNeList(activate(V2))), isNeList^#(activate(V2)), activate^#(V2)) , U52^#(tt(), V1, V2) -> c_48(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U53^#(tt(), V1, V2) -> c_49(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U54^#(tt(), V1, V2) -> c_50(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1)), activate^#(V1), activate^#(V2)) , U55^#(tt(), V2) -> c_51(U56^#(isList(activate(V2))), isList^#(activate(V2)), activate^#(V2)) , U61^#(tt(), V) -> c_53(U62^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U62^#(tt(), V) -> c_54(U63^#(isQid(activate(V))), isQid^#(activate(V)), activate^#(V)) , U71^#(tt(), I, P) -> c_56(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I)), activate^#(I), activate^#(P)) , U72^#(tt(), P) -> c_57(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)), activate^#(P), activate^#(P)) , U73^#(tt(), P) -> c_58(U74^#(isPalListKind(activate(P))), isPalListKind^#(activate(P)), activate^#(P)) , isPal^#(V) -> c_59(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U81^#(tt(), V) -> c_62(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U82^#(tt(), V) -> c_63(U83^#(isNePal(activate(V))), isNePal^#(activate(V)), activate^#(V)) , isNePal^#(V) -> c_65(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) } Weak DPs: { __^#(X1, X2) -> c_1() , nil^#() -> c_2() , isPalListKind^#(n__nil()) -> c_5() , isPalListKind^#(n__a()) -> c_7() , isPalListKind^#(n__e()) -> c_8() , isPalListKind^#(n__i()) -> c_9() , isPalListKind^#(n__o()) -> c_10() , isPalListKind^#(n__u()) -> c_11() , activate^#(X) -> c_12() , activate^#(n__nil()) -> c_13(nil^#()) , activate^#(n____(X1, X2)) -> c_14(__^#(X1, X2)) , activate^#(n__a()) -> c_15(a^#()) , activate^#(n__e()) -> c_16(e^#()) , activate^#(n__i()) -> c_17(i^#()) , activate^#(n__o()) -> c_18(o^#()) , activate^#(n__u()) -> c_19(u^#()) , U13^#(tt()) -> c_20() , a^#() -> c_68() , e^#() -> c_69() , i^#() -> c_70() , o^#() -> c_71() , u^#() -> c_72() , isList^#(n__nil()) -> c_30() , U26^#(tt()) -> c_32() , U33^#(tt()) -> c_35() , isQid^#(n__a()) -> c_36() , isQid^#(n__e()) -> c_37() , isQid^#(n__i()) -> c_38() , isQid^#(n__o()) -> c_39() , isQid^#(n__u()) -> c_40() , U46^#(tt()) -> c_46() , U56^#(tt()) -> c_52() , U63^#(tt()) -> c_55() , isPal^#(n__nil()) -> c_60() , U74^#(tt()) -> c_61() , U83^#(tt()) -> c_64() , U92^#(tt()) -> c_67() } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , U71(tt(), I, P) -> U72(isPalListKind(activate(I)), activate(P)) , U72(tt(), P) -> U73(isPal(activate(P)), activate(P)) , U73(tt(), P) -> U74(isPalListKind(activate(P))) , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U74(tt()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^2)) We estimate the number of application of {18,28} by applications of Pre({18,28}) = {8,27}. Here rules are labeled as follows: DPs: { 1: U11^#(tt(), V) -> c_3(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , 2: U12^#(tt(), V) -> c_4(U13^#(isNeList(activate(V))), isNeList^#(activate(V)), activate^#(V)) , 3: isPalListKind^#(n____(V1, V2)) -> c_6(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V2)) , 4: isNeList^#(V) -> c_21(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , 5: isNeList^#(n____(V1, V2)) -> c_22(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , 6: isNeList^#(n____(V1, V2)) -> c_23(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , 7: U91^#(tt(), V2) -> c_66(U92^#(isPalListKind(activate(V2))), isPalListKind^#(activate(V2)), activate^#(V2)) , 8: U31^#(tt(), V) -> c_33(U32^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , 9: U41^#(tt(), V1, V2) -> c_41(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , 10: U51^#(tt(), V1, V2) -> c_47(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , 11: U21^#(tt(), V1, V2) -> c_24(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , 12: U22^#(tt(), V1, V2) -> c_25(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , 13: U23^#(tt(), V1, V2) -> c_26(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , 14: U24^#(tt(), V1, V2) -> c_27(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1)), activate^#(V1), activate^#(V2)) , 15: U25^#(tt(), V2) -> c_28(U26^#(isList(activate(V2))), isList^#(activate(V2)), activate^#(V2)) , 16: isList^#(V) -> c_29(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , 17: isList^#(n____(V1, V2)) -> c_31(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , 18: U32^#(tt(), V) -> c_34(U33^#(isQid(activate(V))), isQid^#(activate(V)), activate^#(V)) , 19: U42^#(tt(), V1, V2) -> c_42(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , 20: U43^#(tt(), V1, V2) -> c_43(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , 21: U44^#(tt(), V1, V2) -> c_44(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1)), activate^#(V1), activate^#(V2)) , 22: U45^#(tt(), V2) -> c_45(U46^#(isNeList(activate(V2))), isNeList^#(activate(V2)), activate^#(V2)) , 23: U52^#(tt(), V1, V2) -> c_48(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , 24: U53^#(tt(), V1, V2) -> c_49(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , 25: U54^#(tt(), V1, V2) -> c_50(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1)), activate^#(V1), activate^#(V2)) , 26: U55^#(tt(), V2) -> c_51(U56^#(isList(activate(V2))), isList^#(activate(V2)), activate^#(V2)) , 27: U61^#(tt(), V) -> c_53(U62^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , 28: U62^#(tt(), V) -> c_54(U63^#(isQid(activate(V))), isQid^#(activate(V)), activate^#(V)) , 29: U71^#(tt(), I, P) -> c_56(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I)), activate^#(I), activate^#(P)) , 30: U72^#(tt(), P) -> c_57(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)), activate^#(P), activate^#(P)) , 31: U73^#(tt(), P) -> c_58(U74^#(isPalListKind(activate(P))), isPalListKind^#(activate(P)), activate^#(P)) , 32: isPal^#(V) -> c_59(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , 33: U81^#(tt(), V) -> c_62(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , 34: U82^#(tt(), V) -> c_63(U83^#(isNePal(activate(V))), isNePal^#(activate(V)), activate^#(V)) , 35: isNePal^#(V) -> c_65(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , 36: __^#(X1, X2) -> c_1() , 37: nil^#() -> c_2() , 38: isPalListKind^#(n__nil()) -> c_5() , 39: isPalListKind^#(n__a()) -> c_7() , 40: isPalListKind^#(n__e()) -> c_8() , 41: isPalListKind^#(n__i()) -> c_9() , 42: isPalListKind^#(n__o()) -> c_10() , 43: isPalListKind^#(n__u()) -> c_11() , 44: activate^#(X) -> c_12() , 45: activate^#(n__nil()) -> c_13(nil^#()) , 46: activate^#(n____(X1, X2)) -> c_14(__^#(X1, X2)) , 47: activate^#(n__a()) -> c_15(a^#()) , 48: activate^#(n__e()) -> c_16(e^#()) , 49: activate^#(n__i()) -> c_17(i^#()) , 50: activate^#(n__o()) -> c_18(o^#()) , 51: activate^#(n__u()) -> c_19(u^#()) , 52: U13^#(tt()) -> c_20() , 53: a^#() -> c_68() , 54: e^#() -> c_69() , 55: i^#() -> c_70() , 56: o^#() -> c_71() , 57: u^#() -> c_72() , 58: isList^#(n__nil()) -> c_30() , 59: U26^#(tt()) -> c_32() , 60: U33^#(tt()) -> c_35() , 61: isQid^#(n__a()) -> c_36() , 62: isQid^#(n__e()) -> c_37() , 63: isQid^#(n__i()) -> c_38() , 64: isQid^#(n__o()) -> c_39() , 65: isQid^#(n__u()) -> c_40() , 66: U46^#(tt()) -> c_46() , 67: U56^#(tt()) -> c_52() , 68: U63^#(tt()) -> c_55() , 69: isPal^#(n__nil()) -> c_60() , 70: U74^#(tt()) -> c_61() , 71: U83^#(tt()) -> c_64() , 72: U92^#(tt()) -> c_67() } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^2)). Strict DPs: { U11^#(tt(), V) -> c_3(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U12^#(tt(), V) -> c_4(U13^#(isNeList(activate(V))), isNeList^#(activate(V)), activate^#(V)) , isPalListKind^#(n____(V1, V2)) -> c_6(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V2)) , isNeList^#(V) -> c_21(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , isNeList^#(n____(V1, V2)) -> c_22(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , isNeList^#(n____(V1, V2)) -> c_23(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U91^#(tt(), V2) -> c_66(U92^#(isPalListKind(activate(V2))), isPalListKind^#(activate(V2)), activate^#(V2)) , U31^#(tt(), V) -> c_33(U32^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U41^#(tt(), V1, V2) -> c_41(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U51^#(tt(), V1, V2) -> c_47(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U21^#(tt(), V1, V2) -> c_24(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U22^#(tt(), V1, V2) -> c_25(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U23^#(tt(), V1, V2) -> c_26(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U24^#(tt(), V1, V2) -> c_27(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1)), activate^#(V1), activate^#(V2)) , U25^#(tt(), V2) -> c_28(U26^#(isList(activate(V2))), isList^#(activate(V2)), activate^#(V2)) , isList^#(V) -> c_29(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , isList^#(n____(V1, V2)) -> c_31(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U42^#(tt(), V1, V2) -> c_42(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U43^#(tt(), V1, V2) -> c_43(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U44^#(tt(), V1, V2) -> c_44(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1)), activate^#(V1), activate^#(V2)) , U45^#(tt(), V2) -> c_45(U46^#(isNeList(activate(V2))), isNeList^#(activate(V2)), activate^#(V2)) , U52^#(tt(), V1, V2) -> c_48(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U53^#(tt(), V1, V2) -> c_49(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U54^#(tt(), V1, V2) -> c_50(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1)), activate^#(V1), activate^#(V2)) , U55^#(tt(), V2) -> c_51(U56^#(isList(activate(V2))), isList^#(activate(V2)), activate^#(V2)) , U61^#(tt(), V) -> c_53(U62^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U71^#(tt(), I, P) -> c_56(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I)), activate^#(I), activate^#(P)) , U72^#(tt(), P) -> c_57(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)), activate^#(P), activate^#(P)) , U73^#(tt(), P) -> c_58(U74^#(isPalListKind(activate(P))), isPalListKind^#(activate(P)), activate^#(P)) , isPal^#(V) -> c_59(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U81^#(tt(), V) -> c_62(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U82^#(tt(), V) -> c_63(U83^#(isNePal(activate(V))), isNePal^#(activate(V)), activate^#(V)) , isNePal^#(V) -> c_65(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) } Weak DPs: { __^#(X1, X2) -> c_1() , nil^#() -> c_2() , isPalListKind^#(n__nil()) -> c_5() , isPalListKind^#(n__a()) -> c_7() , isPalListKind^#(n__e()) -> c_8() , isPalListKind^#(n__i()) -> c_9() , isPalListKind^#(n__o()) -> c_10() , isPalListKind^#(n__u()) -> c_11() , activate^#(X) -> c_12() , activate^#(n__nil()) -> c_13(nil^#()) , activate^#(n____(X1, X2)) -> c_14(__^#(X1, X2)) , activate^#(n__a()) -> c_15(a^#()) , activate^#(n__e()) -> c_16(e^#()) , activate^#(n__i()) -> c_17(i^#()) , activate^#(n__o()) -> c_18(o^#()) , activate^#(n__u()) -> c_19(u^#()) , U13^#(tt()) -> c_20() , a^#() -> c_68() , e^#() -> c_69() , i^#() -> c_70() , o^#() -> c_71() , u^#() -> c_72() , isList^#(n__nil()) -> c_30() , U26^#(tt()) -> c_32() , U32^#(tt(), V) -> c_34(U33^#(isQid(activate(V))), isQid^#(activate(V)), activate^#(V)) , U33^#(tt()) -> c_35() , isQid^#(n__a()) -> c_36() , isQid^#(n__e()) -> c_37() , isQid^#(n__i()) -> c_38() , isQid^#(n__o()) -> c_39() , isQid^#(n__u()) -> c_40() , U46^#(tt()) -> c_46() , U56^#(tt()) -> c_52() , U62^#(tt(), V) -> c_54(U63^#(isQid(activate(V))), isQid^#(activate(V)), activate^#(V)) , U63^#(tt()) -> c_55() , isPal^#(n__nil()) -> c_60() , U74^#(tt()) -> c_61() , U83^#(tt()) -> c_64() , U92^#(tt()) -> c_67() } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , U71(tt(), I, P) -> U72(isPalListKind(activate(I)), activate(P)) , U72(tt(), P) -> U73(isPal(activate(P)), activate(P)) , U73(tt(), P) -> U74(isPalListKind(activate(P))) , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U74(tt()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^2)) The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. { __^#(X1, X2) -> c_1() , nil^#() -> c_2() , isPalListKind^#(n__nil()) -> c_5() , isPalListKind^#(n__a()) -> c_7() , isPalListKind^#(n__e()) -> c_8() , isPalListKind^#(n__i()) -> c_9() , isPalListKind^#(n__o()) -> c_10() , isPalListKind^#(n__u()) -> c_11() , activate^#(X) -> c_12() , activate^#(n__nil()) -> c_13(nil^#()) , activate^#(n____(X1, X2)) -> c_14(__^#(X1, X2)) , activate^#(n__a()) -> c_15(a^#()) , activate^#(n__e()) -> c_16(e^#()) , activate^#(n__i()) -> c_17(i^#()) , activate^#(n__o()) -> c_18(o^#()) , activate^#(n__u()) -> c_19(u^#()) , U13^#(tt()) -> c_20() , a^#() -> c_68() , e^#() -> c_69() , i^#() -> c_70() , o^#() -> c_71() , u^#() -> c_72() , isList^#(n__nil()) -> c_30() , U26^#(tt()) -> c_32() , U32^#(tt(), V) -> c_34(U33^#(isQid(activate(V))), isQid^#(activate(V)), activate^#(V)) , U33^#(tt()) -> c_35() , isQid^#(n__a()) -> c_36() , isQid^#(n__e()) -> c_37() , isQid^#(n__i()) -> c_38() , isQid^#(n__o()) -> c_39() , isQid^#(n__u()) -> c_40() , U46^#(tt()) -> c_46() , U56^#(tt()) -> c_52() , U62^#(tt(), V) -> c_54(U63^#(isQid(activate(V))), isQid^#(activate(V)), activate^#(V)) , U63^#(tt()) -> c_55() , isPal^#(n__nil()) -> c_60() , U74^#(tt()) -> c_61() , U83^#(tt()) -> c_64() , U92^#(tt()) -> c_67() } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^2)). Strict DPs: { U11^#(tt(), V) -> c_3(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U12^#(tt(), V) -> c_4(U13^#(isNeList(activate(V))), isNeList^#(activate(V)), activate^#(V)) , isPalListKind^#(n____(V1, V2)) -> c_6(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V2)) , isNeList^#(V) -> c_21(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , isNeList^#(n____(V1, V2)) -> c_22(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , isNeList^#(n____(V1, V2)) -> c_23(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U91^#(tt(), V2) -> c_66(U92^#(isPalListKind(activate(V2))), isPalListKind^#(activate(V2)), activate^#(V2)) , U31^#(tt(), V) -> c_33(U32^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U41^#(tt(), V1, V2) -> c_41(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U51^#(tt(), V1, V2) -> c_47(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U21^#(tt(), V1, V2) -> c_24(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U22^#(tt(), V1, V2) -> c_25(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U23^#(tt(), V1, V2) -> c_26(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U24^#(tt(), V1, V2) -> c_27(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1)), activate^#(V1), activate^#(V2)) , U25^#(tt(), V2) -> c_28(U26^#(isList(activate(V2))), isList^#(activate(V2)), activate^#(V2)) , isList^#(V) -> c_29(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , isList^#(n____(V1, V2)) -> c_31(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U42^#(tt(), V1, V2) -> c_42(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U43^#(tt(), V1, V2) -> c_43(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U44^#(tt(), V1, V2) -> c_44(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1)), activate^#(V1), activate^#(V2)) , U45^#(tt(), V2) -> c_45(U46^#(isNeList(activate(V2))), isNeList^#(activate(V2)), activate^#(V2)) , U52^#(tt(), V1, V2) -> c_48(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U53^#(tt(), V1, V2) -> c_49(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U54^#(tt(), V1, V2) -> c_50(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1)), activate^#(V1), activate^#(V2)) , U55^#(tt(), V2) -> c_51(U56^#(isList(activate(V2))), isList^#(activate(V2)), activate^#(V2)) , U61^#(tt(), V) -> c_53(U62^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U71^#(tt(), I, P) -> c_56(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I)), activate^#(I), activate^#(P)) , U72^#(tt(), P) -> c_57(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)), activate^#(P), activate^#(P)) , U73^#(tt(), P) -> c_58(U74^#(isPalListKind(activate(P))), isPalListKind^#(activate(P)), activate^#(P)) , isPal^#(V) -> c_59(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U81^#(tt(), V) -> c_62(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U82^#(tt(), V) -> c_63(U83^#(isNePal(activate(V))), isNePal^#(activate(V)), activate^#(V)) , isNePal^#(V) -> c_65(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , U71(tt(), I, P) -> U72(isPalListKind(activate(I)), activate(P)) , U72(tt(), P) -> U73(isPal(activate(P)), activate(P)) , U73(tt(), P) -> U74(isPalListKind(activate(P))) , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U74(tt()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^2)) Due to missing edges in the dependency-graph, the right-hand sides of following rules could be simplified: { U11^#(tt(), V) -> c_3(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U12^#(tt(), V) -> c_4(U13^#(isNeList(activate(V))), isNeList^#(activate(V)), activate^#(V)) , isPalListKind^#(n____(V1, V2)) -> c_6(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V2)) , isNeList^#(V) -> c_21(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , isNeList^#(n____(V1, V2)) -> c_22(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , isNeList^#(n____(V1, V2)) -> c_23(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U91^#(tt(), V2) -> c_66(U92^#(isPalListKind(activate(V2))), isPalListKind^#(activate(V2)), activate^#(V2)) , U31^#(tt(), V) -> c_33(U32^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U41^#(tt(), V1, V2) -> c_41(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U51^#(tt(), V1, V2) -> c_47(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U21^#(tt(), V1, V2) -> c_24(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U22^#(tt(), V1, V2) -> c_25(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U23^#(tt(), V1, V2) -> c_26(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U24^#(tt(), V1, V2) -> c_27(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1)), activate^#(V1), activate^#(V2)) , U25^#(tt(), V2) -> c_28(U26^#(isList(activate(V2))), isList^#(activate(V2)), activate^#(V2)) , isList^#(V) -> c_29(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , isList^#(n____(V1, V2)) -> c_31(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1)), activate^#(V1), activate^#(V1), activate^#(V2)) , U42^#(tt(), V1, V2) -> c_42(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U43^#(tt(), V1, V2) -> c_43(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U44^#(tt(), V1, V2) -> c_44(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1)), activate^#(V1), activate^#(V2)) , U45^#(tt(), V2) -> c_45(U46^#(isNeList(activate(V2))), isNeList^#(activate(V2)), activate^#(V2)) , U52^#(tt(), V1, V2) -> c_48(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U53^#(tt(), V1, V2) -> c_49(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2)), activate^#(V2), activate^#(V1), activate^#(V2)) , U54^#(tt(), V1, V2) -> c_50(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1)), activate^#(V1), activate^#(V2)) , U55^#(tt(), V2) -> c_51(U56^#(isList(activate(V2))), isList^#(activate(V2)), activate^#(V2)) , U61^#(tt(), V) -> c_53(U62^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U71^#(tt(), I, P) -> c_56(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I)), activate^#(I), activate^#(P)) , U72^#(tt(), P) -> c_57(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)), activate^#(P), activate^#(P)) , U73^#(tt(), P) -> c_58(U74^#(isPalListKind(activate(P))), isPalListKind^#(activate(P)), activate^#(P)) , isPal^#(V) -> c_59(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U81^#(tt(), V) -> c_62(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) , U82^#(tt(), V) -> c_63(U83^#(isNePal(activate(V))), isNePal^#(activate(V)), activate^#(V)) , isNePal^#(V) -> c_65(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)), activate^#(V), activate^#(V)) } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^2)). Strict DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) , isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , U71(tt(), I, P) -> U72(isPalListKind(activate(I)), activate(P)) , U72(tt(), P) -> U73(isPal(activate(P)), activate(P)) , U73(tt(), P) -> U74(isPalListKind(activate(P))) , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U74(tt()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^2)) We replace rewrite rules by usable rules: Weak Usable Rules: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^2)). Strict DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) , isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^2)) We analyse the complexity of following sub-problems (R) and (S). Problem (S) is obtained from the input problem by shifting strict rules from (R) into the weak component: Problem (R): ------------ Strict DPs: { isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } Weak DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } StartTerms: basic terms Strategy: innermost Problem (S): ------------ Strict DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) } Weak DPs: { isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } StartTerms: basic terms Strategy: innermost Overall, the transformation results in the following sub-problem(s): Generated new problems: ----------------------- R) Strict DPs: { isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } Weak DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } StartTerms: basic terms Strategy: innermost This problem was proven YES(O(1),O(n^2)). S) Strict DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) } Weak DPs: { isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } StartTerms: basic terms Strategy: innermost This problem was proven YES(O(1),O(n^1)). Proofs for generated problems: ------------------------------ R) We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^2)). Strict DPs: { isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } Weak DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^2)) We analyse the complexity of following sub-problems (R) and (S). Problem (S) is obtained from the input problem by shifting strict rules from (R) into the weak component: Problem (R): ------------ Strict DPs: { isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) } Weak DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) , isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } StartTerms: basic terms Strategy: innermost Problem (S): ------------ Strict DPs: { U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } Weak DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } StartTerms: basic terms Strategy: innermost Overall, the transformation results in the following sub-problem(s): Generated new problems: ----------------------- R) Strict DPs: { isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) } Weak DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) , isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } StartTerms: basic terms Strategy: innermost This problem was proven YES(O(1),O(n^2)). S) Strict DPs: { U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } Weak DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } StartTerms: basic terms Strategy: innermost This problem was proven YES(O(1),O(1)). Proofs for generated problems: ------------------------------ R) We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^2)). Strict DPs: { isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) } Weak DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) , isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^2)) We estimate the number of application of {4} by applications of Pre({4}) = {3}. Here rules are labeled as follows: DPs: { 1: isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , 2: U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , 3: U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , 4: U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , 5: U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 6: U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , 7: isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 8: isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 9: isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 10: U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , 11: U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 12: U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 13: U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 14: U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 15: U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 16: U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 17: U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , 18: isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 19: isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 20: U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 21: U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 22: U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 23: U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , 24: U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 25: U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 26: U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , 27: U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , 28: U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , 29: U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) , 30: isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 31: U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 32: U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) , 33: isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^2)). Strict DPs: { isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) } Weak DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) , isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^2)) We decompose the input problem according to the dependency graph into the upper component { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) , isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } and lower component { isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) } Further, following extension rules are added to the lower component. { U11^#(tt(), V) -> U12^#(isPalListKind(activate(V)), activate(V)) , U11^#(tt(), V) -> isPalListKind^#(activate(V)) , U12^#(tt(), V) -> isNeList^#(activate(V)) , isNeList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1)) , isNeList^#(n____(V1, V2)) -> U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList^#(n____(V1, V2)) -> U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U41^#(tt(), V1, V2) -> isPalListKind^#(activate(V1)) , U41^#(tt(), V1, V2) -> U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U51^#(tt(), V1, V2) -> isPalListKind^#(activate(V1)) , U51^#(tt(), V1, V2) -> U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21^#(tt(), V1, V2) -> isPalListKind^#(activate(V1)) , U21^#(tt(), V1, V2) -> U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , U22^#(tt(), V1, V2) -> U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , U23^#(tt(), V1, V2) -> U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24^#(tt(), V1, V2) -> U25^#(isList(activate(V1)), activate(V2)) , U24^#(tt(), V1, V2) -> isList^#(activate(V1)) , U25^#(tt(), V2) -> isList^#(activate(V2)) , isList^#(V) -> U11^#(isPalListKind(activate(V)), activate(V)) , isList^#(V) -> isPalListKind^#(activate(V)) , isList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1)) , isList^#(n____(V1, V2)) -> U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , U42^#(tt(), V1, V2) -> U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , U43^#(tt(), V1, V2) -> U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44^#(tt(), V1, V2) -> isList^#(activate(V1)) , U44^#(tt(), V1, V2) -> U45^#(isList(activate(V1)), activate(V2)) , U45^#(tt(), V2) -> isNeList^#(activate(V2)) , U52^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , U52^#(tt(), V1, V2) -> U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , U53^#(tt(), V1, V2) -> U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54^#(tt(), V1, V2) -> isNeList^#(activate(V1)) , U54^#(tt(), V1, V2) -> U55^#(isNeList(activate(V1)), activate(V2)) , U55^#(tt(), V2) -> isList^#(activate(V2)) , U61^#(tt(), V) -> isPalListKind^#(activate(V)) , U71^#(tt(), I, P) -> isPalListKind^#(activate(I)) , U71^#(tt(), I, P) -> U72^#(isPalListKind(activate(I)), activate(P)) , U72^#(tt(), P) -> U73^#(isPal(activate(P)), activate(P)) , U72^#(tt(), P) -> isPal^#(activate(P)) , U73^#(tt(), P) -> isPalListKind^#(activate(P)) , isPal^#(V) -> isPalListKind^#(activate(V)) , isPal^#(V) -> U81^#(isPalListKind(activate(V)), activate(V)) , U81^#(tt(), V) -> isPalListKind^#(activate(V)) , U81^#(tt(), V) -> U82^#(isPalListKind(activate(V)), activate(V)) , U82^#(tt(), V) -> isNePal^#(activate(V)) , isNePal^#(V) -> isPalListKind^#(activate(V)) , isNePal^#(V) -> U61^#(isPalListKind(activate(V)), activate(V)) } TcT solves the upper component with certificate YES(O(1),O(n^1)). Sub-proof: ---------- We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^1)). Strict DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) , isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } Weak DPs: { U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^1)) We estimate the number of application of {9,18} by applications of Pre({9,18}) = {8,23}. Here rules are labeled as follows: DPs: { 1: U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 2: U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , 3: isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 4: isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 5: U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 6: U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 7: U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 8: U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 9: U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 10: isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 11: isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 12: U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 13: U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 14: U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , 15: U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 16: U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 17: U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , 18: U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , 19: U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , 20: U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) , 21: isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 22: U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 23: isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 24: U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 25: U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , 26: U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 27: U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , 28: U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , 29: U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^1)). Strict DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) , isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } Weak DPs: { U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^1)) We estimate the number of application of {8,20} by applications of Pre({8,20}) = {7,19}. Here rules are labeled as follows: DPs: { 1: U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 2: U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , 3: isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 4: isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 5: U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 6: U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 7: U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 8: U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 9: isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 10: isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 11: U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 12: U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 13: U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , 14: U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 15: U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 16: U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , 17: U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , 18: U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) , 19: isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 20: U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 21: isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 22: U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 23: U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 24: U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , 25: U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 26: U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , 27: U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , 28: U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , 29: U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^1)). Strict DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) , isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } Weak DPs: { U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^1)) We estimate the number of application of {7,16} by applications of Pre({7,16}) = {9}. Here rules are labeled as follows: DPs: { 1: U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 2: U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , 3: isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 4: isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 5: U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 6: U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 7: U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 8: isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 9: isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 10: U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 11: U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 12: U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , 13: U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 14: U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 15: U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , 16: U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , 17: U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) , 18: isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 19: isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 20: U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 21: U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 22: U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 23: U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , 24: U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 25: U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , 26: U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , 27: U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , 28: U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 29: U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^1)). Strict DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) , isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } Weak DPs: { U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^1)) We estimate the number of application of {10} by applications of Pre({10}) = {9}. Here rules are labeled as follows: DPs: { 1: U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 2: U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , 3: isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 4: isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 5: U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 6: U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 7: isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 8: isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 9: U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 10: U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 11: U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , 12: U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 13: U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 14: U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , 15: U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) , 16: isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 17: isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 18: U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 19: U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 20: U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 21: U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 22: U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , 23: U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 24: U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , 25: U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , 26: U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , 27: U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , 28: U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 29: U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^1)). Strict DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) , isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } Weak DPs: { U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^1)) We estimate the number of application of {9} by applications of Pre({9}) = {5}. Here rules are labeled as follows: DPs: { 1: U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 2: U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , 3: isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 4: isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 5: U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 6: U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 7: isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 8: isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 9: U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 10: U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , 11: U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 12: U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 13: U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , 14: U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) , 15: isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 16: isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 17: U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 18: U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 19: U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 20: U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 21: U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , 22: U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 23: U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 24: U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , 25: U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , 26: U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , 27: U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , 28: U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 29: U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^1)). Strict DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) , isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } Weak DPs: { U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^1)) We estimate the number of application of {5} by applications of Pre({5}) = {3}. Here rules are labeled as follows: DPs: { 1: U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 2: U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , 3: isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 4: isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 5: U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 6: U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 7: isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 8: isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 9: U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , 10: U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 11: U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 12: U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , 13: U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) , 14: isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 15: isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 16: U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 17: U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 18: U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 19: U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 20: U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , 21: U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 22: U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 23: U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 24: U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , 25: U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , 26: U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , 27: U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , 28: U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 29: U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^1)). Strict DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) , isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } Weak DPs: { U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^1)) We estimate the number of application of {3} by applications of Pre({3}) = {2,8,11}. Here rules are labeled as follows: DPs: { 1: U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 2: U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , 3: isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 4: isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 5: U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 6: isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 7: isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 8: U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , 9: U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 10: U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 11: U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , 12: U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) , 13: isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 14: isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 15: U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 16: U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 17: U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 18: U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 19: U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 20: U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , 21: U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 22: U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 23: U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 24: U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , 25: U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , 26: U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , 27: U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , 28: U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 29: U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^1)). Strict DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) , isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } Weak DPs: { isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^1)) The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. { U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^1)). Strict DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) , isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } Weak DPs: { isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^1)) Due to missing edges in the dependency-graph, the right-hand sides of following rules could be simplified: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) , isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^1)). Strict DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_3(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U51^#(tt(), V1, V2) -> c_4(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , isList^#(V) -> c_5(U11^#(isPalListKind(activate(V)), activate(V))) , isList^#(n____(V1, V2)) -> c_6(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U45^#(tt(), V2) -> c_7(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_8(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U53^#(tt(), V1, V2) -> c_9(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U54^#(tt(), V1, V2) -> c_10(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U73^#(tt(), P) -> c_11() , isPal^#(V) -> c_12(U81^#(isPalListKind(activate(V)), activate(V))) , isNePal^#(V) -> c_13() } Weak DPs: { isNeList^#(n____(V1, V2)) -> c_14(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U41^#(tt(), V1, V2) -> c_15(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U21^#(tt(), V1, V2) -> c_16(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U22^#(tt(), V1, V2) -> c_17(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U23^#(tt(), V1, V2) -> c_18(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U24^#(tt(), V1, V2) -> c_19(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_20(isList^#(activate(V2))) , U42^#(tt(), V1, V2) -> c_21(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U43^#(tt(), V1, V2) -> c_22(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U44^#(tt(), V1, V2) -> c_23(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U55^#(tt(), V2) -> c_24(isList^#(activate(V2))) , U71^#(tt(), I, P) -> c_25(U72^#(isPalListKind(activate(I)), activate(P))) , U72^#(tt(), P) -> c_26(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , U81^#(tt(), V) -> c_27(U82^#(isPalListKind(activate(V)), activate(V))) , U82^#(tt(), V) -> c_28(isNePal^#(activate(V))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^1)) We use the processor 'matrix interpretation of dimension 1' to orient following rules strictly. DPs: { 25: U71^#(tt(), I, P) -> c_25(U72^#(isPalListKind(activate(I)), activate(P))) } Sub-proof: ---------- The following argument positions are usable: Uargs(c_1) = {1}, Uargs(c_2) = {1}, Uargs(c_3) = {1}, Uargs(c_4) = {1}, Uargs(c_5) = {1}, Uargs(c_6) = {1}, Uargs(c_7) = {1}, Uargs(c_8) = {1}, Uargs(c_9) = {1}, Uargs(c_10) = {1, 2}, Uargs(c_12) = {1}, Uargs(c_14) = {1}, Uargs(c_15) = {1}, Uargs(c_16) = {1}, Uargs(c_17) = {1}, Uargs(c_18) = {1}, Uargs(c_19) = {1, 2}, Uargs(c_20) = {1}, Uargs(c_21) = {1}, Uargs(c_22) = {1}, Uargs(c_23) = {1, 2}, Uargs(c_24) = {1}, Uargs(c_25) = {1}, Uargs(c_26) = {1, 2}, Uargs(c_27) = {1}, Uargs(c_28) = {1} TcT has computed the following constructor-restricted matrix interpretation. Note that the diagonal of the component-wise maxima of interpretation-entries (of constructors) contains no more than 0 non-zero entries. [__](x1, x2) = [0] [nil] = [0] [U11](x1, x2) = [0] [tt] = [0] [U12](x1, x2) = [0] [isPalListKind](x1) = [0] [activate](x1) = [1] x1 + [0] [U13](x1) = [0] [isNeList](x1) = [0] [U21](x1, x2, x3) = [0] [U22](x1, x2, x3) = [0] [U23](x1, x2, x3) = [0] [U24](x1, x2, x3) = [0] [U25](x1, x2) = [0] [isList](x1) = [0] [U26](x1) = [0] [U31](x1, x2) = [0] [U32](x1, x2) = [0] [U33](x1) = [0] [isQid](x1) = [0] [U41](x1, x2, x3) = [0] [U42](x1, x2, x3) = [0] [U43](x1, x2, x3) = [0] [U44](x1, x2, x3) = [0] [U45](x1, x2) = [0] [U46](x1) = [0] [U51](x1, x2, x3) = [0] [U52](x1, x2, x3) = [0] [U53](x1, x2, x3) = [0] [U54](x1, x2, x3) = [0] [U55](x1, x2) = [0] [U56](x1) = [0] [U61](x1, x2) = [0] [U62](x1, x2) = [0] [U63](x1) = [0] [isPal](x1) = [0] [U81](x1, x2) = [0] [U82](x1, x2) = [0] [U83](x1) = [0] [isNePal](x1) = [0] [U91](x1, x2) = [0] [U92](x1) = [0] [n__nil] = [0] [n____](x1, x2) = [0] [n__a] = [0] [n__e] = [0] [n__i] = [0] [n__o] = [0] [n__u] = [0] [a] = [0] [e] = [0] [i] = [0] [o] = [0] [u] = [0] [U11^#](x1, x2) = [0] [U12^#](x1, x2) = [0] [isPalListKind^#](x1) = [0] [isNeList^#](x1) = [0] [U41^#](x1, x2, x3) = [0] [U51^#](x1, x2, x3) = [0] [U21^#](x1, x2, x3) = [0] [U22^#](x1, x2, x3) = [0] [U23^#](x1, x2, x3) = [0] [U24^#](x1, x2, x3) = [0] [U25^#](x1, x2) = [0] [isList^#](x1) = [0] [U42^#](x1, x2, x3) = [0] [U43^#](x1, x2, x3) = [0] [U44^#](x1, x2, x3) = [0] [U45^#](x1, x2) = [0] [U52^#](x1, x2, x3) = [0] [U53^#](x1, x2, x3) = [0] [U54^#](x1, x2, x3) = [0] [U55^#](x1, x2) = [0] [U61^#](x1, x2) = [0] [U71^#](x1, x2, x3) = [7] x2 + [7] x3 + [6] [U72^#](x1, x2) = [4] x2 + [0] [U73^#](x1, x2) = [0] [isPal^#](x1) = [4] x1 + [0] [U81^#](x1, x2) = [4] x2 + [0] [U82^#](x1, x2) = [4] x2 + [0] [isNePal^#](x1) = [0] [c_1](x1, x2) = [0] [c_2](x1) = [0] [c_5](x1, x2) = [0] [c_6](x1, x2) = [0] [c_9](x1, x2) = [0] [c_10](x1, x2) = [0] [c_11](x1, x2) = [0] [c_12](x1, x2) = [0] [c_13](x1, x2) = [0] [c_14](x1, x2) = [0] [c_15](x1) = [0] [c_16](x1, x2) = [0] [c_17](x1, x2) = [0] [c_18](x1, x2) = [0] [c_19](x1, x2) = [0] [c_20](x1, x2) = [0] [c_21](x1) = [0] [c_22](x1, x2) = [0] [c_23](x1, x2) = [0] [c_24](x1, x2) = [0] [c_25](x1) = [0] [c_26](x1) = [0] [c_27](x1, x2) = [0] [c_28](x1, x2) = [0] [c_29](x1) = [0] [c_30](x1, x2) = [0] [c_31](x1, x2) = [0] [c_32](x1) = [0] [c_33](x1, x2) = [0] [c] = [0] [c_1](x1) = [4] x1 + [0] [c_2](x1) = [4] x1 + [0] [c_3](x1) = [2] x1 + [0] [c_4](x1) = [1] x1 + [0] [c_5](x1) = [1] x1 + [0] [c_6](x1) = [1] x1 + [0] [c_7](x1) = [4] x1 + [0] [c_8](x1) = [3] x1 + [0] [c_9](x1) = [4] x1 + [0] [c_10](x1, x2) = [4] x1 + [4] x2 + [0] [c_11] = [0] [c_12](x1) = [1] x1 + [0] [c_13] = [0] [c_14](x1) = [1] x1 + [0] [c_15](x1) = [1] x1 + [0] [c_16](x1) = [1] x1 + [0] [c_17](x1) = [1] x1 + [0] [c_18](x1) = [1] x1 + [0] [c_19](x1, x2) = [4] x1 + [1] x2 + [0] [c_20](x1) = [4] x1 + [0] [c_21](x1) = [1] x1 + [0] [c_22](x1) = [1] x1 + [0] [c_23](x1, x2) = [1] x1 + [1] x2 + [0] [c_24](x1) = [4] x1 + [0] [c_25](x1) = [1] x1 + [0] [c_26](x1, x2) = [4] x1 + [1] x2 + [0] [c_27](x1) = [1] x1 + [0] [c_28](x1) = [4] x1 + [0] The order satisfies the following ordering constraints: [__(X1, X2)] = [0] >= [0] = [n____(X1, X2)] [nil()] = [0] >= [0] = [n__nil()] [U11(tt(), V)] = [0] >= [0] = [U12(isPalListKind(activate(V)), activate(V))] [U12(tt(), V)] = [0] >= [0] = [U13(isNeList(activate(V)))] [isPalListKind(n__nil())] = [0] >= [0] = [tt()] [isPalListKind(n____(V1, V2))] = [0] >= [0] = [U91(isPalListKind(activate(V1)), activate(V2))] [isPalListKind(n__a())] = [0] >= [0] = [tt()] [isPalListKind(n__e())] = [0] >= [0] = [tt()] [isPalListKind(n__i())] = [0] >= [0] = [tt()] [isPalListKind(n__o())] = [0] >= [0] = [tt()] [isPalListKind(n__u())] = [0] >= [0] = [tt()] [activate(X)] = [1] X + [0] >= [1] X + [0] = [X] [activate(n__nil())] = [0] >= [0] = [nil()] [activate(n____(X1, X2))] = [0] >= [0] = [__(X1, X2)] [activate(n__a())] = [0] >= [0] = [a()] [activate(n__e())] = [0] >= [0] = [e()] [activate(n__i())] = [0] >= [0] = [i()] [activate(n__o())] = [0] >= [0] = [o()] [activate(n__u())] = [0] >= [0] = [u()] [U13(tt())] = [0] >= [0] = [tt()] [isNeList(V)] = [0] >= [0] = [U31(isPalListKind(activate(V)), activate(V))] [isNeList(n____(V1, V2))] = [0] >= [0] = [U41(isPalListKind(activate(V1)), activate(V1), activate(V2))] [isNeList(n____(V1, V2))] = [0] >= [0] = [U51(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U21(tt(), V1, V2)] = [0] >= [0] = [U22(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U22(tt(), V1, V2)] = [0] >= [0] = [U23(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U23(tt(), V1, V2)] = [0] >= [0] = [U24(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U24(tt(), V1, V2)] = [0] >= [0] = [U25(isList(activate(V1)), activate(V2))] [U25(tt(), V2)] = [0] >= [0] = [U26(isList(activate(V2)))] [isList(V)] = [0] >= [0] = [U11(isPalListKind(activate(V)), activate(V))] [isList(n__nil())] = [0] >= [0] = [tt()] [isList(n____(V1, V2))] = [0] >= [0] = [U21(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U26(tt())] = [0] >= [0] = [tt()] [U31(tt(), V)] = [0] >= [0] = [U32(isPalListKind(activate(V)), activate(V))] [U32(tt(), V)] = [0] >= [0] = [U33(isQid(activate(V)))] [U33(tt())] = [0] >= [0] = [tt()] [isQid(n__a())] = [0] >= [0] = [tt()] [isQid(n__e())] = [0] >= [0] = [tt()] [isQid(n__i())] = [0] >= [0] = [tt()] [isQid(n__o())] = [0] >= [0] = [tt()] [isQid(n__u())] = [0] >= [0] = [tt()] [U41(tt(), V1, V2)] = [0] >= [0] = [U42(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U42(tt(), V1, V2)] = [0] >= [0] = [U43(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U43(tt(), V1, V2)] = [0] >= [0] = [U44(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U44(tt(), V1, V2)] = [0] >= [0] = [U45(isList(activate(V1)), activate(V2))] [U45(tt(), V2)] = [0] >= [0] = [U46(isNeList(activate(V2)))] [U46(tt())] = [0] >= [0] = [tt()] [U51(tt(), V1, V2)] = [0] >= [0] = [U52(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U52(tt(), V1, V2)] = [0] >= [0] = [U53(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U53(tt(), V1, V2)] = [0] >= [0] = [U54(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U54(tt(), V1, V2)] = [0] >= [0] = [U55(isNeList(activate(V1)), activate(V2))] [U55(tt(), V2)] = [0] >= [0] = [U56(isList(activate(V2)))] [U56(tt())] = [0] >= [0] = [tt()] [U61(tt(), V)] = [0] >= [0] = [U62(isPalListKind(activate(V)), activate(V))] [U62(tt(), V)] = [0] >= [0] = [U63(isQid(activate(V)))] [U63(tt())] = [0] >= [0] = [tt()] [isPal(V)] = [0] >= [0] = [U81(isPalListKind(activate(V)), activate(V))] [isPal(n__nil())] = [0] >= [0] = [tt()] [U81(tt(), V)] = [0] >= [0] = [U82(isPalListKind(activate(V)), activate(V))] [U82(tt(), V)] = [0] >= [0] = [U83(isNePal(activate(V)))] [U83(tt())] = [0] >= [0] = [tt()] [isNePal(V)] = [0] >= [0] = [U61(isPalListKind(activate(V)), activate(V))] [U91(tt(), V2)] = [0] >= [0] = [U92(isPalListKind(activate(V2)))] [U92(tt())] = [0] >= [0] = [tt()] [a()] = [0] >= [0] = [n__a()] [e()] = [0] >= [0] = [n__e()] [i()] = [0] >= [0] = [n__i()] [o()] = [0] >= [0] = [n__o()] [u()] = [0] >= [0] = [n__u()] [U11^#(tt(), V)] = [0] >= [0] = [c_1(U12^#(isPalListKind(activate(V)), activate(V)))] [U12^#(tt(), V)] = [0] >= [0] = [c_2(isNeList^#(activate(V)))] [isNeList^#(n____(V1, V2))] = [0] >= [0] = [c_3(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))] [isNeList^#(n____(V1, V2))] = [0] >= [0] = [c_14(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))] [U41^#(tt(), V1, V2)] = [0] >= [0] = [c_15(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))] [U51^#(tt(), V1, V2)] = [0] >= [0] = [c_4(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))] [U21^#(tt(), V1, V2)] = [0] >= [0] = [c_16(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))] [U22^#(tt(), V1, V2)] = [0] >= [0] = [c_17(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))] [U23^#(tt(), V1, V2)] = [0] >= [0] = [c_18(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))] [U24^#(tt(), V1, V2)] = [0] >= [0] = [c_19(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1)))] [U25^#(tt(), V2)] = [0] >= [0] = [c_20(isList^#(activate(V2)))] [isList^#(V)] = [0] >= [0] = [c_5(U11^#(isPalListKind(activate(V)), activate(V)))] [isList^#(n____(V1, V2))] = [0] >= [0] = [c_6(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))] [U42^#(tt(), V1, V2)] = [0] >= [0] = [c_21(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))] [U43^#(tt(), V1, V2)] = [0] >= [0] = [c_22(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))] [U44^#(tt(), V1, V2)] = [0] >= [0] = [c_23(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1)))] [U45^#(tt(), V2)] = [0] >= [0] = [c_7(isNeList^#(activate(V2)))] [U52^#(tt(), V1, V2)] = [0] >= [0] = [c_8(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))] [U53^#(tt(), V1, V2)] = [0] >= [0] = [c_9(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))] [U54^#(tt(), V1, V2)] = [0] >= [0] = [c_10(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1)))] [U55^#(tt(), V2)] = [0] >= [0] = [c_24(isList^#(activate(V2)))] [U71^#(tt(), I, P)] = [7] I + [7] P + [6] > [4] P + [0] = [c_25(U72^#(isPalListKind(activate(I)), activate(P)))] [U72^#(tt(), P)] = [4] P + [0] >= [4] P + [0] = [c_26(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))] [U73^#(tt(), P)] = [0] >= [0] = [c_11()] [isPal^#(V)] = [4] V + [0] >= [4] V + [0] = [c_12(U81^#(isPalListKind(activate(V)), activate(V)))] [U81^#(tt(), V)] = [4] V + [0] >= [4] V + [0] = [c_27(U82^#(isPalListKind(activate(V)), activate(V)))] [U82^#(tt(), V)] = [4] V + [0] >= [0] = [c_28(isNePal^#(activate(V)))] [isNePal^#(V)] = [0] >= [0] = [c_13()] We return to the main proof. Consider the set of all dependency pairs : { 1: U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V))) , 2: U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , 3: isNeList^#(n____(V1, V2)) -> c_3(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , 4: U51^#(tt(), V1, V2) -> c_4(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , 5: isList^#(V) -> c_5(U11^#(isPalListKind(activate(V)), activate(V))) , 6: isList^#(n____(V1, V2)) -> c_6(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , 7: U45^#(tt(), V2) -> c_7(isNeList^#(activate(V2))) , 8: U52^#(tt(), V1, V2) -> c_8(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , 9: U53^#(tt(), V1, V2) -> c_9(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , 10: U54^#(tt(), V1, V2) -> c_10(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , 11: U73^#(tt(), P) -> c_11() , 12: isPal^#(V) -> c_12(U81^#(isPalListKind(activate(V)), activate(V))) , 13: isNePal^#(V) -> c_13() , 14: isNeList^#(n____(V1, V2)) -> c_14(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , 15: U41^#(tt(), V1, V2) -> c_15(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , 16: U21^#(tt(), V1, V2) -> c_16(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , 17: U22^#(tt(), V1, V2) -> c_17(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , 18: U23^#(tt(), V1, V2) -> c_18(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , 19: U24^#(tt(), V1, V2) -> c_19(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 20: U25^#(tt(), V2) -> c_20(isList^#(activate(V2))) , 21: U42^#(tt(), V1, V2) -> c_21(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , 22: U43^#(tt(), V1, V2) -> c_22(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , 23: U44^#(tt(), V1, V2) -> c_23(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 24: U55^#(tt(), V2) -> c_24(isList^#(activate(V2))) , 25: U71^#(tt(), I, P) -> c_25(U72^#(isPalListKind(activate(I)), activate(P))) , 26: U72^#(tt(), P) -> c_26(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , 27: U81^#(tt(), V) -> c_27(U82^#(isPalListKind(activate(V)), activate(V))) , 28: U82^#(tt(), V) -> c_28(isNePal^#(activate(V))) } Processor 'matrix interpretation of dimension 1' induces the complexity certificate YES(?,O(1)) on application of dependency pairs {25}. These cover all (indirect) predecessors of dependency pairs {11,12,13,25,26,27,28}, their number of application is equally bounded. The dependency pairs are shifted into the weak component. We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^1)). Strict DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_3(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U51^#(tt(), V1, V2) -> c_4(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , isList^#(V) -> c_5(U11^#(isPalListKind(activate(V)), activate(V))) , isList^#(n____(V1, V2)) -> c_6(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U45^#(tt(), V2) -> c_7(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_8(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U53^#(tt(), V1, V2) -> c_9(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U54^#(tt(), V1, V2) -> c_10(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) } Weak DPs: { isNeList^#(n____(V1, V2)) -> c_14(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U41^#(tt(), V1, V2) -> c_15(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U21^#(tt(), V1, V2) -> c_16(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U22^#(tt(), V1, V2) -> c_17(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U23^#(tt(), V1, V2) -> c_18(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U24^#(tt(), V1, V2) -> c_19(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_20(isList^#(activate(V2))) , U42^#(tt(), V1, V2) -> c_21(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U43^#(tt(), V1, V2) -> c_22(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U44^#(tt(), V1, V2) -> c_23(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U55^#(tt(), V2) -> c_24(isList^#(activate(V2))) , U71^#(tt(), I, P) -> c_25(U72^#(isPalListKind(activate(I)), activate(P))) , U72^#(tt(), P) -> c_26(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , U73^#(tt(), P) -> c_11() , isPal^#(V) -> c_12(U81^#(isPalListKind(activate(V)), activate(V))) , U81^#(tt(), V) -> c_27(U82^#(isPalListKind(activate(V)), activate(V))) , U82^#(tt(), V) -> c_28(isNePal^#(activate(V))) , isNePal^#(V) -> c_13() } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^1)) The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. { U71^#(tt(), I, P) -> c_25(U72^#(isPalListKind(activate(I)), activate(P))) , U72^#(tt(), P) -> c_26(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , U73^#(tt(), P) -> c_11() , isPal^#(V) -> c_12(U81^#(isPalListKind(activate(V)), activate(V))) , U81^#(tt(), V) -> c_27(U82^#(isPalListKind(activate(V)), activate(V))) , U82^#(tt(), V) -> c_28(isNePal^#(activate(V))) , isNePal^#(V) -> c_13() } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^1)). Strict DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_3(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U51^#(tt(), V1, V2) -> c_4(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , isList^#(V) -> c_5(U11^#(isPalListKind(activate(V)), activate(V))) , isList^#(n____(V1, V2)) -> c_6(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U45^#(tt(), V2) -> c_7(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_8(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U53^#(tt(), V1, V2) -> c_9(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U54^#(tt(), V1, V2) -> c_10(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) } Weak DPs: { isNeList^#(n____(V1, V2)) -> c_14(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U41^#(tt(), V1, V2) -> c_15(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U21^#(tt(), V1, V2) -> c_16(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U22^#(tt(), V1, V2) -> c_17(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U23^#(tt(), V1, V2) -> c_18(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U24^#(tt(), V1, V2) -> c_19(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_20(isList^#(activate(V2))) , U42^#(tt(), V1, V2) -> c_21(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U43^#(tt(), V1, V2) -> c_22(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U44^#(tt(), V1, V2) -> c_23(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U55^#(tt(), V2) -> c_24(isList^#(activate(V2))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^1)) We replace rewrite rules by usable rules: Weak Usable Rules: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^1)). Strict DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_3(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U51^#(tt(), V1, V2) -> c_4(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , isList^#(V) -> c_5(U11^#(isPalListKind(activate(V)), activate(V))) , isList^#(n____(V1, V2)) -> c_6(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U45^#(tt(), V2) -> c_7(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_8(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U53^#(tt(), V1, V2) -> c_9(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U54^#(tt(), V1, V2) -> c_10(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) } Weak DPs: { isNeList^#(n____(V1, V2)) -> c_14(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U41^#(tt(), V1, V2) -> c_15(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U21^#(tt(), V1, V2) -> c_16(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U22^#(tt(), V1, V2) -> c_17(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U23^#(tt(), V1, V2) -> c_18(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U24^#(tt(), V1, V2) -> c_19(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_20(isList^#(activate(V2))) , U42^#(tt(), V1, V2) -> c_21(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U43^#(tt(), V1, V2) -> c_22(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U44^#(tt(), V1, V2) -> c_23(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U55^#(tt(), V2) -> c_24(isList^#(activate(V2))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^1)) We use the processor 'matrix interpretation of dimension 1' to orient following rules strictly. DPs: { 1: U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V))) , 3: isNeList^#(n____(V1, V2)) -> c_3(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , 5: isList^#(V) -> c_5(U11^#(isPalListKind(activate(V)), activate(V))) , 6: isList^#(n____(V1, V2)) -> c_6(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , 11: isNeList^#(n____(V1, V2)) -> c_14(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , 13: U21^#(tt(), V1, V2) -> c_16(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) } Sub-proof: ---------- The following argument positions are usable: Uargs(c_1) = {1}, Uargs(c_2) = {1}, Uargs(c_3) = {1}, Uargs(c_4) = {1}, Uargs(c_5) = {1}, Uargs(c_6) = {1}, Uargs(c_7) = {1}, Uargs(c_8) = {1}, Uargs(c_9) = {1}, Uargs(c_10) = {1, 2}, Uargs(c_14) = {1}, Uargs(c_15) = {1}, Uargs(c_16) = {1}, Uargs(c_17) = {1}, Uargs(c_18) = {1}, Uargs(c_19) = {1, 2}, Uargs(c_20) = {1}, Uargs(c_21) = {1}, Uargs(c_22) = {1}, Uargs(c_23) = {1, 2}, Uargs(c_24) = {1} TcT has computed the following constructor-based matrix interpretation satisfying not(EDA). [__](x1, x2) = [1] x1 + [1] x2 + [1] [nil] = [3] [U11](x1, x2) = [1] x1 + [0] [tt] = [1] [U12](x1, x2) = [1] [isPalListKind](x1) = [1] [activate](x1) = [1] x1 + [0] [U13](x1) = [1] [isNeList](x1) = [0] [U21](x1, x2, x3) = [1] x1 + [0] [U22](x1, x2, x3) = [1] x1 + [0] [U23](x1, x2, x3) = [1] [U24](x1, x2, x3) = [1] [U25](x1, x2) = [1] [isList](x1) = [1] [U26](x1) = [1] [U31](x1, x2) = [0] [U32](x1, x2) = [0] [U33](x1) = [0] [isQid](x1) = [0] [U41](x1, x2, x3) = [0] [U42](x1, x2, x3) = [0] [U43](x1, x2, x3) = [0] [U44](x1, x2, x3) = [0] [U45](x1, x2) = [0] [U46](x1) = [0] [U51](x1, x2, x3) = [0] [U52](x1, x2, x3) = [0] [U53](x1, x2, x3) = [0] [U54](x1, x2, x3) = [0] [U55](x1, x2) = [0] [U56](x1) = [0] [U61](x1, x2) = [0] [U62](x1, x2) = [0] [U63](x1) = [0] [isPal](x1) = [0] [U81](x1, x2) = [0] [U82](x1, x2) = [0] [U83](x1) = [0] [isNePal](x1) = [0] [U91](x1, x2) = [1] [U92](x1) = [1] [n__nil] = [3] [n____](x1, x2) = [1] x1 + [1] x2 + [1] [n__a] = [0] [n__e] = [0] [n__i] = [0] [n__o] = [0] [n__u] = [0] [a] = [0] [e] = [0] [i] = [0] [o] = [0] [u] = [0] [U11^#](x1, x2) = [7] x2 + [1] [U12^#](x1, x2) = [7] x2 + [0] [isPalListKind^#](x1) = [0] [isNeList^#](x1) = [7] x1 + [0] [U41^#](x1, x2, x3) = [1] x1 + [7] x2 + [7] x3 + [4] [U51^#](x1, x2, x3) = [4] x1 + [7] x2 + [7] x3 + [1] [U21^#](x1, x2, x3) = [7] x1 + [7] x2 + [7] x3 + [4] [U22^#](x1, x2, x3) = [3] x1 + [7] x2 + [7] x3 + [7] [U23^#](x1, x2, x3) = [3] x1 + [7] x2 + [7] x3 + [7] [U24^#](x1, x2, x3) = [4] x1 + [7] x2 + [7] x3 + [6] [U25^#](x1, x2) = [3] x1 + [7] x2 + [2] [isList^#](x1) = [7] x1 + [5] [U42^#](x1, x2, x3) = [7] x2 + [7] x3 + [5] [U43^#](x1, x2, x3) = [7] x2 + [7] x3 + [5] [U44^#](x1, x2, x3) = [7] x2 + [7] x3 + [5] [U45^#](x1, x2) = [7] x2 + [0] [U52^#](x1, x2, x3) = [7] x2 + [7] x3 + [5] [U53^#](x1, x2, x3) = [7] x2 + [7] x3 + [5] [U54^#](x1, x2, x3) = [7] x2 + [7] x3 + [5] [U55^#](x1, x2) = [7] x2 + [5] [U61^#](x1, x2) = [0] [U71^#](x1, x2, x3) = [0] [U72^#](x1, x2) = [0] [U73^#](x1, x2) = [0] [isPal^#](x1) = [0] [U81^#](x1, x2) = [0] [U82^#](x1, x2) = [0] [isNePal^#](x1) = [0] [c_1](x1, x2) = [0] [c_2](x1) = [0] [c_5](x1, x2) = [0] [c_6](x1, x2) = [0] [c_9](x1, x2) = [0] [c_10](x1, x2) = [0] [c_11](x1, x2) = [0] [c_12](x1, x2) = [0] [c_13](x1, x2) = [0] [c_14](x1, x2) = [0] [c_15](x1) = [0] [c_16](x1, x2) = [0] [c_17](x1, x2) = [0] [c_18](x1, x2) = [0] [c_19](x1, x2) = [0] [c_20](x1, x2) = [0] [c_21](x1) = [0] [c_22](x1, x2) = [0] [c_23](x1, x2) = [0] [c_24](x1, x2) = [0] [c_25](x1) = [0] [c_26](x1) = [0] [c_27](x1, x2) = [0] [c_28](x1, x2) = [0] [c_29](x1) = [0] [c_30](x1, x2) = [0] [c_31](x1, x2) = [0] [c_32](x1) = [0] [c_33](x1, x2) = [0] [c] = [0] [c_1](x1) = [1] x1 + [0] [c_2](x1) = [1] x1 + [0] [c_3](x1) = [1] x1 + [1] [c_4](x1) = [1] x1 + [0] [c_5](x1) = [1] x1 + [0] [c_6](x1) = [1] x1 + [0] [c_7](x1) = [1] x1 + [0] [c_8](x1) = [1] x1 + [0] [c_9](x1) = [1] x1 + [0] [c_10](x1, x2) = [1] x1 + [1] x2 + [0] [c_11] = [0] [c_12](x1) = [0] [c_13] = [0] [c_14](x1) = [1] x1 + [1] [c_15](x1) = [1] x1 + [0] [c_16](x1) = [1] x1 + [0] [c_17](x1) = [1] x1 + [0] [c_18](x1) = [1] x1 + [0] [c_19](x1, x2) = [1] x1 + [1] x2 + [0] [c_20](x1) = [1] x1 + [0] [c_21](x1) = [1] x1 + [0] [c_22](x1) = [1] x1 + [0] [c_23](x1, x2) = [1] x1 + [1] x2 + [0] [c_24](x1) = [1] x1 + [0] [c_25](x1) = [0] [c_26](x1, x2) = [0] [c_27](x1) = [0] [c_28](x1) = [0] The order satisfies the following ordering constraints: [__(X1, X2)] = [1] X1 + [1] X2 + [1] >= [1] X1 + [1] X2 + [1] = [n____(X1, X2)] [nil()] = [3] >= [3] = [n__nil()] [U11(tt(), V)] = [1] >= [1] = [U12(isPalListKind(activate(V)), activate(V))] [U12(tt(), V)] = [1] >= [1] = [U13(isNeList(activate(V)))] [isPalListKind(n__nil())] = [1] >= [1] = [tt()] [isPalListKind(n____(V1, V2))] = [1] >= [1] = [U91(isPalListKind(activate(V1)), activate(V2))] [isPalListKind(n__a())] = [1] >= [1] = [tt()] [isPalListKind(n__e())] = [1] >= [1] = [tt()] [isPalListKind(n__i())] = [1] >= [1] = [tt()] [isPalListKind(n__o())] = [1] >= [1] = [tt()] [isPalListKind(n__u())] = [1] >= [1] = [tt()] [activate(X)] = [1] X + [0] >= [1] X + [0] = [X] [activate(n__nil())] = [3] >= [3] = [nil()] [activate(n____(X1, X2))] = [1] X1 + [1] X2 + [1] >= [1] X1 + [1] X2 + [1] = [__(X1, X2)] [activate(n__a())] = [0] >= [0] = [a()] [activate(n__e())] = [0] >= [0] = [e()] [activate(n__i())] = [0] >= [0] = [i()] [activate(n__o())] = [0] >= [0] = [o()] [activate(n__u())] = [0] >= [0] = [u()] [U13(tt())] = [1] >= [1] = [tt()] [isNeList(V)] = [0] >= [0] = [U31(isPalListKind(activate(V)), activate(V))] [isNeList(n____(V1, V2))] = [0] >= [0] = [U41(isPalListKind(activate(V1)), activate(V1), activate(V2))] [isNeList(n____(V1, V2))] = [0] >= [0] = [U51(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U21(tt(), V1, V2)] = [1] >= [1] = [U22(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U22(tt(), V1, V2)] = [1] >= [1] = [U23(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U23(tt(), V1, V2)] = [1] >= [1] = [U24(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U24(tt(), V1, V2)] = [1] >= [1] = [U25(isList(activate(V1)), activate(V2))] [U25(tt(), V2)] = [1] >= [1] = [U26(isList(activate(V2)))] [isList(V)] = [1] >= [1] = [U11(isPalListKind(activate(V)), activate(V))] [isList(n__nil())] = [1] >= [1] = [tt()] [isList(n____(V1, V2))] = [1] >= [1] = [U21(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U26(tt())] = [1] >= [1] = [tt()] [U31(tt(), V)] = [0] >= [0] = [U32(isPalListKind(activate(V)), activate(V))] [U32(tt(), V)] = [0] >= [0] = [U33(isQid(activate(V)))] [U33(tt())] = [0] ? [1] = [tt()] [isQid(n__a())] = [0] ? [1] = [tt()] [isQid(n__e())] = [0] ? [1] = [tt()] [isQid(n__i())] = [0] ? [1] = [tt()] [isQid(n__o())] = [0] ? [1] = [tt()] [isQid(n__u())] = [0] ? [1] = [tt()] [U41(tt(), V1, V2)] = [0] >= [0] = [U42(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U42(tt(), V1, V2)] = [0] >= [0] = [U43(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U43(tt(), V1, V2)] = [0] >= [0] = [U44(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U44(tt(), V1, V2)] = [0] >= [0] = [U45(isList(activate(V1)), activate(V2))] [U45(tt(), V2)] = [0] >= [0] = [U46(isNeList(activate(V2)))] [U46(tt())] = [0] ? [1] = [tt()] [U51(tt(), V1, V2)] = [0] >= [0] = [U52(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U52(tt(), V1, V2)] = [0] >= [0] = [U53(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U53(tt(), V1, V2)] = [0] >= [0] = [U54(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U54(tt(), V1, V2)] = [0] >= [0] = [U55(isNeList(activate(V1)), activate(V2))] [U55(tt(), V2)] = [0] >= [0] = [U56(isList(activate(V2)))] [U56(tt())] = [0] ? [1] = [tt()] [U91(tt(), V2)] = [1] >= [1] = [U92(isPalListKind(activate(V2)))] [U92(tt())] = [1] >= [1] = [tt()] [a()] = [0] >= [0] = [n__a()] [e()] = [0] >= [0] = [n__e()] [i()] = [0] >= [0] = [n__i()] [o()] = [0] >= [0] = [n__o()] [u()] = [0] >= [0] = [n__u()] [U11^#(tt(), V)] = [7] V + [1] > [7] V + [0] = [c_1(U12^#(isPalListKind(activate(V)), activate(V)))] [U12^#(tt(), V)] = [7] V + [0] >= [7] V + [0] = [c_2(isNeList^#(activate(V)))] [isNeList^#(n____(V1, V2))] = [7] V1 + [7] V2 + [7] > [7] V1 + [7] V2 + [6] = [c_3(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))] [isNeList^#(n____(V1, V2))] = [7] V1 + [7] V2 + [7] > [7] V1 + [7] V2 + [6] = [c_14(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))] [U41^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [5] >= [7] V1 + [7] V2 + [5] = [c_15(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))] [U51^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [5] >= [7] V1 + [7] V2 + [5] = [c_4(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))] [U21^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [11] > [7] V1 + [7] V2 + [10] = [c_16(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))] [U22^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [10] >= [7] V1 + [7] V2 + [10] = [c_17(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))] [U23^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [10] >= [7] V1 + [7] V2 + [10] = [c_18(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))] [U24^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [10] >= [7] V1 + [7] V2 + [10] = [c_19(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1)))] [U25^#(tt(), V2)] = [7] V2 + [5] >= [7] V2 + [5] = [c_20(isList^#(activate(V2)))] [isList^#(V)] = [7] V + [5] > [7] V + [1] = [c_5(U11^#(isPalListKind(activate(V)), activate(V)))] [isList^#(n____(V1, V2))] = [7] V1 + [7] V2 + [12] > [7] V1 + [7] V2 + [11] = [c_6(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))] [U42^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [5] >= [7] V1 + [7] V2 + [5] = [c_21(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))] [U43^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [5] >= [7] V1 + [7] V2 + [5] = [c_22(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))] [U44^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [5] >= [7] V1 + [7] V2 + [5] = [c_23(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1)))] [U45^#(tt(), V2)] = [7] V2 + [0] >= [7] V2 + [0] = [c_7(isNeList^#(activate(V2)))] [U52^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [5] >= [7] V1 + [7] V2 + [5] = [c_8(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))] [U53^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [5] >= [7] V1 + [7] V2 + [5] = [c_9(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))] [U54^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [5] >= [7] V1 + [7] V2 + [5] = [c_10(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1)))] [U55^#(tt(), V2)] = [7] V2 + [5] >= [7] V2 + [5] = [c_24(isList^#(activate(V2)))] We return to the main proof. Consider the set of all dependency pairs : { 1: U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V))) , 2: U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , 3: isNeList^#(n____(V1, V2)) -> c_3(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , 4: U51^#(tt(), V1, V2) -> c_4(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , 5: isList^#(V) -> c_5(U11^#(isPalListKind(activate(V)), activate(V))) , 6: isList^#(n____(V1, V2)) -> c_6(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , 7: U45^#(tt(), V2) -> c_7(isNeList^#(activate(V2))) , 8: U52^#(tt(), V1, V2) -> c_8(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , 9: U53^#(tt(), V1, V2) -> c_9(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , 10: U54^#(tt(), V1, V2) -> c_10(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , 11: isNeList^#(n____(V1, V2)) -> c_14(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , 12: U41^#(tt(), V1, V2) -> c_15(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , 13: U21^#(tt(), V1, V2) -> c_16(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , 14: U22^#(tt(), V1, V2) -> c_17(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , 15: U23^#(tt(), V1, V2) -> c_18(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , 16: U24^#(tt(), V1, V2) -> c_19(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 17: U25^#(tt(), V2) -> c_20(isList^#(activate(V2))) , 18: U42^#(tt(), V1, V2) -> c_21(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , 19: U43^#(tt(), V1, V2) -> c_22(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , 20: U44^#(tt(), V1, V2) -> c_23(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 21: U55^#(tt(), V2) -> c_24(isList^#(activate(V2))) } Processor 'matrix interpretation of dimension 1' induces the complexity certificate YES(?,O(n^1)) on application of dependency pairs {1,3,5,6,11,13}. These cover all (indirect) predecessors of dependency pairs {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21}, their number of application is equally bounded. The dependency pairs are shifted into the weak component. We are left with following problem, upon which TcT provides the certificate YES(O(1),O(1)). Weak DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_3(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , isNeList^#(n____(V1, V2)) -> c_14(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U41^#(tt(), V1, V2) -> c_15(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U51^#(tt(), V1, V2) -> c_4(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U21^#(tt(), V1, V2) -> c_16(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U22^#(tt(), V1, V2) -> c_17(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U23^#(tt(), V1, V2) -> c_18(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U24^#(tt(), V1, V2) -> c_19(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_20(isList^#(activate(V2))) , isList^#(V) -> c_5(U11^#(isPalListKind(activate(V)), activate(V))) , isList^#(n____(V1, V2)) -> c_6(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U42^#(tt(), V1, V2) -> c_21(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U43^#(tt(), V1, V2) -> c_22(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U44^#(tt(), V1, V2) -> c_23(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_7(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_8(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U53^#(tt(), V1, V2) -> c_9(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U54^#(tt(), V1, V2) -> c_10(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_24(isList^#(activate(V2))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(1)) The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_3(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , isNeList^#(n____(V1, V2)) -> c_14(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U41^#(tt(), V1, V2) -> c_15(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U51^#(tt(), V1, V2) -> c_4(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U21^#(tt(), V1, V2) -> c_16(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U22^#(tt(), V1, V2) -> c_17(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U23^#(tt(), V1, V2) -> c_18(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U24^#(tt(), V1, V2) -> c_19(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_20(isList^#(activate(V2))) , isList^#(V) -> c_5(U11^#(isPalListKind(activate(V)), activate(V))) , isList^#(n____(V1, V2)) -> c_6(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U42^#(tt(), V1, V2) -> c_21(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U43^#(tt(), V1, V2) -> c_22(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U44^#(tt(), V1, V2) -> c_23(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_7(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_8(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U53^#(tt(), V1, V2) -> c_9(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U54^#(tt(), V1, V2) -> c_10(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_24(isList^#(activate(V2))) } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(1)). Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(1)) No rule is usable, rules are removed from the input problem. We are left with following problem, upon which TcT provides the certificate YES(O(1),O(1)). Rules: Empty Obligation: innermost runtime complexity Answer: YES(O(1),O(1)) Empty rules are trivially bounded We return to the main proof. We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^1)). Strict DPs: { isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) } Weak DPs: { U11^#(tt(), V) -> U12^#(isPalListKind(activate(V)), activate(V)) , U11^#(tt(), V) -> isPalListKind^#(activate(V)) , U12^#(tt(), V) -> isNeList^#(activate(V)) , isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNeList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1)) , isNeList^#(n____(V1, V2)) -> U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList^#(n____(V1, V2)) -> U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , U41^#(tt(), V1, V2) -> isPalListKind^#(activate(V1)) , U41^#(tt(), V1, V2) -> U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U51^#(tt(), V1, V2) -> isPalListKind^#(activate(V1)) , U51^#(tt(), V1, V2) -> U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21^#(tt(), V1, V2) -> isPalListKind^#(activate(V1)) , U21^#(tt(), V1, V2) -> U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , U22^#(tt(), V1, V2) -> U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , U23^#(tt(), V1, V2) -> U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24^#(tt(), V1, V2) -> U25^#(isList(activate(V1)), activate(V2)) , U24^#(tt(), V1, V2) -> isList^#(activate(V1)) , U25^#(tt(), V2) -> isList^#(activate(V2)) , isList^#(V) -> U11^#(isPalListKind(activate(V)), activate(V)) , isList^#(V) -> isPalListKind^#(activate(V)) , isList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1)) , isList^#(n____(V1, V2)) -> U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , U42^#(tt(), V1, V2) -> U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , U43^#(tt(), V1, V2) -> U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44^#(tt(), V1, V2) -> isList^#(activate(V1)) , U44^#(tt(), V1, V2) -> U45^#(isList(activate(V1)), activate(V2)) , U45^#(tt(), V2) -> isNeList^#(activate(V2)) , U52^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , U52^#(tt(), V1, V2) -> U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , U53^#(tt(), V1, V2) -> U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54^#(tt(), V1, V2) -> isNeList^#(activate(V1)) , U54^#(tt(), V1, V2) -> U55^#(isNeList(activate(V1)), activate(V2)) , U55^#(tt(), V2) -> isList^#(activate(V2)) , U61^#(tt(), V) -> isPalListKind^#(activate(V)) , U71^#(tt(), I, P) -> isPalListKind^#(activate(I)) , U71^#(tt(), I, P) -> U72^#(isPalListKind(activate(I)), activate(P)) , U72^#(tt(), P) -> U73^#(isPal(activate(P)), activate(P)) , U72^#(tt(), P) -> isPal^#(activate(P)) , U73^#(tt(), P) -> isPalListKind^#(activate(P)) , isPal^#(V) -> isPalListKind^#(activate(V)) , isPal^#(V) -> U81^#(isPalListKind(activate(V)), activate(V)) , U81^#(tt(), V) -> isPalListKind^#(activate(V)) , U81^#(tt(), V) -> U82^#(isPalListKind(activate(V)), activate(V)) , U82^#(tt(), V) -> isNePal^#(activate(V)) , isNePal^#(V) -> isPalListKind^#(activate(V)) , isNePal^#(V) -> U61^#(isPalListKind(activate(V)), activate(V)) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^1)) We use the processor 'matrix interpretation of dimension 1' to orient following rules strictly. DPs: { 2: U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , 4: U11^#(tt(), V) -> isPalListKind^#(activate(V)) , 7: isNeList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1)) , 8: isNeList^#(n____(V1, V2)) -> U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , 10: U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , 11: U41^#(tt(), V1, V2) -> isPalListKind^#(activate(V1)) , 13: U51^#(tt(), V1, V2) -> isPalListKind^#(activate(V1)) , 14: U51^#(tt(), V1, V2) -> U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , 15: U21^#(tt(), V1, V2) -> isPalListKind^#(activate(V1)) , 17: U22^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , 19: U23^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , 25: isList^#(V) -> isPalListKind^#(activate(V)) , 26: isList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1)) , 27: isList^#(n____(V1, V2)) -> U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , 28: U42^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , 30: U43^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , 35: U52^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , 37: U53^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , 40: U54^#(tt(), V1, V2) -> U55^#(isNeList(activate(V1)), activate(V2)) , 42: U61^#(tt(), V) -> isPalListKind^#(activate(V)) , 43: U71^#(tt(), I, P) -> isPalListKind^#(activate(I)) , 45: U72^#(tt(), P) -> U73^#(isPal(activate(P)), activate(P)) , 48: isPal^#(V) -> isPalListKind^#(activate(V)) , 50: U81^#(tt(), V) -> isPalListKind^#(activate(V)) , 53: isNePal^#(V) -> isPalListKind^#(activate(V)) } Trs: { isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U33(tt()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) } Sub-proof: ---------- The following argument positions are usable: Uargs(c_3) = {1, 2}, Uargs(c_4) = {1, 2}, Uargs(c_7) = {1}, Uargs(c_8) = {1} TcT has computed the following constructor-based matrix interpretation satisfying not(EDA). [__](x1, x2) = [1] x1 + [1] x2 + [4] [nil] = [2] [U11](x1, x2) = [0] [tt] = [4] [U12](x1, x2) = [0] [isPalListKind](x1) = [6] [activate](x1) = [1] x1 + [0] [U13](x1) = [0] [isNeList](x1) = [2] x1 + [0] [U21](x1, x2, x3) = [0] [U22](x1, x2, x3) = [0] [U23](x1, x2, x3) = [0] [U24](x1, x2, x3) = [0] [U25](x1, x2) = [0] [isList](x1) = [0] [U26](x1) = [0] [U31](x1, x2) = [2] x2 + [0] [U32](x1, x2) = [2] x2 + [0] [U33](x1) = [2] x1 + [0] [isQid](x1) = [1] x1 + [0] [U41](x1, x2, x3) = [7] [U42](x1, x2, x3) = [1] x1 + [0] [U43](x1, x2, x3) = [4] [U44](x1, x2, x3) = [4] [U45](x1, x2) = [4] [U46](x1) = [4] [U51](x1, x2, x3) = [4] [U52](x1, x2, x3) = [4] [U53](x1, x2, x3) = [4] [U54](x1, x2, x3) = [4] [U55](x1, x2) = [4] [U56](x1) = [4] [U61](x1, x2) = [0] [U62](x1, x2) = [0] [U63](x1) = [0] [isPal](x1) = [0] [U81](x1, x2) = [0] [U82](x1, x2) = [0] [U83](x1) = [0] [isNePal](x1) = [0] [U91](x1, x2) = [4] [U92](x1) = [4] [n__nil] = [2] [n____](x1, x2) = [1] x1 + [1] x2 + [4] [n__a] = [4] [n__e] = [4] [n__i] = [4] [n__o] = [4] [n__u] = [6] [a] = [4] [e] = [4] [i] = [4] [o] = [4] [u] = [6] [U11^#](x1, x2) = [2] x2 + [7] [U12^#](x1, x2) = [2] x2 + [7] [isPalListKind^#](x1) = [1] x1 + [3] [isNeList^#](x1) = [2] x1 + [7] [U91^#](x1, x2) = [1] x2 + [4] [U31^#](x1, x2) = [1] x2 + [4] [U41^#](x1, x2, x3) = [2] x2 + [2] x3 + [7] [U51^#](x1, x2, x3) = [2] x1 + [2] x2 + [2] x3 + [3] [U21^#](x1, x2, x3) = [2] x2 + [2] x3 + [7] [U22^#](x1, x2, x3) = [2] x2 + [2] x3 + [7] [U23^#](x1, x2, x3) = [2] x2 + [2] x3 + [7] [U24^#](x1, x2, x3) = [2] x2 + [2] x3 + [7] [U25^#](x1, x2) = [2] x2 + [7] [isList^#](x1) = [2] x1 + [7] [U42^#](x1, x2, x3) = [2] x2 + [2] x3 + [7] [U43^#](x1, x2, x3) = [2] x2 + [2] x3 + [7] [U44^#](x1, x2, x3) = [2] x2 + [2] x3 + [7] [U45^#](x1, x2) = [2] x2 + [7] [U52^#](x1, x2, x3) = [2] x2 + [2] x3 + [7] [U53^#](x1, x2, x3) = [2] x2 + [2] x3 + [7] [U54^#](x1, x2, x3) = [2] x2 + [2] x3 + [7] [U55^#](x1, x2) = [1] x1 + [2] x2 + [3] [U61^#](x1, x2) = [1] x2 + [7] [U71^#](x1, x2, x3) = [7] x2 + [7] x3 + [7] [U72^#](x1, x2) = [2] x2 + [7] [U73^#](x1, x2) = [1] x2 + [3] [isPal^#](x1) = [2] x1 + [7] [U81^#](x1, x2) = [1] x2 + [7] [U82^#](x1, x2) = [1] x2 + [7] [isNePal^#](x1) = [1] x1 + [7] [c_3](x1, x2) = [1] x1 + [1] x2 + [0] [c_4](x1, x2) = [1] x1 + [1] x2 + [0] [c_7](x1) = [1] x1 + [0] [c_8](x1) = [1] x1 + [0] The order satisfies the following ordering constraints: [__(X1, X2)] = [1] X1 + [1] X2 + [4] >= [1] X1 + [1] X2 + [4] = [n____(X1, X2)] [nil()] = [2] >= [2] = [n__nil()] [U11(tt(), V)] = [0] >= [0] = [U12(isPalListKind(activate(V)), activate(V))] [U12(tt(), V)] = [0] >= [0] = [U13(isNeList(activate(V)))] [isPalListKind(n__nil())] = [6] > [4] = [tt()] [isPalListKind(n____(V1, V2))] = [6] > [4] = [U91(isPalListKind(activate(V1)), activate(V2))] [isPalListKind(n__a())] = [6] > [4] = [tt()] [isPalListKind(n__e())] = [6] > [4] = [tt()] [isPalListKind(n__i())] = [6] > [4] = [tt()] [isPalListKind(n__o())] = [6] > [4] = [tt()] [isPalListKind(n__u())] = [6] > [4] = [tt()] [activate(X)] = [1] X + [0] >= [1] X + [0] = [X] [activate(n__nil())] = [2] >= [2] = [nil()] [activate(n____(X1, X2))] = [1] X1 + [1] X2 + [4] >= [1] X1 + [1] X2 + [4] = [__(X1, X2)] [activate(n__a())] = [4] >= [4] = [a()] [activate(n__e())] = [4] >= [4] = [e()] [activate(n__i())] = [4] >= [4] = [i()] [activate(n__o())] = [4] >= [4] = [o()] [activate(n__u())] = [6] >= [6] = [u()] [U13(tt())] = [0] ? [4] = [tt()] [isNeList(V)] = [2] V + [0] >= [2] V + [0] = [U31(isPalListKind(activate(V)), activate(V))] [isNeList(n____(V1, V2))] = [2] V1 + [2] V2 + [8] > [7] = [U41(isPalListKind(activate(V1)), activate(V1), activate(V2))] [isNeList(n____(V1, V2))] = [2] V1 + [2] V2 + [8] > [4] = [U51(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U21(tt(), V1, V2)] = [0] >= [0] = [U22(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U22(tt(), V1, V2)] = [0] >= [0] = [U23(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U23(tt(), V1, V2)] = [0] >= [0] = [U24(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U24(tt(), V1, V2)] = [0] >= [0] = [U25(isList(activate(V1)), activate(V2))] [U25(tt(), V2)] = [0] >= [0] = [U26(isList(activate(V2)))] [isList(V)] = [0] >= [0] = [U11(isPalListKind(activate(V)), activate(V))] [isList(n__nil())] = [0] ? [4] = [tt()] [isList(n____(V1, V2))] = [0] >= [0] = [U21(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U26(tt())] = [0] ? [4] = [tt()] [U31(tt(), V)] = [2] V + [0] >= [2] V + [0] = [U32(isPalListKind(activate(V)), activate(V))] [U32(tt(), V)] = [2] V + [0] >= [2] V + [0] = [U33(isQid(activate(V)))] [U33(tt())] = [8] > [4] = [tt()] [isQid(n__a())] = [4] >= [4] = [tt()] [isQid(n__e())] = [4] >= [4] = [tt()] [isQid(n__i())] = [4] >= [4] = [tt()] [isQid(n__o())] = [4] >= [4] = [tt()] [isQid(n__u())] = [6] > [4] = [tt()] [U41(tt(), V1, V2)] = [7] > [6] = [U42(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U42(tt(), V1, V2)] = [4] >= [4] = [U43(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U43(tt(), V1, V2)] = [4] >= [4] = [U44(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U44(tt(), V1, V2)] = [4] >= [4] = [U45(isList(activate(V1)), activate(V2))] [U45(tt(), V2)] = [4] >= [4] = [U46(isNeList(activate(V2)))] [U46(tt())] = [4] >= [4] = [tt()] [U51(tt(), V1, V2)] = [4] >= [4] = [U52(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U52(tt(), V1, V2)] = [4] >= [4] = [U53(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U53(tt(), V1, V2)] = [4] >= [4] = [U54(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U54(tt(), V1, V2)] = [4] >= [4] = [U55(isNeList(activate(V1)), activate(V2))] [U55(tt(), V2)] = [4] >= [4] = [U56(isList(activate(V2)))] [U56(tt())] = [4] >= [4] = [tt()] [U61(tt(), V)] = [0] >= [0] = [U62(isPalListKind(activate(V)), activate(V))] [U62(tt(), V)] = [0] >= [0] = [U63(isQid(activate(V)))] [U63(tt())] = [0] ? [4] = [tt()] [isPal(V)] = [0] >= [0] = [U81(isPalListKind(activate(V)), activate(V))] [isPal(n__nil())] = [0] ? [4] = [tt()] [U81(tt(), V)] = [0] >= [0] = [U82(isPalListKind(activate(V)), activate(V))] [U82(tt(), V)] = [0] >= [0] = [U83(isNePal(activate(V)))] [U83(tt())] = [0] ? [4] = [tt()] [isNePal(V)] = [0] >= [0] = [U61(isPalListKind(activate(V)), activate(V))] [U91(tt(), V2)] = [4] >= [4] = [U92(isPalListKind(activate(V2)))] [U92(tt())] = [4] >= [4] = [tt()] [a()] = [4] >= [4] = [n__a()] [e()] = [4] >= [4] = [n__e()] [i()] = [4] >= [4] = [n__i()] [o()] = [4] >= [4] = [n__o()] [u()] = [6] >= [6] = [n__u()] [U11^#(tt(), V)] = [2] V + [7] >= [2] V + [7] = [U12^#(isPalListKind(activate(V)), activate(V))] [U11^#(tt(), V)] = [2] V + [7] > [1] V + [3] = [isPalListKind^#(activate(V))] [U12^#(tt(), V)] = [2] V + [7] >= [2] V + [7] = [isNeList^#(activate(V))] [isPalListKind^#(n____(V1, V2))] = [1] V1 + [1] V2 + [7] >= [1] V1 + [1] V2 + [7] = [c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1)))] [isNeList^#(V)] = [2] V + [7] >= [2] V + [7] = [c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)))] [isNeList^#(n____(V1, V2))] = [2] V1 + [2] V2 + [15] > [1] V1 + [3] = [isPalListKind^#(activate(V1))] [isNeList^#(n____(V1, V2))] = [2] V1 + [2] V2 + [15] > [2] V1 + [2] V2 + [7] = [U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))] [isNeList^#(n____(V1, V2))] = [2] V1 + [2] V2 + [15] >= [2] V1 + [2] V2 + [15] = [U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U91^#(tt(), V2)] = [1] V2 + [4] > [1] V2 + [3] = [c_7(isPalListKind^#(activate(V2)))] [U31^#(tt(), V)] = [1] V + [4] > [1] V + [3] = [c_8(isPalListKind^#(activate(V)))] [U41^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7] > [1] V1 + [3] = [isPalListKind^#(activate(V1))] [U41^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7] >= [2] V1 + [2] V2 + [7] = [U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U51^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [11] > [1] V1 + [3] = [isPalListKind^#(activate(V1))] [U51^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [11] > [2] V1 + [2] V2 + [7] = [U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U21^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7] > [1] V1 + [3] = [isPalListKind^#(activate(V1))] [U21^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7] >= [2] V1 + [2] V2 + [7] = [U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U22^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7] > [1] V2 + [3] = [isPalListKind^#(activate(V2))] [U22^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7] >= [2] V1 + [2] V2 + [7] = [U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U23^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7] > [1] V2 + [3] = [isPalListKind^#(activate(V2))] [U23^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7] >= [2] V1 + [2] V2 + [7] = [U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U24^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7] >= [2] V2 + [7] = [U25^#(isList(activate(V1)), activate(V2))] [U24^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7] >= [2] V1 + [7] = [isList^#(activate(V1))] [U25^#(tt(), V2)] = [2] V2 + [7] >= [2] V2 + [7] = [isList^#(activate(V2))] [isList^#(V)] = [2] V + [7] >= [2] V + [7] = [U11^#(isPalListKind(activate(V)), activate(V))] [isList^#(V)] = [2] V + [7] > [1] V + [3] = [isPalListKind^#(activate(V))] [isList^#(n____(V1, V2))] = [2] V1 + [2] V2 + [15] > [1] V1 + [3] = [isPalListKind^#(activate(V1))] [isList^#(n____(V1, V2))] = [2] V1 + [2] V2 + [15] > [2] V1 + [2] V2 + [7] = [U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U42^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7] > [1] V2 + [3] = [isPalListKind^#(activate(V2))] [U42^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7] >= [2] V1 + [2] V2 + [7] = [U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U43^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7] > [1] V2 + [3] = [isPalListKind^#(activate(V2))] [U43^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7] >= [2] V1 + [2] V2 + [7] = [U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U44^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7] >= [2] V1 + [7] = [isList^#(activate(V1))] [U44^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7] >= [2] V2 + [7] = [U45^#(isList(activate(V1)), activate(V2))] [U45^#(tt(), V2)] = [2] V2 + [7] >= [2] V2 + [7] = [isNeList^#(activate(V2))] [U52^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7] > [1] V2 + [3] = [isPalListKind^#(activate(V2))] [U52^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7] >= [2] V1 + [2] V2 + [7] = [U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U53^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7] > [1] V2 + [3] = [isPalListKind^#(activate(V2))] [U53^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7] >= [2] V1 + [2] V2 + [7] = [U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U54^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7] >= [2] V1 + [7] = [isNeList^#(activate(V1))] [U54^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7] > [2] V1 + [2] V2 + [3] = [U55^#(isNeList(activate(V1)), activate(V2))] [U55^#(tt(), V2)] = [2] V2 + [7] >= [2] V2 + [7] = [isList^#(activate(V2))] [U61^#(tt(), V)] = [1] V + [7] > [1] V + [3] = [isPalListKind^#(activate(V))] [U71^#(tt(), I, P)] = [7] I + [7] P + [7] > [1] I + [3] = [isPalListKind^#(activate(I))] [U71^#(tt(), I, P)] = [7] I + [7] P + [7] >= [2] P + [7] = [U72^#(isPalListKind(activate(I)), activate(P))] [U72^#(tt(), P)] = [2] P + [7] > [1] P + [3] = [U73^#(isPal(activate(P)), activate(P))] [U72^#(tt(), P)] = [2] P + [7] >= [2] P + [7] = [isPal^#(activate(P))] [U73^#(tt(), P)] = [1] P + [3] >= [1] P + [3] = [isPalListKind^#(activate(P))] [isPal^#(V)] = [2] V + [7] > [1] V + [3] = [isPalListKind^#(activate(V))] [isPal^#(V)] = [2] V + [7] >= [1] V + [7] = [U81^#(isPalListKind(activate(V)), activate(V))] [U81^#(tt(), V)] = [1] V + [7] > [1] V + [3] = [isPalListKind^#(activate(V))] [U81^#(tt(), V)] = [1] V + [7] >= [1] V + [7] = [U82^#(isPalListKind(activate(V)), activate(V))] [U82^#(tt(), V)] = [1] V + [7] >= [1] V + [7] = [isNePal^#(activate(V))] [isNePal^#(V)] = [1] V + [7] > [1] V + [3] = [isPalListKind^#(activate(V))] [isNePal^#(V)] = [1] V + [7] >= [1] V + [7] = [U61^#(isPalListKind(activate(V)), activate(V))] We return to the main proof. Consider the set of all dependency pairs : { 1: isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , 2: U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , 3: U11^#(tt(), V) -> U12^#(isPalListKind(activate(V)), activate(V)) , 4: U11^#(tt(), V) -> isPalListKind^#(activate(V)) , 5: U12^#(tt(), V) -> isNeList^#(activate(V)) , 6: isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 7: isNeList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1)) , 8: isNeList^#(n____(V1, V2)) -> U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , 9: isNeList^#(n____(V1, V2)) -> U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , 10: U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , 11: U41^#(tt(), V1, V2) -> isPalListKind^#(activate(V1)) , 12: U41^#(tt(), V1, V2) -> U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , 13: U51^#(tt(), V1, V2) -> isPalListKind^#(activate(V1)) , 14: U51^#(tt(), V1, V2) -> U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , 15: U21^#(tt(), V1, V2) -> isPalListKind^#(activate(V1)) , 16: U21^#(tt(), V1, V2) -> U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , 17: U22^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , 18: U22^#(tt(), V1, V2) -> U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , 19: U23^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , 20: U23^#(tt(), V1, V2) -> U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , 21: U24^#(tt(), V1, V2) -> U25^#(isList(activate(V1)), activate(V2)) , 22: U24^#(tt(), V1, V2) -> isList^#(activate(V1)) , 23: U25^#(tt(), V2) -> isList^#(activate(V2)) , 24: isList^#(V) -> U11^#(isPalListKind(activate(V)), activate(V)) , 25: isList^#(V) -> isPalListKind^#(activate(V)) , 26: isList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1)) , 27: isList^#(n____(V1, V2)) -> U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , 28: U42^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , 29: U42^#(tt(), V1, V2) -> U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , 30: U43^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , 31: U43^#(tt(), V1, V2) -> U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , 32: U44^#(tt(), V1, V2) -> isList^#(activate(V1)) , 33: U44^#(tt(), V1, V2) -> U45^#(isList(activate(V1)), activate(V2)) , 34: U45^#(tt(), V2) -> isNeList^#(activate(V2)) , 35: U52^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , 36: U52^#(tt(), V1, V2) -> U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , 37: U53^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , 38: U53^#(tt(), V1, V2) -> U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , 39: U54^#(tt(), V1, V2) -> isNeList^#(activate(V1)) , 40: U54^#(tt(), V1, V2) -> U55^#(isNeList(activate(V1)), activate(V2)) , 41: U55^#(tt(), V2) -> isList^#(activate(V2)) , 42: U61^#(tt(), V) -> isPalListKind^#(activate(V)) , 43: U71^#(tt(), I, P) -> isPalListKind^#(activate(I)) , 44: U71^#(tt(), I, P) -> U72^#(isPalListKind(activate(I)), activate(P)) , 45: U72^#(tt(), P) -> U73^#(isPal(activate(P)), activate(P)) , 46: U72^#(tt(), P) -> isPal^#(activate(P)) , 47: U73^#(tt(), P) -> isPalListKind^#(activate(P)) , 48: isPal^#(V) -> isPalListKind^#(activate(V)) , 49: isPal^#(V) -> U81^#(isPalListKind(activate(V)), activate(V)) , 50: U81^#(tt(), V) -> isPalListKind^#(activate(V)) , 51: U81^#(tt(), V) -> U82^#(isPalListKind(activate(V)), activate(V)) , 52: U82^#(tt(), V) -> isNePal^#(activate(V)) , 53: isNePal^#(V) -> isPalListKind^#(activate(V)) , 54: isNePal^#(V) -> U61^#(isPalListKind(activate(V)), activate(V)) } Processor 'matrix interpretation of dimension 1' induces the complexity certificate YES(?,O(n^1)) on application of dependency pairs {2,4,7,8,10,11,13,14,15,17,19,25,26,27,28,30,35,37,40,42,43,45,48,50,53}. These cover all (indirect) predecessors of dependency pairs {2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,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,54}, their number of application is equally bounded. The dependency pairs are shifted into the weak component. We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^1)). Strict DPs: { isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) } Weak DPs: { U11^#(tt(), V) -> U12^#(isPalListKind(activate(V)), activate(V)) , U11^#(tt(), V) -> isPalListKind^#(activate(V)) , U12^#(tt(), V) -> isNeList^#(activate(V)) , isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNeList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1)) , isNeList^#(n____(V1, V2)) -> U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList^#(n____(V1, V2)) -> U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , U41^#(tt(), V1, V2) -> isPalListKind^#(activate(V1)) , U41^#(tt(), V1, V2) -> U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U51^#(tt(), V1, V2) -> isPalListKind^#(activate(V1)) , U51^#(tt(), V1, V2) -> U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21^#(tt(), V1, V2) -> isPalListKind^#(activate(V1)) , U21^#(tt(), V1, V2) -> U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , U22^#(tt(), V1, V2) -> U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , U23^#(tt(), V1, V2) -> U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24^#(tt(), V1, V2) -> U25^#(isList(activate(V1)), activate(V2)) , U24^#(tt(), V1, V2) -> isList^#(activate(V1)) , U25^#(tt(), V2) -> isList^#(activate(V2)) , isList^#(V) -> U11^#(isPalListKind(activate(V)), activate(V)) , isList^#(V) -> isPalListKind^#(activate(V)) , isList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1)) , isList^#(n____(V1, V2)) -> U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , U42^#(tt(), V1, V2) -> U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , U43^#(tt(), V1, V2) -> U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44^#(tt(), V1, V2) -> isList^#(activate(V1)) , U44^#(tt(), V1, V2) -> U45^#(isList(activate(V1)), activate(V2)) , U45^#(tt(), V2) -> isNeList^#(activate(V2)) , U52^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , U52^#(tt(), V1, V2) -> U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , U53^#(tt(), V1, V2) -> U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54^#(tt(), V1, V2) -> isNeList^#(activate(V1)) , U54^#(tt(), V1, V2) -> U55^#(isNeList(activate(V1)), activate(V2)) , U55^#(tt(), V2) -> isList^#(activate(V2)) , U61^#(tt(), V) -> isPalListKind^#(activate(V)) , U71^#(tt(), I, P) -> isPalListKind^#(activate(I)) , U71^#(tt(), I, P) -> U72^#(isPalListKind(activate(I)), activate(P)) , U72^#(tt(), P) -> U73^#(isPal(activate(P)), activate(P)) , U72^#(tt(), P) -> isPal^#(activate(P)) , U73^#(tt(), P) -> isPalListKind^#(activate(P)) , isPal^#(V) -> isPalListKind^#(activate(V)) , isPal^#(V) -> U81^#(isPalListKind(activate(V)), activate(V)) , U81^#(tt(), V) -> isPalListKind^#(activate(V)) , U81^#(tt(), V) -> U82^#(isPalListKind(activate(V)), activate(V)) , U82^#(tt(), V) -> isNePal^#(activate(V)) , isNePal^#(V) -> isPalListKind^#(activate(V)) , isNePal^#(V) -> U61^#(isPalListKind(activate(V)), activate(V)) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^1)) We use the processor 'matrix interpretation of dimension 1' to orient following rules strictly. DPs: { 1: isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , 3: U11^#(tt(), V) -> isPalListKind^#(activate(V)) , 4: U12^#(tt(), V) -> isNeList^#(activate(V)) , 5: isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 6: isNeList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1)) , 7: isNeList^#(n____(V1, V2)) -> U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , 8: isNeList^#(n____(V1, V2)) -> U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , 9: U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , 11: U41^#(tt(), V1, V2) -> isPalListKind^#(activate(V1)) , 13: U51^#(tt(), V1, V2) -> isPalListKind^#(activate(V1)) , 15: U21^#(tt(), V1, V2) -> isPalListKind^#(activate(V1)) , 17: U22^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , 19: U23^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , 21: U24^#(tt(), V1, V2) -> U25^#(isList(activate(V1)), activate(V2)) , 22: U24^#(tt(), V1, V2) -> isList^#(activate(V1)) , 23: U25^#(tt(), V2) -> isList^#(activate(V2)) , 24: isList^#(V) -> U11^#(isPalListKind(activate(V)), activate(V)) , 25: isList^#(V) -> isPalListKind^#(activate(V)) , 26: isList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1)) , 27: isList^#(n____(V1, V2)) -> U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , 28: U42^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , 30: U43^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , 32: U44^#(tt(), V1, V2) -> isList^#(activate(V1)) , 33: U44^#(tt(), V1, V2) -> U45^#(isList(activate(V1)), activate(V2)) , 34: U45^#(tt(), V2) -> isNeList^#(activate(V2)) , 35: U52^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , 36: U52^#(tt(), V1, V2) -> U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , 37: U53^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , 39: U54^#(tt(), V1, V2) -> isNeList^#(activate(V1)) , 40: U54^#(tt(), V1, V2) -> U55^#(isNeList(activate(V1)), activate(V2)) , 41: U55^#(tt(), V2) -> isList^#(activate(V2)) , 42: U61^#(tt(), V) -> isPalListKind^#(activate(V)) , 43: U71^#(tt(), I, P) -> isPalListKind^#(activate(I)) , 44: U71^#(tt(), I, P) -> U72^#(isPalListKind(activate(I)), activate(P)) , 45: U72^#(tt(), P) -> U73^#(isPal(activate(P)), activate(P)) , 47: U73^#(tt(), P) -> isPalListKind^#(activate(P)) , 48: isPal^#(V) -> isPalListKind^#(activate(V)) , 50: U81^#(tt(), V) -> isPalListKind^#(activate(V)) , 53: isNePal^#(V) -> isPalListKind^#(activate(V)) } Trs: { isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , isPal(n__nil()) -> tt() , U83(tt()) -> tt() } Sub-proof: ---------- The following argument positions are usable: Uargs(c_3) = {1, 2}, Uargs(c_4) = {1, 2}, Uargs(c_7) = {1}, Uargs(c_8) = {1} TcT has computed the following constructor-based matrix interpretation satisfying not(EDA). [__](x1, x2) = [1] x1 + [1] x2 + [2] [nil] = [4] [U11](x1, x2) = [0] [tt] = [4] [U12](x1, x2) = [0] [isPalListKind](x1) = [2] x1 + [1] [activate](x1) = [1] x1 + [0] [U13](x1) = [0] [isNeList](x1) = [0] [U21](x1, x2, x3) = [0] [U22](x1, x2, x3) = [0] [U23](x1, x2, x3) = [0] [U24](x1, x2, x3) = [0] [U25](x1, x2) = [0] [isList](x1) = [0] [U26](x1) = [0] [U31](x1, x2) = [0] [U32](x1, x2) = [0] [U33](x1) = [0] [isQid](x1) = [1] x1 + [1] [U41](x1, x2, x3) = [0] [U42](x1, x2, x3) = [0] [U43](x1, x2, x3) = [0] [U44](x1, x2, x3) = [0] [U45](x1, x2) = [0] [U46](x1) = [0] [U51](x1, x2, x3) = [0] [U52](x1, x2, x3) = [0] [U53](x1, x2, x3) = [0] [U54](x1, x2, x3) = [0] [U55](x1, x2) = [0] [U56](x1) = [0] [U61](x1, x2) = [1] x2 + [1] [U62](x1, x2) = [1] x2 + [1] [U63](x1) = [1] x1 + [0] [isPal](x1) = [2] x1 + [2] [U81](x1, x2) = [2] x2 + [2] [U82](x1, x2) = [2] x2 + [2] [U83](x1) = [2] x1 + [0] [isNePal](x1) = [1] x1 + [1] [U91](x1, x2) = [0] [U92](x1) = [0] [n__nil] = [4] [n____](x1, x2) = [1] x1 + [1] x2 + [2] [n__a] = [3] [n__e] = [7] [n__i] = [7] [n__o] = [4] [n__u] = [7] [a] = [3] [e] = [7] [i] = [7] [o] = [4] [u] = [7] [U11^#](x1, x2) = [6] x2 + [2] [U12^#](x1, x2) = [6] x2 + [2] [isPalListKind^#](x1) = [3] x1 + [0] [isNeList^#](x1) = [6] x1 + [1] [U91^#](x1, x2) = [3] x2 + [4] [U31^#](x1, x2) = [3] x2 + [0] [U41^#](x1, x2, x3) = [6] x2 + [6] x3 + [7] [U51^#](x1, x2, x3) = [6] x2 + [6] x3 + [6] [U21^#](x1, x2, x3) = [6] x2 + [6] x3 + [7] [U22^#](x1, x2, x3) = [6] x2 + [6] x3 + [7] [U23^#](x1, x2, x3) = [6] x2 + [6] x3 + [7] [U24^#](x1, x2, x3) = [6] x2 + [6] x3 + [7] [U25^#](x1, x2) = [6] x2 + [4] [isList^#](x1) = [6] x1 + [3] [U42^#](x1, x2, x3) = [6] x2 + [6] x3 + [7] [U43^#](x1, x2, x3) = [6] x2 + [6] x3 + [7] [U44^#](x1, x2, x3) = [6] x2 + [6] x3 + [7] [U45^#](x1, x2) = [6] x2 + [2] [U52^#](x1, x2, x3) = [6] x2 + [6] x3 + [6] [U53^#](x1, x2, x3) = [6] x2 + [6] x3 + [5] [U54^#](x1, x2, x3) = [6] x2 + [6] x3 + [5] [U55^#](x1, x2) = [6] x2 + [4] [U61^#](x1, x2) = [4] x2 + [6] [U71^#](x1, x2, x3) = [2] x1 + [7] x2 + [7] x3 + [5] [U72^#](x1, x2) = [7] x2 + [6] [U73^#](x1, x2) = [2] x1 + [3] x2 + [0] [isPal^#](x1) = [7] x1 + [6] [U81^#](x1, x2) = [4] x2 + [6] [U82^#](x1, x2) = [4] x2 + [6] [isNePal^#](x1) = [4] x1 + [6] [c_3](x1, x2) = [1] x1 + [1] x2 + [1] [c_4](x1, x2) = [1] x1 + [1] x2 + [0] [c_7](x1) = [1] x1 + [1] [c_8](x1) = [1] x1 + [0] The order satisfies the following ordering constraints: [__(X1, X2)] = [1] X1 + [1] X2 + [2] >= [1] X1 + [1] X2 + [2] = [n____(X1, X2)] [nil()] = [4] >= [4] = [n__nil()] [U11(tt(), V)] = [0] >= [0] = [U12(isPalListKind(activate(V)), activate(V))] [U12(tt(), V)] = [0] >= [0] = [U13(isNeList(activate(V)))] [isPalListKind(n__nil())] = [9] > [4] = [tt()] [isPalListKind(n____(V1, V2))] = [2] V1 + [2] V2 + [5] > [0] = [U91(isPalListKind(activate(V1)), activate(V2))] [isPalListKind(n__a())] = [7] > [4] = [tt()] [isPalListKind(n__e())] = [15] > [4] = [tt()] [isPalListKind(n__i())] = [15] > [4] = [tt()] [isPalListKind(n__o())] = [9] > [4] = [tt()] [isPalListKind(n__u())] = [15] > [4] = [tt()] [activate(X)] = [1] X + [0] >= [1] X + [0] = [X] [activate(n__nil())] = [4] >= [4] = [nil()] [activate(n____(X1, X2))] = [1] X1 + [1] X2 + [2] >= [1] X1 + [1] X2 + [2] = [__(X1, X2)] [activate(n__a())] = [3] >= [3] = [a()] [activate(n__e())] = [7] >= [7] = [e()] [activate(n__i())] = [7] >= [7] = [i()] [activate(n__o())] = [4] >= [4] = [o()] [activate(n__u())] = [7] >= [7] = [u()] [U13(tt())] = [0] ? [4] = [tt()] [isNeList(V)] = [0] >= [0] = [U31(isPalListKind(activate(V)), activate(V))] [isNeList(n____(V1, V2))] = [0] >= [0] = [U41(isPalListKind(activate(V1)), activate(V1), activate(V2))] [isNeList(n____(V1, V2))] = [0] >= [0] = [U51(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U21(tt(), V1, V2)] = [0] >= [0] = [U22(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U22(tt(), V1, V2)] = [0] >= [0] = [U23(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U23(tt(), V1, V2)] = [0] >= [0] = [U24(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U24(tt(), V1, V2)] = [0] >= [0] = [U25(isList(activate(V1)), activate(V2))] [U25(tt(), V2)] = [0] >= [0] = [U26(isList(activate(V2)))] [isList(V)] = [0] >= [0] = [U11(isPalListKind(activate(V)), activate(V))] [isList(n__nil())] = [0] ? [4] = [tt()] [isList(n____(V1, V2))] = [0] >= [0] = [U21(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U26(tt())] = [0] ? [4] = [tt()] [U31(tt(), V)] = [0] >= [0] = [U32(isPalListKind(activate(V)), activate(V))] [U32(tt(), V)] = [0] >= [0] = [U33(isQid(activate(V)))] [U33(tt())] = [0] ? [4] = [tt()] [isQid(n__a())] = [4] >= [4] = [tt()] [isQid(n__e())] = [8] > [4] = [tt()] [isQid(n__i())] = [8] > [4] = [tt()] [isQid(n__o())] = [5] > [4] = [tt()] [isQid(n__u())] = [8] > [4] = [tt()] [U41(tt(), V1, V2)] = [0] >= [0] = [U42(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U42(tt(), V1, V2)] = [0] >= [0] = [U43(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U43(tt(), V1, V2)] = [0] >= [0] = [U44(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U44(tt(), V1, V2)] = [0] >= [0] = [U45(isList(activate(V1)), activate(V2))] [U45(tt(), V2)] = [0] >= [0] = [U46(isNeList(activate(V2)))] [U46(tt())] = [0] ? [4] = [tt()] [U51(tt(), V1, V2)] = [0] >= [0] = [U52(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U52(tt(), V1, V2)] = [0] >= [0] = [U53(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U53(tt(), V1, V2)] = [0] >= [0] = [U54(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U54(tt(), V1, V2)] = [0] >= [0] = [U55(isNeList(activate(V1)), activate(V2))] [U55(tt(), V2)] = [0] >= [0] = [U56(isList(activate(V2)))] [U56(tt())] = [0] ? [4] = [tt()] [U61(tt(), V)] = [1] V + [1] >= [1] V + [1] = [U62(isPalListKind(activate(V)), activate(V))] [U62(tt(), V)] = [1] V + [1] >= [1] V + [1] = [U63(isQid(activate(V)))] [U63(tt())] = [4] >= [4] = [tt()] [isPal(V)] = [2] V + [2] >= [2] V + [2] = [U81(isPalListKind(activate(V)), activate(V))] [isPal(n__nil())] = [10] > [4] = [tt()] [U81(tt(), V)] = [2] V + [2] >= [2] V + [2] = [U82(isPalListKind(activate(V)), activate(V))] [U82(tt(), V)] = [2] V + [2] >= [2] V + [2] = [U83(isNePal(activate(V)))] [U83(tt())] = [8] > [4] = [tt()] [isNePal(V)] = [1] V + [1] >= [1] V + [1] = [U61(isPalListKind(activate(V)), activate(V))] [U91(tt(), V2)] = [0] >= [0] = [U92(isPalListKind(activate(V2)))] [U92(tt())] = [0] ? [4] = [tt()] [a()] = [3] >= [3] = [n__a()] [e()] = [7] >= [7] = [n__e()] [i()] = [7] >= [7] = [n__i()] [o()] = [4] >= [4] = [n__o()] [u()] = [7] >= [7] = [n__u()] [U11^#(tt(), V)] = [6] V + [2] >= [6] V + [2] = [U12^#(isPalListKind(activate(V)), activate(V))] [U11^#(tt(), V)] = [6] V + [2] > [3] V + [0] = [isPalListKind^#(activate(V))] [U12^#(tt(), V)] = [6] V + [2] > [6] V + [1] = [isNeList^#(activate(V))] [isPalListKind^#(n____(V1, V2))] = [3] V1 + [3] V2 + [6] > [3] V1 + [3] V2 + [5] = [c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1)))] [isNeList^#(V)] = [6] V + [1] > [6] V + [0] = [c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V)))] [isNeList^#(n____(V1, V2))] = [6] V1 + [6] V2 + [13] > [3] V1 + [0] = [isPalListKind^#(activate(V1))] [isNeList^#(n____(V1, V2))] = [6] V1 + [6] V2 + [13] > [6] V1 + [6] V2 + [7] = [U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))] [isNeList^#(n____(V1, V2))] = [6] V1 + [6] V2 + [13] > [6] V1 + [6] V2 + [6] = [U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U91^#(tt(), V2)] = [3] V2 + [4] > [3] V2 + [1] = [c_7(isPalListKind^#(activate(V2)))] [U31^#(tt(), V)] = [3] V + [0] >= [3] V + [0] = [c_8(isPalListKind^#(activate(V)))] [U41^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [7] > [3] V1 + [0] = [isPalListKind^#(activate(V1))] [U41^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [7] >= [6] V1 + [6] V2 + [7] = [U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U51^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [6] > [3] V1 + [0] = [isPalListKind^#(activate(V1))] [U51^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [6] >= [6] V1 + [6] V2 + [6] = [U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U21^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [7] > [3] V1 + [0] = [isPalListKind^#(activate(V1))] [U21^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [7] >= [6] V1 + [6] V2 + [7] = [U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U22^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [7] > [3] V2 + [0] = [isPalListKind^#(activate(V2))] [U22^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [7] >= [6] V1 + [6] V2 + [7] = [U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U23^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [7] > [3] V2 + [0] = [isPalListKind^#(activate(V2))] [U23^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [7] >= [6] V1 + [6] V2 + [7] = [U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U24^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [7] > [6] V2 + [4] = [U25^#(isList(activate(V1)), activate(V2))] [U24^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [7] > [6] V1 + [3] = [isList^#(activate(V1))] [U25^#(tt(), V2)] = [6] V2 + [4] > [6] V2 + [3] = [isList^#(activate(V2))] [isList^#(V)] = [6] V + [3] > [6] V + [2] = [U11^#(isPalListKind(activate(V)), activate(V))] [isList^#(V)] = [6] V + [3] > [3] V + [0] = [isPalListKind^#(activate(V))] [isList^#(n____(V1, V2))] = [6] V1 + [6] V2 + [15] > [3] V1 + [0] = [isPalListKind^#(activate(V1))] [isList^#(n____(V1, V2))] = [6] V1 + [6] V2 + [15] > [6] V1 + [6] V2 + [7] = [U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U42^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [7] > [3] V2 + [0] = [isPalListKind^#(activate(V2))] [U42^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [7] >= [6] V1 + [6] V2 + [7] = [U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U43^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [7] > [3] V2 + [0] = [isPalListKind^#(activate(V2))] [U43^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [7] >= [6] V1 + [6] V2 + [7] = [U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U44^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [7] > [6] V1 + [3] = [isList^#(activate(V1))] [U44^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [7] > [6] V2 + [2] = [U45^#(isList(activate(V1)), activate(V2))] [U45^#(tt(), V2)] = [6] V2 + [2] > [6] V2 + [1] = [isNeList^#(activate(V2))] [U52^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [6] > [3] V2 + [0] = [isPalListKind^#(activate(V2))] [U52^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [6] > [6] V1 + [6] V2 + [5] = [U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U53^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [5] > [3] V2 + [0] = [isPalListKind^#(activate(V2))] [U53^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [5] >= [6] V1 + [6] V2 + [5] = [U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U54^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [5] > [6] V1 + [1] = [isNeList^#(activate(V1))] [U54^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [5] > [6] V2 + [4] = [U55^#(isNeList(activate(V1)), activate(V2))] [U55^#(tt(), V2)] = [6] V2 + [4] > [6] V2 + [3] = [isList^#(activate(V2))] [U61^#(tt(), V)] = [4] V + [6] > [3] V + [0] = [isPalListKind^#(activate(V))] [U71^#(tt(), I, P)] = [7] I + [7] P + [13] > [3] I + [0] = [isPalListKind^#(activate(I))] [U71^#(tt(), I, P)] = [7] I + [7] P + [13] > [7] P + [6] = [U72^#(isPalListKind(activate(I)), activate(P))] [U72^#(tt(), P)] = [7] P + [6] > [7] P + [4] = [U73^#(isPal(activate(P)), activate(P))] [U72^#(tt(), P)] = [7] P + [6] >= [7] P + [6] = [isPal^#(activate(P))] [U73^#(tt(), P)] = [3] P + [8] > [3] P + [0] = [isPalListKind^#(activate(P))] [isPal^#(V)] = [7] V + [6] > [3] V + [0] = [isPalListKind^#(activate(V))] [isPal^#(V)] = [7] V + [6] >= [4] V + [6] = [U81^#(isPalListKind(activate(V)), activate(V))] [U81^#(tt(), V)] = [4] V + [6] > [3] V + [0] = [isPalListKind^#(activate(V))] [U81^#(tt(), V)] = [4] V + [6] >= [4] V + [6] = [U82^#(isPalListKind(activate(V)), activate(V))] [U82^#(tt(), V)] = [4] V + [6] >= [4] V + [6] = [isNePal^#(activate(V))] [isNePal^#(V)] = [4] V + [6] > [3] V + [0] = [isPalListKind^#(activate(V))] [isNePal^#(V)] = [4] V + [6] >= [4] V + [6] = [U61^#(isPalListKind(activate(V)), activate(V))] We return to the main proof. Consider the set of all dependency pairs : { 1: isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , 2: U11^#(tt(), V) -> U12^#(isPalListKind(activate(V)), activate(V)) , 3: U11^#(tt(), V) -> isPalListKind^#(activate(V)) , 4: U12^#(tt(), V) -> isNeList^#(activate(V)) , 5: isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 6: isNeList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1)) , 7: isNeList^#(n____(V1, V2)) -> U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , 8: isNeList^#(n____(V1, V2)) -> U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , 9: U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , 10: U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , 11: U41^#(tt(), V1, V2) -> isPalListKind^#(activate(V1)) , 12: U41^#(tt(), V1, V2) -> U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , 13: U51^#(tt(), V1, V2) -> isPalListKind^#(activate(V1)) , 14: U51^#(tt(), V1, V2) -> U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , 15: U21^#(tt(), V1, V2) -> isPalListKind^#(activate(V1)) , 16: U21^#(tt(), V1, V2) -> U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , 17: U22^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , 18: U22^#(tt(), V1, V2) -> U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , 19: U23^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , 20: U23^#(tt(), V1, V2) -> U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , 21: U24^#(tt(), V1, V2) -> U25^#(isList(activate(V1)), activate(V2)) , 22: U24^#(tt(), V1, V2) -> isList^#(activate(V1)) , 23: U25^#(tt(), V2) -> isList^#(activate(V2)) , 24: isList^#(V) -> U11^#(isPalListKind(activate(V)), activate(V)) , 25: isList^#(V) -> isPalListKind^#(activate(V)) , 26: isList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1)) , 27: isList^#(n____(V1, V2)) -> U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , 28: U42^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , 29: U42^#(tt(), V1, V2) -> U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , 30: U43^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , 31: U43^#(tt(), V1, V2) -> U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , 32: U44^#(tt(), V1, V2) -> isList^#(activate(V1)) , 33: U44^#(tt(), V1, V2) -> U45^#(isList(activate(V1)), activate(V2)) , 34: U45^#(tt(), V2) -> isNeList^#(activate(V2)) , 35: U52^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , 36: U52^#(tt(), V1, V2) -> U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , 37: U53^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , 38: U53^#(tt(), V1, V2) -> U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , 39: U54^#(tt(), V1, V2) -> isNeList^#(activate(V1)) , 40: U54^#(tt(), V1, V2) -> U55^#(isNeList(activate(V1)), activate(V2)) , 41: U55^#(tt(), V2) -> isList^#(activate(V2)) , 42: U61^#(tt(), V) -> isPalListKind^#(activate(V)) , 43: U71^#(tt(), I, P) -> isPalListKind^#(activate(I)) , 44: U71^#(tt(), I, P) -> U72^#(isPalListKind(activate(I)), activate(P)) , 45: U72^#(tt(), P) -> U73^#(isPal(activate(P)), activate(P)) , 46: U72^#(tt(), P) -> isPal^#(activate(P)) , 47: U73^#(tt(), P) -> isPalListKind^#(activate(P)) , 48: isPal^#(V) -> isPalListKind^#(activate(V)) , 49: isPal^#(V) -> U81^#(isPalListKind(activate(V)), activate(V)) , 50: U81^#(tt(), V) -> isPalListKind^#(activate(V)) , 51: U81^#(tt(), V) -> U82^#(isPalListKind(activate(V)), activate(V)) , 52: U82^#(tt(), V) -> isNePal^#(activate(V)) , 53: isNePal^#(V) -> isPalListKind^#(activate(V)) , 54: isNePal^#(V) -> U61^#(isPalListKind(activate(V)), activate(V)) } Processor 'matrix interpretation of dimension 1' induces the complexity certificate YES(?,O(n^1)) on application of dependency pairs {1,3,4,5,6,7,8,9,11,13,15,17,19,21,22,23,24,25,26,27,28,30,32,33,34,35,36,37,39,40,41,42,43,44,45,47,48,50,53}. These cover all (indirect) predecessors of dependency pairs {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,26,27,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,54}, their number of application is equally bounded. The dependency pairs are shifted into the weak component. We are left with following problem, upon which TcT provides the certificate YES(O(1),O(1)). Weak DPs: { U11^#(tt(), V) -> U12^#(isPalListKind(activate(V)), activate(V)) , U11^#(tt(), V) -> isPalListKind^#(activate(V)) , U12^#(tt(), V) -> isNeList^#(activate(V)) , isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNeList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1)) , isNeList^#(n____(V1, V2)) -> U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList^#(n____(V1, V2)) -> U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , U41^#(tt(), V1, V2) -> isPalListKind^#(activate(V1)) , U41^#(tt(), V1, V2) -> U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U51^#(tt(), V1, V2) -> isPalListKind^#(activate(V1)) , U51^#(tt(), V1, V2) -> U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21^#(tt(), V1, V2) -> isPalListKind^#(activate(V1)) , U21^#(tt(), V1, V2) -> U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , U22^#(tt(), V1, V2) -> U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , U23^#(tt(), V1, V2) -> U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24^#(tt(), V1, V2) -> U25^#(isList(activate(V1)), activate(V2)) , U24^#(tt(), V1, V2) -> isList^#(activate(V1)) , U25^#(tt(), V2) -> isList^#(activate(V2)) , isList^#(V) -> U11^#(isPalListKind(activate(V)), activate(V)) , isList^#(V) -> isPalListKind^#(activate(V)) , isList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1)) , isList^#(n____(V1, V2)) -> U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , U42^#(tt(), V1, V2) -> U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , U43^#(tt(), V1, V2) -> U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44^#(tt(), V1, V2) -> isList^#(activate(V1)) , U44^#(tt(), V1, V2) -> U45^#(isList(activate(V1)), activate(V2)) , U45^#(tt(), V2) -> isNeList^#(activate(V2)) , U52^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , U52^#(tt(), V1, V2) -> U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , U53^#(tt(), V1, V2) -> U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54^#(tt(), V1, V2) -> isNeList^#(activate(V1)) , U54^#(tt(), V1, V2) -> U55^#(isNeList(activate(V1)), activate(V2)) , U55^#(tt(), V2) -> isList^#(activate(V2)) , U61^#(tt(), V) -> isPalListKind^#(activate(V)) , U71^#(tt(), I, P) -> isPalListKind^#(activate(I)) , U71^#(tt(), I, P) -> U72^#(isPalListKind(activate(I)), activate(P)) , U72^#(tt(), P) -> U73^#(isPal(activate(P)), activate(P)) , U72^#(tt(), P) -> isPal^#(activate(P)) , U73^#(tt(), P) -> isPalListKind^#(activate(P)) , isPal^#(V) -> isPalListKind^#(activate(V)) , isPal^#(V) -> U81^#(isPalListKind(activate(V)), activate(V)) , U81^#(tt(), V) -> isPalListKind^#(activate(V)) , U81^#(tt(), V) -> U82^#(isPalListKind(activate(V)), activate(V)) , U82^#(tt(), V) -> isNePal^#(activate(V)) , isNePal^#(V) -> isPalListKind^#(activate(V)) , isNePal^#(V) -> U61^#(isPalListKind(activate(V)), activate(V)) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(1)) The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. { U11^#(tt(), V) -> U12^#(isPalListKind(activate(V)), activate(V)) , U11^#(tt(), V) -> isPalListKind^#(activate(V)) , U12^#(tt(), V) -> isNeList^#(activate(V)) , isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNeList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1)) , isNeList^#(n____(V1, V2)) -> U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList^#(n____(V1, V2)) -> U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , U41^#(tt(), V1, V2) -> isPalListKind^#(activate(V1)) , U41^#(tt(), V1, V2) -> U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U51^#(tt(), V1, V2) -> isPalListKind^#(activate(V1)) , U51^#(tt(), V1, V2) -> U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21^#(tt(), V1, V2) -> isPalListKind^#(activate(V1)) , U21^#(tt(), V1, V2) -> U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , U22^#(tt(), V1, V2) -> U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , U23^#(tt(), V1, V2) -> U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24^#(tt(), V1, V2) -> U25^#(isList(activate(V1)), activate(V2)) , U24^#(tt(), V1, V2) -> isList^#(activate(V1)) , U25^#(tt(), V2) -> isList^#(activate(V2)) , isList^#(V) -> U11^#(isPalListKind(activate(V)), activate(V)) , isList^#(V) -> isPalListKind^#(activate(V)) , isList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1)) , isList^#(n____(V1, V2)) -> U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , U42^#(tt(), V1, V2) -> U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , U43^#(tt(), V1, V2) -> U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44^#(tt(), V1, V2) -> isList^#(activate(V1)) , U44^#(tt(), V1, V2) -> U45^#(isList(activate(V1)), activate(V2)) , U45^#(tt(), V2) -> isNeList^#(activate(V2)) , U52^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , U52^#(tt(), V1, V2) -> U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53^#(tt(), V1, V2) -> isPalListKind^#(activate(V2)) , U53^#(tt(), V1, V2) -> U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54^#(tt(), V1, V2) -> isNeList^#(activate(V1)) , U54^#(tt(), V1, V2) -> U55^#(isNeList(activate(V1)), activate(V2)) , U55^#(tt(), V2) -> isList^#(activate(V2)) , U61^#(tt(), V) -> isPalListKind^#(activate(V)) , U71^#(tt(), I, P) -> isPalListKind^#(activate(I)) , U71^#(tt(), I, P) -> U72^#(isPalListKind(activate(I)), activate(P)) , U72^#(tt(), P) -> U73^#(isPal(activate(P)), activate(P)) , U72^#(tt(), P) -> isPal^#(activate(P)) , U73^#(tt(), P) -> isPalListKind^#(activate(P)) , isPal^#(V) -> isPalListKind^#(activate(V)) , isPal^#(V) -> U81^#(isPalListKind(activate(V)), activate(V)) , U81^#(tt(), V) -> isPalListKind^#(activate(V)) , U81^#(tt(), V) -> U82^#(isPalListKind(activate(V)), activate(V)) , U82^#(tt(), V) -> isNePal^#(activate(V)) , isNePal^#(V) -> isPalListKind^#(activate(V)) , isNePal^#(V) -> U61^#(isPalListKind(activate(V)), activate(V)) } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(1)). Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(1)) No rule is usable, rules are removed from the input problem. We are left with following problem, upon which TcT provides the certificate YES(O(1),O(1)). Rules: Empty Obligation: innermost runtime complexity Answer: YES(O(1),O(1)) Empty rules are trivially bounded S) We are left with following problem, upon which TcT provides the certificate YES(O(1),O(1)). Strict DPs: { U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } Weak DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(1)) We estimate the number of application of {1} by applications of Pre({1}) = {5}. Here rules are labeled as follows: DPs: { 1: U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , 2: isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 3: U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 4: U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) , 5: isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 6: U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 7: U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , 8: isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , 9: isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 10: isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 11: isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 12: U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , 13: U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , 14: U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 15: U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 16: U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 17: U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 18: U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 19: U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 20: U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , 21: isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 22: isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 23: U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 24: U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 25: U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 26: U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , 27: U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 28: U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 29: U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , 30: U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , 31: U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , 32: U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , 33: U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(1)). Strict DPs: { isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } Weak DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(1)) We estimate the number of application of {4} by applications of Pre({4}) = {3}. Here rules are labeled as follows: DPs: { 1: isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 2: U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 3: U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) , 4: isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 5: U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 6: U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , 7: isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , 8: isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 9: isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 10: isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 11: U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , 12: U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , 13: U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 14: U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 15: U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 16: U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 17: U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 18: U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 19: U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , 20: isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 21: isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 22: U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 23: U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 24: U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 25: U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , 26: U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 27: U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 28: U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , 29: U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , 30: U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , 31: U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , 32: U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , 33: U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(1)). Strict DPs: { isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) } Weak DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(1)) We estimate the number of application of {3} by applications of Pre({3}) = {2}. Here rules are labeled as follows: DPs: { 1: isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 2: U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 3: U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) , 4: U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 5: U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , 6: isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , 7: isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 8: isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 9: isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 10: U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , 11: U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , 12: U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 13: U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 14: U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 15: U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 16: U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 17: U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 18: U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , 19: isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 20: isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 21: U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 22: U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 23: U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 24: U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , 25: U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 26: U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 27: U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , 28: U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , 29: U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , 30: U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , 31: U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , 32: U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) , 33: isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(1)). Strict DPs: { isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } Weak DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) , U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(1)) We estimate the number of application of {2} by applications of Pre({2}) = {1}. Here rules are labeled as follows: DPs: { 1: isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 2: U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 3: U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 4: U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , 5: isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , 6: isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 7: isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 8: isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 9: U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , 10: U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , 11: U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 12: U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 13: U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 14: U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 15: U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 16: U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 17: U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , 18: isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 19: isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 20: U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 21: U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 22: U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 23: U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , 24: U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 25: U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 26: U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , 27: U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , 28: U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , 29: U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , 30: U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , 31: U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) , 32: U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) , 33: isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(1)). Strict DPs: { isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } Weak DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(1)) The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(1)). Strict DPs: { isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } Weak DPs: { U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(1)) Due to missing edges in the dependency-graph, the right-hand sides of following rules could be simplified: { U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(1)). Strict DPs: { isPal^#(V) -> c_1() } Weak DPs: { U71^#(tt(), I, P) -> c_2(U72^#(isPalListKind(activate(I)), activate(P))) , U72^#(tt(), P) -> c_3(isPal^#(activate(P))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(1)) We replace rewrite rules by usable rules: Weak Usable Rules: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(1)). Strict DPs: { isPal^#(V) -> c_1() } Weak DPs: { U71^#(tt(), I, P) -> c_2(U72^#(isPalListKind(activate(I)), activate(P))) , U72^#(tt(), P) -> c_3(isPal^#(activate(P))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(1)) The dependency graph contains no loops, we remove all dependency pairs. We are left with following problem, upon which TcT provides the certificate YES(O(1),O(1)). Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(1)) No rule is usable, rules are removed from the input problem. We are left with following problem, upon which TcT provides the certificate YES(O(1),O(1)). Rules: Empty Obligation: innermost runtime complexity Answer: YES(O(1),O(1)) Empty rules are trivially bounded S) We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^1)). Strict DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) } Weak DPs: { isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^1)) We estimate the number of application of {6} by applications of Pre({6}) = {3}. Here rules are labeled as follows: DPs: { 1: U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 2: U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , 3: isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 4: isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 5: isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 6: U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , 7: U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 8: U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 9: U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 10: U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 11: U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 12: U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 13: U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , 14: isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 15: isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 16: U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 17: U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 18: U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 19: U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , 20: U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 21: U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 22: U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , 23: U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , 24: U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) , 25: isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , 26: U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , 27: U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , 28: U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , 29: U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , 30: isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 31: U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 32: U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) , 33: isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^1)). Strict DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) } Weak DPs: { isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^1)) We estimate the number of application of {3} by applications of Pre({3}) = {2,18,21}. Here rules are labeled as follows: DPs: { 1: U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 2: U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , 3: isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 4: isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 5: isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 6: U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 7: U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 8: U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 9: U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 10: U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 11: U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 12: U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , 13: isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 14: isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , 15: U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 16: U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 17: U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 18: U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , 19: U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 20: U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , 21: U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , 22: U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , 23: U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) , 24: isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , 25: U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , 26: U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , 27: U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , 28: U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , 29: U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , 30: isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 31: U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , 32: U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) , 33: isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^1)). Strict DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) } Weak DPs: { isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^1)) The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. { isPalListKind^#(n____(V1, V2)) -> c_3(U91^#(isPalListKind(activate(V1)), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(V) -> c_4(U31^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) , U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) , U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) , isPal^#(V) -> c_30(U81^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U81^#(tt(), V) -> c_31(U82^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) , isNePal^#(V) -> c_33(U61^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^1)). Strict DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U24^#(tt(), V1, V2) -> c_14(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_15(isList^#(activate(V2))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U44^#(tt(), V1, V2) -> c_20(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U54^#(tt(), V1, V2) -> c_24(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_25(isList^#(activate(V2))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) } Weak DPs: { U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^1)) Due to missing edges in the dependency-graph, the right-hand sides of following rules could be simplified: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , isNeList^#(n____(V1, V2)) -> c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U41^#(tt(), V1, V2) -> c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U51^#(tt(), V1, V2) -> c_10(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U21^#(tt(), V1, V2) -> c_11(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U22^#(tt(), V1, V2) -> c_12(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U23^#(tt(), V1, V2) -> c_13(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , isList^#(V) -> c_16(U11^#(isPalListKind(activate(V)), activate(V)), isPalListKind^#(activate(V))) , isList^#(n____(V1, V2)) -> c_17(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)), isPalListKind^#(activate(V1))) , U42^#(tt(), V1, V2) -> c_18(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U43^#(tt(), V1, V2) -> c_19(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_22(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U53^#(tt(), V1, V2) -> c_23(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)), isPalListKind^#(activate(V2))) , U71^#(tt(), I, P) -> c_27(U72^#(isPalListKind(activate(I)), activate(P)), isPalListKind^#(activate(I))) , U72^#(tt(), P) -> c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P))) , U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^1)). Strict DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_3(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , isNeList^#(n____(V1, V2)) -> c_4(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U41^#(tt(), V1, V2) -> c_5(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U51^#(tt(), V1, V2) -> c_6(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U21^#(tt(), V1, V2) -> c_7(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U22^#(tt(), V1, V2) -> c_8(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U23^#(tt(), V1, V2) -> c_9(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U24^#(tt(), V1, V2) -> c_10(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_11(isList^#(activate(V2))) , isList^#(V) -> c_12(U11^#(isPalListKind(activate(V)), activate(V))) , isList^#(n____(V1, V2)) -> c_13(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U42^#(tt(), V1, V2) -> c_14(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U43^#(tt(), V1, V2) -> c_15(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U44^#(tt(), V1, V2) -> c_16(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_17(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_18(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U53^#(tt(), V1, V2) -> c_19(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U54^#(tt(), V1, V2) -> c_20(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_21(isList^#(activate(V2))) , U73^#(tt(), P) -> c_22() } Weak DPs: { U71^#(tt(), I, P) -> c_23(U72^#(isPalListKind(activate(I)), activate(P))) , U72^#(tt(), P) -> c_24(U73^#(isPal(activate(P)), activate(P))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^1)) We analyse the complexity of following sub-problems (R) and (S). Problem (S) is obtained from the input problem by shifting strict rules from (R) into the weak component: Problem (R): ------------ Strict DPs: { U73^#(tt(), P) -> c_22() } Weak DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_3(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , isNeList^#(n____(V1, V2)) -> c_4(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U41^#(tt(), V1, V2) -> c_5(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U51^#(tt(), V1, V2) -> c_6(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U21^#(tt(), V1, V2) -> c_7(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U22^#(tt(), V1, V2) -> c_8(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U23^#(tt(), V1, V2) -> c_9(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U24^#(tt(), V1, V2) -> c_10(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_11(isList^#(activate(V2))) , isList^#(V) -> c_12(U11^#(isPalListKind(activate(V)), activate(V))) , isList^#(n____(V1, V2)) -> c_13(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U42^#(tt(), V1, V2) -> c_14(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U43^#(tt(), V1, V2) -> c_15(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U44^#(tt(), V1, V2) -> c_16(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_17(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_18(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U53^#(tt(), V1, V2) -> c_19(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U54^#(tt(), V1, V2) -> c_20(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_21(isList^#(activate(V2))) , U71^#(tt(), I, P) -> c_23(U72^#(isPalListKind(activate(I)), activate(P))) , U72^#(tt(), P) -> c_24(U73^#(isPal(activate(P)), activate(P))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } StartTerms: basic terms Strategy: innermost Problem (S): ------------ Strict DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_3(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , isNeList^#(n____(V1, V2)) -> c_4(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U41^#(tt(), V1, V2) -> c_5(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U51^#(tt(), V1, V2) -> c_6(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U21^#(tt(), V1, V2) -> c_7(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U22^#(tt(), V1, V2) -> c_8(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U23^#(tt(), V1, V2) -> c_9(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U24^#(tt(), V1, V2) -> c_10(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_11(isList^#(activate(V2))) , isList^#(V) -> c_12(U11^#(isPalListKind(activate(V)), activate(V))) , isList^#(n____(V1, V2)) -> c_13(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U42^#(tt(), V1, V2) -> c_14(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U43^#(tt(), V1, V2) -> c_15(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U44^#(tt(), V1, V2) -> c_16(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_17(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_18(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U53^#(tt(), V1, V2) -> c_19(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U54^#(tt(), V1, V2) -> c_20(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_21(isList^#(activate(V2))) } Weak DPs: { U71^#(tt(), I, P) -> c_23(U72^#(isPalListKind(activate(I)), activate(P))) , U72^#(tt(), P) -> c_24(U73^#(isPal(activate(P)), activate(P))) , U73^#(tt(), P) -> c_22() } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } StartTerms: basic terms Strategy: innermost Overall, the transformation results in the following sub-problem(s): Generated new problems: ----------------------- R) Strict DPs: { U73^#(tt(), P) -> c_22() } Weak DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_3(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , isNeList^#(n____(V1, V2)) -> c_4(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U41^#(tt(), V1, V2) -> c_5(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U51^#(tt(), V1, V2) -> c_6(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U21^#(tt(), V1, V2) -> c_7(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U22^#(tt(), V1, V2) -> c_8(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U23^#(tt(), V1, V2) -> c_9(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U24^#(tt(), V1, V2) -> c_10(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_11(isList^#(activate(V2))) , isList^#(V) -> c_12(U11^#(isPalListKind(activate(V)), activate(V))) , isList^#(n____(V1, V2)) -> c_13(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U42^#(tt(), V1, V2) -> c_14(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U43^#(tt(), V1, V2) -> c_15(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U44^#(tt(), V1, V2) -> c_16(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_17(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_18(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U53^#(tt(), V1, V2) -> c_19(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U54^#(tt(), V1, V2) -> c_20(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_21(isList^#(activate(V2))) , U71^#(tt(), I, P) -> c_23(U72^#(isPalListKind(activate(I)), activate(P))) , U72^#(tt(), P) -> c_24(U73^#(isPal(activate(P)), activate(P))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } StartTerms: basic terms Strategy: innermost This problem was proven YES(O(1),O(1)). S) Strict DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_3(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , isNeList^#(n____(V1, V2)) -> c_4(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U41^#(tt(), V1, V2) -> c_5(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U51^#(tt(), V1, V2) -> c_6(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U21^#(tt(), V1, V2) -> c_7(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U22^#(tt(), V1, V2) -> c_8(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U23^#(tt(), V1, V2) -> c_9(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U24^#(tt(), V1, V2) -> c_10(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_11(isList^#(activate(V2))) , isList^#(V) -> c_12(U11^#(isPalListKind(activate(V)), activate(V))) , isList^#(n____(V1, V2)) -> c_13(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U42^#(tt(), V1, V2) -> c_14(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U43^#(tt(), V1, V2) -> c_15(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U44^#(tt(), V1, V2) -> c_16(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_17(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_18(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U53^#(tt(), V1, V2) -> c_19(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U54^#(tt(), V1, V2) -> c_20(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_21(isList^#(activate(V2))) } Weak DPs: { U71^#(tt(), I, P) -> c_23(U72^#(isPalListKind(activate(I)), activate(P))) , U72^#(tt(), P) -> c_24(U73^#(isPal(activate(P)), activate(P))) , U73^#(tt(), P) -> c_22() } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } StartTerms: basic terms Strategy: innermost This problem was proven YES(O(1),O(n^1)). Proofs for generated problems: ------------------------------ R) We are left with following problem, upon which TcT provides the certificate YES(O(1),O(1)). Strict DPs: { U73^#(tt(), P) -> c_22() } Weak DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_3(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , isNeList^#(n____(V1, V2)) -> c_4(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U41^#(tt(), V1, V2) -> c_5(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U51^#(tt(), V1, V2) -> c_6(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U21^#(tt(), V1, V2) -> c_7(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U22^#(tt(), V1, V2) -> c_8(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U23^#(tt(), V1, V2) -> c_9(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U24^#(tt(), V1, V2) -> c_10(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_11(isList^#(activate(V2))) , isList^#(V) -> c_12(U11^#(isPalListKind(activate(V)), activate(V))) , isList^#(n____(V1, V2)) -> c_13(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U42^#(tt(), V1, V2) -> c_14(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U43^#(tt(), V1, V2) -> c_15(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U44^#(tt(), V1, V2) -> c_16(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_17(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_18(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U53^#(tt(), V1, V2) -> c_19(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U54^#(tt(), V1, V2) -> c_20(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_21(isList^#(activate(V2))) , U71^#(tt(), I, P) -> c_23(U72^#(isPalListKind(activate(I)), activate(P))) , U72^#(tt(), P) -> c_24(U73^#(isPal(activate(P)), activate(P))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(1)) The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_3(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , isNeList^#(n____(V1, V2)) -> c_4(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U41^#(tt(), V1, V2) -> c_5(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U51^#(tt(), V1, V2) -> c_6(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U21^#(tt(), V1, V2) -> c_7(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U22^#(tt(), V1, V2) -> c_8(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U23^#(tt(), V1, V2) -> c_9(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U24^#(tt(), V1, V2) -> c_10(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_11(isList^#(activate(V2))) , isList^#(V) -> c_12(U11^#(isPalListKind(activate(V)), activate(V))) , isList^#(n____(V1, V2)) -> c_13(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U42^#(tt(), V1, V2) -> c_14(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U43^#(tt(), V1, V2) -> c_15(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U44^#(tt(), V1, V2) -> c_16(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_17(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_18(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U53^#(tt(), V1, V2) -> c_19(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U54^#(tt(), V1, V2) -> c_20(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_21(isList^#(activate(V2))) } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(1)). Strict DPs: { U73^#(tt(), P) -> c_22() } Weak DPs: { U71^#(tt(), I, P) -> c_23(U72^#(isPalListKind(activate(I)), activate(P))) , U72^#(tt(), P) -> c_24(U73^#(isPal(activate(P)), activate(P))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(1)) The dependency graph contains no loops, we remove all dependency pairs. We are left with following problem, upon which TcT provides the certificate YES(O(1),O(1)). Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(1)) No rule is usable, rules are removed from the input problem. We are left with following problem, upon which TcT provides the certificate YES(O(1),O(1)). Rules: Empty Obligation: innermost runtime complexity Answer: YES(O(1),O(1)) Empty rules are trivially bounded S) We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^1)). Strict DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_3(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , isNeList^#(n____(V1, V2)) -> c_4(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U41^#(tt(), V1, V2) -> c_5(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U51^#(tt(), V1, V2) -> c_6(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U21^#(tt(), V1, V2) -> c_7(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U22^#(tt(), V1, V2) -> c_8(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U23^#(tt(), V1, V2) -> c_9(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U24^#(tt(), V1, V2) -> c_10(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_11(isList^#(activate(V2))) , isList^#(V) -> c_12(U11^#(isPalListKind(activate(V)), activate(V))) , isList^#(n____(V1, V2)) -> c_13(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U42^#(tt(), V1, V2) -> c_14(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U43^#(tt(), V1, V2) -> c_15(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U44^#(tt(), V1, V2) -> c_16(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_17(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_18(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U53^#(tt(), V1, V2) -> c_19(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U54^#(tt(), V1, V2) -> c_20(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_21(isList^#(activate(V2))) } Weak DPs: { U71^#(tt(), I, P) -> c_23(U72^#(isPalListKind(activate(I)), activate(P))) , U72^#(tt(), P) -> c_24(U73^#(isPal(activate(P)), activate(P))) , U73^#(tt(), P) -> c_22() } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^1)) The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. { U71^#(tt(), I, P) -> c_23(U72^#(isPalListKind(activate(I)), activate(P))) , U72^#(tt(), P) -> c_24(U73^#(isPal(activate(P)), activate(P))) , U73^#(tt(), P) -> c_22() } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^1)). Strict DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_3(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , isNeList^#(n____(V1, V2)) -> c_4(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U41^#(tt(), V1, V2) -> c_5(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U51^#(tt(), V1, V2) -> c_6(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U21^#(tt(), V1, V2) -> c_7(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U22^#(tt(), V1, V2) -> c_8(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U23^#(tt(), V1, V2) -> c_9(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U24^#(tt(), V1, V2) -> c_10(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_11(isList^#(activate(V2))) , isList^#(V) -> c_12(U11^#(isPalListKind(activate(V)), activate(V))) , isList^#(n____(V1, V2)) -> c_13(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U42^#(tt(), V1, V2) -> c_14(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U43^#(tt(), V1, V2) -> c_15(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U44^#(tt(), V1, V2) -> c_16(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_17(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_18(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U53^#(tt(), V1, V2) -> c_19(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U54^#(tt(), V1, V2) -> c_20(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_21(isList^#(activate(V2))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V)) , U62(tt(), V) -> U63(isQid(activate(V))) , U63(tt()) -> tt() , isPal(V) -> U81(isPalListKind(activate(V)), activate(V)) , isPal(n__nil()) -> tt() , U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V)) , U82(tt(), V) -> U83(isNePal(activate(V))) , U83(tt()) -> tt() , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^1)) We replace rewrite rules by usable rules: Weak Usable Rules: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^1)). Strict DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_3(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , isNeList^#(n____(V1, V2)) -> c_4(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U41^#(tt(), V1, V2) -> c_5(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U51^#(tt(), V1, V2) -> c_6(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U21^#(tt(), V1, V2) -> c_7(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U22^#(tt(), V1, V2) -> c_8(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U23^#(tt(), V1, V2) -> c_9(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U24^#(tt(), V1, V2) -> c_10(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_11(isList^#(activate(V2))) , isList^#(V) -> c_12(U11^#(isPalListKind(activate(V)), activate(V))) , isList^#(n____(V1, V2)) -> c_13(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U42^#(tt(), V1, V2) -> c_14(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U43^#(tt(), V1, V2) -> c_15(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U44^#(tt(), V1, V2) -> c_16(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_17(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_18(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U53^#(tt(), V1, V2) -> c_19(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U54^#(tt(), V1, V2) -> c_20(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_21(isList^#(activate(V2))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^1)) We use the processor 'matrix interpretation of dimension 1' to orient following rules strictly. DPs: { 3: isNeList^#(n____(V1, V2)) -> c_3(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , 4: isNeList^#(n____(V1, V2)) -> c_4(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , 5: U41^#(tt(), V1, V2) -> c_5(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , 8: U22^#(tt(), V1, V2) -> c_8(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , 10: U24^#(tt(), V1, V2) -> c_10(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 11: U25^#(tt(), V2) -> c_11(isList^#(activate(V2))) , 12: isList^#(V) -> c_12(U11^#(isPalListKind(activate(V)), activate(V))) , 13: isList^#(n____(V1, V2)) -> c_13(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , 15: U43^#(tt(), V1, V2) -> c_15(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , 16: U44^#(tt(), V1, V2) -> c_16(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 18: U52^#(tt(), V1, V2) -> c_18(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) } Trs: { isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isQid(n__a()) -> tt() , isQid(n__i()) -> tt() , isQid(n__u()) -> tt() , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() } Sub-proof: ---------- The following argument positions are usable: Uargs(c_1) = {1}, Uargs(c_2) = {1}, Uargs(c_3) = {1}, Uargs(c_4) = {1}, Uargs(c_5) = {1}, Uargs(c_6) = {1}, Uargs(c_7) = {1}, Uargs(c_8) = {1}, Uargs(c_9) = {1}, Uargs(c_10) = {1, 2}, Uargs(c_11) = {1}, Uargs(c_12) = {1}, Uargs(c_13) = {1}, Uargs(c_14) = {1}, Uargs(c_15) = {1}, Uargs(c_16) = {1, 2}, Uargs(c_17) = {1}, Uargs(c_18) = {1}, Uargs(c_19) = {1}, Uargs(c_20) = {1, 2}, Uargs(c_21) = {1} TcT has computed the following constructor-based matrix interpretation satisfying not(EDA). [__](x1, x2) = [1] x1 + [1] x2 + [2] [nil] = [2] [U11](x1, x2) = [3] x2 + [3] [tt] = [5] [U12](x1, x2) = [3] x2 + [3] [isPalListKind](x1) = [1] x1 + [5] [activate](x1) = [1] x1 + [0] [U13](x1) = [1] x1 + [0] [isNeList](x1) = [2] x1 + [3] [U21](x1, x2, x3) = [1] x1 + [2] x2 + [3] x3 + [7] [U22](x1, x2, x3) = [1] x1 + [3] x3 + [6] [U23](x1, x2, x3) = [2] x1 + [1] x3 + [1] [U24](x1, x2, x3) = [1] x1 + [0] [U25](x1, x2) = [5] [isList](x1) = [3] x1 + [7] [U26](x1) = [5] [U31](x1, x2) = [2] x2 + [3] [U32](x1, x2) = [2] x2 + [3] [U33](x1) = [1] x1 + [0] [isQid](x1) = [1] x1 + [3] [U41](x1, x2, x3) = [2] x2 + [2] x3 + [3] [U42](x1, x2, x3) = [2] x2 + [2] x3 + [3] [U43](x1, x2, x3) = [2] x2 + [2] x3 + [3] [U44](x1, x2, x3) = [2] x2 + [2] x3 + [3] [U45](x1, x2) = [2] x2 + [3] [U46](x1) = [1] x1 + [0] [U51](x1, x2, x3) = [2] x2 + [2] x3 + [6] [U52](x1, x2, x3) = [2] x2 + [2] x3 + [6] [U53](x1, x2, x3) = [2] x2 + [2] x3 + [6] [U54](x1, x2, x3) = [1] x1 + [2] x2 + [1] x3 + [0] [U55](x1, x2) = [1] x1 + [2] [U56](x1) = [6] [U91](x1, x2) = [5] [U92](x1) = [5] [n__nil] = [2] [n____](x1, x2) = [1] x1 + [1] x2 + [2] [n__a] = [3] [n__e] = [2] [n__i] = [3] [n__o] = [2] [n__u] = [3] [a] = [3] [e] = [2] [i] = [3] [o] = [2] [u] = [3] [U11^#](x1, x2) = [7] x2 + [0] [U12^#](x1, x2) = [7] x2 + [0] [isNeList^#](x1) = [7] x1 + [0] [U41^#](x1, x2, x3) = [7] x2 + [7] x3 + [7] [U51^#](x1, x2, x3) = [7] x2 + [7] x3 + [3] [U21^#](x1, x2, x3) = [7] x2 + [7] x3 + [6] [U22^#](x1, x2, x3) = [7] x2 + [7] x3 + [6] [U23^#](x1, x2, x3) = [7] x2 + [7] x3 + [4] [U24^#](x1, x2, x3) = [7] x2 + [7] x3 + [4] [U25^#](x1, x2) = [7] x2 + [2] [isList^#](x1) = [7] x1 + [1] [U42^#](x1, x2, x3) = [7] x2 + [7] x3 + [4] [U43^#](x1, x2, x3) = [7] x2 + [7] x3 + [4] [U44^#](x1, x2, x3) = [7] x2 + [7] x3 + [3] [U45^#](x1, x2) = [7] x2 + [0] [U52^#](x1, x2, x3) = [7] x2 + [7] x3 + [3] [U53^#](x1, x2, x3) = [7] x2 + [7] x3 + [1] [U54^#](x1, x2, x3) = [7] x2 + [7] x3 + [1] [U55^#](x1, x2) = [7] x2 + [1] [c_1](x1) = [1] x1 + [0] [c_2](x1) = [1] x1 + [0] [c_3](x1) = [1] x1 + [0] [c_4](x1) = [1] x1 + [1] [c_5](x1) = [1] x1 + [1] [c_6](x1) = [1] x1 + [0] [c_7](x1) = [1] x1 + [0] [c_8](x1) = [1] x1 + [1] [c_9](x1) = [1] x1 + [0] [c_10](x1, x2) = [1] x1 + [1] x2 + [0] [c_11](x1) = [1] x1 + [0] [c_12](x1) = [1] x1 + [0] [c_13](x1) = [1] x1 + [2] [c_14](x1) = [1] x1 + [0] [c_15](x1) = [1] x1 + [0] [c_16](x1, x2) = [1] x1 + [1] x2 + [0] [c_17](x1) = [1] x1 + [0] [c_18](x1) = [1] x1 + [1] [c_19](x1) = [1] x1 + [0] [c_20](x1, x2) = [1] x1 + [1] x2 + [0] [c_21](x1) = [1] x1 + [0] The order satisfies the following ordering constraints: [__(X1, X2)] = [1] X1 + [1] X2 + [2] >= [1] X1 + [1] X2 + [2] = [n____(X1, X2)] [nil()] = [2] >= [2] = [n__nil()] [U11(tt(), V)] = [3] V + [3] >= [3] V + [3] = [U12(isPalListKind(activate(V)), activate(V))] [U12(tt(), V)] = [3] V + [3] >= [2] V + [3] = [U13(isNeList(activate(V)))] [isPalListKind(n__nil())] = [7] > [5] = [tt()] [isPalListKind(n____(V1, V2))] = [1] V1 + [1] V2 + [7] > [5] = [U91(isPalListKind(activate(V1)), activate(V2))] [isPalListKind(n__a())] = [8] > [5] = [tt()] [isPalListKind(n__e())] = [7] > [5] = [tt()] [isPalListKind(n__i())] = [8] > [5] = [tt()] [isPalListKind(n__o())] = [7] > [5] = [tt()] [isPalListKind(n__u())] = [8] > [5] = [tt()] [activate(X)] = [1] X + [0] >= [1] X + [0] = [X] [activate(n__nil())] = [2] >= [2] = [nil()] [activate(n____(X1, X2))] = [1] X1 + [1] X2 + [2] >= [1] X1 + [1] X2 + [2] = [__(X1, X2)] [activate(n__a())] = [3] >= [3] = [a()] [activate(n__e())] = [2] >= [2] = [e()] [activate(n__i())] = [3] >= [3] = [i()] [activate(n__o())] = [2] >= [2] = [o()] [activate(n__u())] = [3] >= [3] = [u()] [U13(tt())] = [5] >= [5] = [tt()] [isNeList(V)] = [2] V + [3] >= [2] V + [3] = [U31(isPalListKind(activate(V)), activate(V))] [isNeList(n____(V1, V2))] = [2] V1 + [2] V2 + [7] > [2] V1 + [2] V2 + [3] = [U41(isPalListKind(activate(V1)), activate(V1), activate(V2))] [isNeList(n____(V1, V2))] = [2] V1 + [2] V2 + [7] > [2] V1 + [2] V2 + [6] = [U51(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U21(tt(), V1, V2)] = [2] V1 + [3] V2 + [12] > [1] V1 + [3] V2 + [11] = [U22(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U22(tt(), V1, V2)] = [3] V2 + [11] >= [3] V2 + [11] = [U23(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U23(tt(), V1, V2)] = [1] V2 + [11] > [1] V2 + [5] = [U24(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U24(tt(), V1, V2)] = [5] >= [5] = [U25(isList(activate(V1)), activate(V2))] [U25(tt(), V2)] = [5] >= [5] = [U26(isList(activate(V2)))] [isList(V)] = [3] V + [7] > [3] V + [3] = [U11(isPalListKind(activate(V)), activate(V))] [isList(n__nil())] = [13] > [5] = [tt()] [isList(n____(V1, V2))] = [3] V1 + [3] V2 + [13] > [3] V1 + [3] V2 + [12] = [U21(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U26(tt())] = [5] >= [5] = [tt()] [U31(tt(), V)] = [2] V + [3] >= [2] V + [3] = [U32(isPalListKind(activate(V)), activate(V))] [U32(tt(), V)] = [2] V + [3] >= [1] V + [3] = [U33(isQid(activate(V)))] [U33(tt())] = [5] >= [5] = [tt()] [isQid(n__a())] = [6] > [5] = [tt()] [isQid(n__e())] = [5] >= [5] = [tt()] [isQid(n__i())] = [6] > [5] = [tt()] [isQid(n__o())] = [5] >= [5] = [tt()] [isQid(n__u())] = [6] > [5] = [tt()] [U41(tt(), V1, V2)] = [2] V1 + [2] V2 + [3] >= [2] V1 + [2] V2 + [3] = [U42(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U42(tt(), V1, V2)] = [2] V1 + [2] V2 + [3] >= [2] V1 + [2] V2 + [3] = [U43(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U43(tt(), V1, V2)] = [2] V1 + [2] V2 + [3] >= [2] V1 + [2] V2 + [3] = [U44(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U44(tt(), V1, V2)] = [2] V1 + [2] V2 + [3] >= [2] V2 + [3] = [U45(isList(activate(V1)), activate(V2))] [U45(tt(), V2)] = [2] V2 + [3] >= [2] V2 + [3] = [U46(isNeList(activate(V2)))] [U46(tt())] = [5] >= [5] = [tt()] [U51(tt(), V1, V2)] = [2] V1 + [2] V2 + [6] >= [2] V1 + [2] V2 + [6] = [U52(isPalListKind(activate(V1)), activate(V1), activate(V2))] [U52(tt(), V1, V2)] = [2] V1 + [2] V2 + [6] >= [2] V1 + [2] V2 + [6] = [U53(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U53(tt(), V1, V2)] = [2] V1 + [2] V2 + [6] > [2] V1 + [2] V2 + [5] = [U54(isPalListKind(activate(V2)), activate(V1), activate(V2))] [U54(tt(), V1, V2)] = [2] V1 + [1] V2 + [5] >= [2] V1 + [5] = [U55(isNeList(activate(V1)), activate(V2))] [U55(tt(), V2)] = [7] > [6] = [U56(isList(activate(V2)))] [U56(tt())] = [6] > [5] = [tt()] [U91(tt(), V2)] = [5] >= [5] = [U92(isPalListKind(activate(V2)))] [U92(tt())] = [5] >= [5] = [tt()] [a()] = [3] >= [3] = [n__a()] [e()] = [2] >= [2] = [n__e()] [i()] = [3] >= [3] = [n__i()] [o()] = [2] >= [2] = [n__o()] [u()] = [3] >= [3] = [n__u()] [U11^#(tt(), V)] = [7] V + [0] >= [7] V + [0] = [c_1(U12^#(isPalListKind(activate(V)), activate(V)))] [U12^#(tt(), V)] = [7] V + [0] >= [7] V + [0] = [c_2(isNeList^#(activate(V)))] [isNeList^#(n____(V1, V2))] = [7] V1 + [7] V2 + [14] > [7] V1 + [7] V2 + [7] = [c_3(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))] [isNeList^#(n____(V1, V2))] = [7] V1 + [7] V2 + [14] > [7] V1 + [7] V2 + [4] = [c_4(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))] [U41^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [7] > [7] V1 + [7] V2 + [5] = [c_5(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))] [U51^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [3] >= [7] V1 + [7] V2 + [3] = [c_6(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))] [U21^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [6] >= [7] V1 + [7] V2 + [6] = [c_7(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))] [U22^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [6] > [7] V1 + [7] V2 + [5] = [c_8(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))] [U23^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [4] >= [7] V1 + [7] V2 + [4] = [c_9(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))] [U24^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [4] > [7] V1 + [7] V2 + [3] = [c_10(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1)))] [U25^#(tt(), V2)] = [7] V2 + [2] > [7] V2 + [1] = [c_11(isList^#(activate(V2)))] [isList^#(V)] = [7] V + [1] > [7] V + [0] = [c_12(U11^#(isPalListKind(activate(V)), activate(V)))] [isList^#(n____(V1, V2))] = [7] V1 + [7] V2 + [15] > [7] V1 + [7] V2 + [8] = [c_13(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))] [U42^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [4] >= [7] V1 + [7] V2 + [4] = [c_14(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))] [U43^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [4] > [7] V1 + [7] V2 + [3] = [c_15(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))] [U44^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [3] > [7] V1 + [7] V2 + [1] = [c_16(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1)))] [U45^#(tt(), V2)] = [7] V2 + [0] >= [7] V2 + [0] = [c_17(isNeList^#(activate(V2)))] [U52^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [3] > [7] V1 + [7] V2 + [2] = [c_18(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))] [U53^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [1] >= [7] V1 + [7] V2 + [1] = [c_19(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))] [U54^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [1] >= [7] V1 + [7] V2 + [1] = [c_20(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1)))] [U55^#(tt(), V2)] = [7] V2 + [1] >= [7] V2 + [1] = [c_21(isList^#(activate(V2)))] We return to the main proof. Consider the set of all dependency pairs : { 1: U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V))) , 2: U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , 3: isNeList^#(n____(V1, V2)) -> c_3(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , 4: isNeList^#(n____(V1, V2)) -> c_4(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , 5: U41^#(tt(), V1, V2) -> c_5(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , 6: U51^#(tt(), V1, V2) -> c_6(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , 7: U21^#(tt(), V1, V2) -> c_7(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , 8: U22^#(tt(), V1, V2) -> c_8(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , 9: U23^#(tt(), V1, V2) -> c_9(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , 10: U24^#(tt(), V1, V2) -> c_10(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 11: U25^#(tt(), V2) -> c_11(isList^#(activate(V2))) , 12: isList^#(V) -> c_12(U11^#(isPalListKind(activate(V)), activate(V))) , 13: isList^#(n____(V1, V2)) -> c_13(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , 14: U42^#(tt(), V1, V2) -> c_14(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , 15: U43^#(tt(), V1, V2) -> c_15(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , 16: U44^#(tt(), V1, V2) -> c_16(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , 17: U45^#(tt(), V2) -> c_17(isNeList^#(activate(V2))) , 18: U52^#(tt(), V1, V2) -> c_18(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , 19: U53^#(tt(), V1, V2) -> c_19(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , 20: U54^#(tt(), V1, V2) -> c_20(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , 21: U55^#(tt(), V2) -> c_21(isList^#(activate(V2))) } Processor 'matrix interpretation of dimension 1' induces the complexity certificate YES(?,O(n^1)) on application of dependency pairs {3,4,5,8,10,11,12,13,15,16,18}. These cover all (indirect) predecessors of dependency pairs {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21}, their number of application is equally bounded. The dependency pairs are shifted into the weak component. We are left with following problem, upon which TcT provides the certificate YES(O(1),O(1)). Weak DPs: { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_3(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , isNeList^#(n____(V1, V2)) -> c_4(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U41^#(tt(), V1, V2) -> c_5(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U51^#(tt(), V1, V2) -> c_6(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U21^#(tt(), V1, V2) -> c_7(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U22^#(tt(), V1, V2) -> c_8(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U23^#(tt(), V1, V2) -> c_9(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U24^#(tt(), V1, V2) -> c_10(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_11(isList^#(activate(V2))) , isList^#(V) -> c_12(U11^#(isPalListKind(activate(V)), activate(V))) , isList^#(n____(V1, V2)) -> c_13(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U42^#(tt(), V1, V2) -> c_14(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U43^#(tt(), V1, V2) -> c_15(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U44^#(tt(), V1, V2) -> c_16(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_17(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_18(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U53^#(tt(), V1, V2) -> c_19(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U54^#(tt(), V1, V2) -> c_20(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_21(isList^#(activate(V2))) } Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(1)) The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. { U11^#(tt(), V) -> c_1(U12^#(isPalListKind(activate(V)), activate(V))) , U12^#(tt(), V) -> c_2(isNeList^#(activate(V))) , isNeList^#(n____(V1, V2)) -> c_3(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , isNeList^#(n____(V1, V2)) -> c_4(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U41^#(tt(), V1, V2) -> c_5(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U51^#(tt(), V1, V2) -> c_6(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U21^#(tt(), V1, V2) -> c_7(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U22^#(tt(), V1, V2) -> c_8(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U23^#(tt(), V1, V2) -> c_9(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U24^#(tt(), V1, V2) -> c_10(U25^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U25^#(tt(), V2) -> c_11(isList^#(activate(V2))) , isList^#(V) -> c_12(U11^#(isPalListKind(activate(V)), activate(V))) , isList^#(n____(V1, V2)) -> c_13(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))) , U42^#(tt(), V1, V2) -> c_14(U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U43^#(tt(), V1, V2) -> c_15(U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U44^#(tt(), V1, V2) -> c_16(U45^#(isList(activate(V1)), activate(V2)), isList^#(activate(V1))) , U45^#(tt(), V2) -> c_17(isNeList^#(activate(V2))) , U52^#(tt(), V1, V2) -> c_18(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U53^#(tt(), V1, V2) -> c_19(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2))) , U54^#(tt(), V1, V2) -> c_20(U55^#(isNeList(activate(V1)), activate(V2)), isNeList^#(activate(V1))) , U55^#(tt(), V2) -> c_21(isList^#(activate(V2))) } We are left with following problem, upon which TcT provides the certificate YES(O(1),O(1)). Weak Trs: { __(X1, X2) -> n____(X1, X2) , nil() -> n__nil() , U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V)) , U12(tt(), V) -> U13(isNeList(activate(V))) , isPalListKind(n__nil()) -> tt() , isPalListKind(n____(V1, V2)) -> U91(isPalListKind(activate(V1)), activate(V2)) , isPalListKind(n__a()) -> tt() , isPalListKind(n__e()) -> tt() , isPalListKind(n__i()) -> tt() , isPalListKind(n__o()) -> tt() , isPalListKind(n__u()) -> tt() , activate(X) -> X , activate(n__nil()) -> nil() , activate(n____(X1, X2)) -> __(X1, X2) , activate(n__a()) -> a() , activate(n__e()) -> e() , activate(n__i()) -> i() , activate(n__o()) -> o() , activate(n__u()) -> u() , U13(tt()) -> tt() , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) , isNeList(n____(V1, V2)) -> U41(isPalListKind(activate(V1)), activate(V1), activate(V2)) , isNeList(n____(V1, V2)) -> U51(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U21(tt(), V1, V2) -> U22(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U22(tt(), V1, V2) -> U23(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U23(tt(), V1, V2) -> U24(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2)) , U25(tt(), V2) -> U26(isList(activate(V2))) , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) , isList(n__nil()) -> tt() , isList(n____(V1, V2)) -> U21(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U26(tt()) -> tt() , U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V)) , U32(tt(), V) -> U33(isQid(activate(V))) , U33(tt()) -> tt() , isQid(n__a()) -> tt() , isQid(n__e()) -> tt() , isQid(n__i()) -> tt() , isQid(n__o()) -> tt() , isQid(n__u()) -> tt() , U41(tt(), V1, V2) -> U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U42(tt(), V1, V2) -> U43(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U43(tt(), V1, V2) -> U44(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2)) , U45(tt(), V2) -> U46(isNeList(activate(V2))) , U46(tt()) -> tt() , U51(tt(), V1, V2) -> U52(isPalListKind(activate(V1)), activate(V1), activate(V2)) , U52(tt(), V1, V2) -> U53(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U53(tt(), V1, V2) -> U54(isPalListKind(activate(V2)), activate(V1), activate(V2)) , U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2)) , U55(tt(), V2) -> U56(isList(activate(V2))) , U56(tt()) -> tt() , U91(tt(), V2) -> U92(isPalListKind(activate(V2))) , U92(tt()) -> tt() , a() -> n__a() , e() -> n__e() , i() -> n__i() , o() -> n__o() , u() -> n__u() } Obligation: innermost runtime complexity Answer: YES(O(1),O(1)) No rule is usable, rules are removed from the input problem. We are left with following problem, upon which TcT provides the certificate YES(O(1),O(1)). Rules: Empty Obligation: innermost runtime complexity Answer: YES(O(1),O(1)) Empty rules are trivially bounded Hurray, we answered YES(O(1),O(n^2))