YES(O(1),O(n^2)) 587.54/148.07 YES(O(1),O(n^2)) 587.54/148.07 587.54/148.07 We are left with following problem, upon which TcT provides the 587.54/148.07 certificate YES(O(1),O(n^2)). 587.54/148.07 587.54/148.07 Strict Trs: 587.54/148.07 { __(X1, X2) -> n____(X1, X2) 587.54/148.07 , __(X, nil()) -> X 587.54/148.07 , __(__(X, Y), Z) -> __(X, __(Y, Z)) 587.54/148.07 , __(nil(), X) -> X 587.54/148.07 , nil() -> n__nil() 587.54/148.07 , U11(tt(), V) -> U12(isNeList(activate(V))) 587.54/148.07 , U12(tt()) -> tt() 587.54/148.07 , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) 587.54/148.07 , isNeList(n____(V1, V2)) -> 587.54/148.07 U41(and(isPalListKind(activate(V1)), 587.54/148.07 n__isPalListKind(activate(V2))), 587.54/148.07 activate(V1), 587.54/148.07 activate(V2)) 587.54/148.07 , isNeList(n____(V1, V2)) -> 587.54/148.07 U51(and(isPalListKind(activate(V1)), 587.54/148.07 n__isPalListKind(activate(V2))), 587.54/148.07 activate(V1), 587.54/148.07 activate(V2)) 587.54/148.07 , activate(X) -> X 587.54/148.07 , activate(n__nil()) -> nil() 587.54/148.07 , activate(n____(X1, X2)) -> __(X1, X2) 587.54/148.07 , activate(n__isPalListKind(X)) -> isPalListKind(X) 587.54/148.07 , activate(n__and(X1, X2)) -> and(X1, X2) 587.54/148.07 , activate(n__a()) -> a() 587.54/148.07 , activate(n__e()) -> e() 587.54/148.07 , activate(n__i()) -> i() 587.54/148.07 , activate(n__o()) -> o() 587.54/148.07 , activate(n__u()) -> u() 587.54/148.08 , U21(tt(), V1, V2) -> U22(isList(activate(V1)), activate(V2)) 587.54/148.08 , U22(tt(), V2) -> U23(isList(activate(V2))) 587.54/148.08 , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) 587.54/148.08 , isList(n__nil()) -> tt() 587.54/148.08 , isList(n____(V1, V2)) -> 587.54/148.08 U21(and(isPalListKind(activate(V1)), 587.54/148.08 n__isPalListKind(activate(V2))), 587.54/148.08 activate(V1), 587.54/148.08 activate(V2)) 587.54/148.08 , U23(tt()) -> tt() 587.54/148.08 , U31(tt(), V) -> U32(isQid(activate(V))) 587.54/148.08 , U32(tt()) -> tt() 587.54/148.08 , isQid(n__a()) -> tt() 587.54/148.08 , isQid(n__e()) -> tt() 587.54/148.08 , isQid(n__i()) -> tt() 587.54/148.08 , isQid(n__o()) -> tt() 587.54/148.08 , isQid(n__u()) -> tt() 587.54/148.08 , U41(tt(), V1, V2) -> U42(isList(activate(V1)), activate(V2)) 587.54/148.08 , U42(tt(), V2) -> U43(isNeList(activate(V2))) 587.54/148.08 , U43(tt()) -> tt() 587.54/148.08 , U51(tt(), V1, V2) -> U52(isNeList(activate(V1)), activate(V2)) 587.54/148.08 , U52(tt(), V2) -> U53(isList(activate(V2))) 587.54/148.08 , U53(tt()) -> tt() 587.54/148.08 , U61(tt(), V) -> U62(isQid(activate(V))) 587.54/148.08 , U62(tt()) -> tt() 587.54/148.08 , U71(tt(), V) -> U72(isNePal(activate(V))) 587.54/148.08 , U72(tt()) -> tt() 587.54/148.08 , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) 587.54/148.08 , isNePal(n____(I, __(P, I))) -> 587.54/148.08 and(and(isQid(activate(I)), n__isPalListKind(activate(I))), 587.54/148.08 n__and(isPal(activate(P)), n__isPalListKind(activate(P)))) 587.54/148.08 , and(X1, X2) -> n__and(X1, X2) 587.54/148.08 , and(tt(), X) -> activate(X) 587.54/148.08 , isPalListKind(X) -> n__isPalListKind(X) 587.54/148.08 , isPalListKind(n__nil()) -> tt() 587.54/148.08 , isPalListKind(n____(V1, V2)) -> 587.54/148.08 and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.54/148.08 , isPalListKind(n__a()) -> tt() 587.54/148.08 , isPalListKind(n__e()) -> tt() 587.54/148.08 , isPalListKind(n__i()) -> tt() 587.54/148.08 , isPalListKind(n__o()) -> tt() 587.54/148.08 , isPalListKind(n__u()) -> tt() 587.54/148.08 , isPal(V) -> U71(isPalListKind(activate(V)), activate(V)) 587.54/148.08 , isPal(n__nil()) -> tt() 587.54/148.08 , a() -> n__a() 587.54/148.08 , e() -> n__e() 587.54/148.08 , i() -> n__i() 587.54/148.08 , o() -> n__o() 587.54/148.08 , u() -> n__u() } 587.54/148.08 Obligation: 587.54/148.08 innermost runtime complexity 587.54/148.08 Answer: 587.54/148.08 YES(O(1),O(n^2)) 587.54/148.08 587.54/148.08 Arguments of following rules are not normal-forms: 587.54/148.08 587.54/148.08 { __(X, nil()) -> X 587.54/148.08 , __(__(X, Y), Z) -> __(X, __(Y, Z)) 587.54/148.08 , __(nil(), X) -> X 587.54/148.08 , isNePal(n____(I, __(P, I))) -> 587.54/148.08 and(and(isQid(activate(I)), n__isPalListKind(activate(I))), 587.54/148.08 n__and(isPal(activate(P)), n__isPalListKind(activate(P)))) } 587.54/148.08 587.54/148.08 All above mentioned rules can be savely removed. 587.54/148.08 587.54/148.08 We are left with following problem, upon which TcT provides the 587.54/148.08 certificate YES(O(1),O(n^2)). 587.54/148.08 587.54/148.08 Strict Trs: 587.54/148.08 { __(X1, X2) -> n____(X1, X2) 587.54/148.08 , nil() -> n__nil() 587.54/148.08 , U11(tt(), V) -> U12(isNeList(activate(V))) 587.54/148.08 , U12(tt()) -> tt() 587.54/148.08 , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) 587.54/148.08 , isNeList(n____(V1, V2)) -> 587.54/148.08 U41(and(isPalListKind(activate(V1)), 587.54/148.08 n__isPalListKind(activate(V2))), 587.54/148.08 activate(V1), 587.54/148.08 activate(V2)) 587.54/148.08 , isNeList(n____(V1, V2)) -> 587.54/148.08 U51(and(isPalListKind(activate(V1)), 587.54/148.08 n__isPalListKind(activate(V2))), 587.54/148.08 activate(V1), 587.54/148.08 activate(V2)) 587.54/148.08 , activate(X) -> X 587.54/148.08 , activate(n__nil()) -> nil() 587.54/148.08 , activate(n____(X1, X2)) -> __(X1, X2) 587.54/148.08 , activate(n__isPalListKind(X)) -> isPalListKind(X) 587.54/148.08 , activate(n__and(X1, X2)) -> and(X1, X2) 587.54/148.08 , activate(n__a()) -> a() 587.54/148.08 , activate(n__e()) -> e() 587.54/148.08 , activate(n__i()) -> i() 587.54/148.08 , activate(n__o()) -> o() 587.54/148.08 , activate(n__u()) -> u() 587.54/148.08 , U21(tt(), V1, V2) -> U22(isList(activate(V1)), activate(V2)) 587.54/148.08 , U22(tt(), V2) -> U23(isList(activate(V2))) 587.54/148.08 , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) 587.54/148.08 , isList(n__nil()) -> tt() 587.54/148.08 , isList(n____(V1, V2)) -> 587.54/148.08 U21(and(isPalListKind(activate(V1)), 587.54/148.08 n__isPalListKind(activate(V2))), 587.54/148.08 activate(V1), 587.54/148.08 activate(V2)) 587.54/148.08 , U23(tt()) -> tt() 587.54/148.08 , U31(tt(), V) -> U32(isQid(activate(V))) 587.54/148.08 , U32(tt()) -> tt() 587.54/148.08 , isQid(n__a()) -> tt() 587.54/148.08 , isQid(n__e()) -> tt() 587.54/148.08 , isQid(n__i()) -> tt() 587.54/148.08 , isQid(n__o()) -> tt() 587.54/148.08 , isQid(n__u()) -> tt() 587.54/148.08 , U41(tt(), V1, V2) -> U42(isList(activate(V1)), activate(V2)) 587.54/148.08 , U42(tt(), V2) -> U43(isNeList(activate(V2))) 587.54/148.08 , U43(tt()) -> tt() 587.54/148.08 , U51(tt(), V1, V2) -> U52(isNeList(activate(V1)), activate(V2)) 587.54/148.08 , U52(tt(), V2) -> U53(isList(activate(V2))) 587.54/148.08 , U53(tt()) -> tt() 587.54/148.08 , U61(tt(), V) -> U62(isQid(activate(V))) 587.54/148.08 , U62(tt()) -> tt() 587.54/148.08 , U71(tt(), V) -> U72(isNePal(activate(V))) 587.54/148.08 , U72(tt()) -> tt() 587.54/148.08 , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) 587.54/148.08 , and(X1, X2) -> n__and(X1, X2) 587.54/148.08 , and(tt(), X) -> activate(X) 587.54/148.08 , isPalListKind(X) -> n__isPalListKind(X) 587.54/148.08 , isPalListKind(n__nil()) -> tt() 587.54/148.08 , isPalListKind(n____(V1, V2)) -> 587.54/148.08 and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.54/148.08 , isPalListKind(n__a()) -> tt() 587.54/148.08 , isPalListKind(n__e()) -> tt() 587.54/148.08 , isPalListKind(n__i()) -> tt() 587.54/148.08 , isPalListKind(n__o()) -> tt() 587.54/148.08 , isPalListKind(n__u()) -> tt() 587.54/148.08 , isPal(V) -> U71(isPalListKind(activate(V)), activate(V)) 587.54/148.08 , isPal(n__nil()) -> tt() 587.54/148.08 , a() -> n__a() 587.54/148.08 , e() -> n__e() 587.54/148.08 , i() -> n__i() 587.54/148.08 , o() -> n__o() 587.54/148.08 , u() -> n__u() } 587.54/148.08 Obligation: 587.54/148.08 innermost runtime complexity 587.54/148.08 Answer: 587.54/148.08 YES(O(1),O(n^2)) 587.54/148.08 587.54/148.08 We add the following dependency tuples: 587.54/148.08 587.54/148.08 Strict DPs: 587.54/148.08 { __^#(X1, X2) -> c_1() 587.54/148.08 , nil^#() -> c_2() 587.54/148.08 , U11^#(tt(), V) -> 587.54/148.08 c_3(U12^#(isNeList(activate(V))), 587.54/148.08 isNeList^#(activate(V)), 587.54/148.08 activate^#(V)) 587.54/148.08 , U12^#(tt()) -> c_4() 587.54/148.08 , isNeList^#(V) -> 587.54/148.08 c_5(U31^#(isPalListKind(activate(V)), activate(V)), 587.54/148.08 isPalListKind^#(activate(V)), 587.54/148.08 activate^#(V), 587.54/148.08 activate^#(V)) 587.54/148.08 , isNeList^#(n____(V1, V2)) -> 587.54/148.08 c_6(U41^#(and(isPalListKind(activate(V1)), 587.54/148.08 n__isPalListKind(activate(V2))), 587.54/148.08 activate(V1), 587.54/148.08 activate(V2)), 587.54/148.08 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.54/148.08 isPalListKind^#(activate(V1)), 587.54/148.08 activate^#(V1), 587.54/148.08 activate^#(V2), 587.54/148.08 activate^#(V1), 587.54/148.08 activate^#(V2)) 587.54/148.08 , isNeList^#(n____(V1, V2)) -> 587.54/148.08 c_7(U51^#(and(isPalListKind(activate(V1)), 587.54/148.08 n__isPalListKind(activate(V2))), 587.54/148.08 activate(V1), 587.54/148.08 activate(V2)), 587.54/148.08 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.54/148.08 isPalListKind^#(activate(V1)), 587.54/148.08 activate^#(V1), 587.54/148.08 activate^#(V2), 587.54/148.08 activate^#(V1), 587.54/148.08 activate^#(V2)) 587.54/148.08 , activate^#(X) -> c_8() 587.54/148.08 , activate^#(n__nil()) -> c_9(nil^#()) 587.54/148.08 , activate^#(n____(X1, X2)) -> c_10(__^#(X1, X2)) 587.54/148.08 , activate^#(n__isPalListKind(X)) -> c_11(isPalListKind^#(X)) 587.54/148.08 , activate^#(n__and(X1, X2)) -> c_12(and^#(X1, X2)) 587.54/148.08 , activate^#(n__a()) -> c_13(a^#()) 587.54/148.08 , activate^#(n__e()) -> c_14(e^#()) 587.54/148.08 , activate^#(n__i()) -> c_15(i^#()) 587.54/148.08 , activate^#(n__o()) -> c_16(o^#()) 587.54/148.08 , activate^#(n__u()) -> c_17(u^#()) 587.54/148.08 , U31^#(tt(), V) -> 587.54/148.08 c_24(U32^#(isQid(activate(V))), 587.54/148.08 isQid^#(activate(V)), 587.54/148.08 activate^#(V)) 587.54/148.08 , isPalListKind^#(X) -> c_44() 587.54/148.08 , isPalListKind^#(n__nil()) -> c_45() 587.54/148.08 , isPalListKind^#(n____(V1, V2)) -> 587.54/148.08 c_46(and^#(isPalListKind(activate(V1)), 587.54/148.08 n__isPalListKind(activate(V2))), 587.54/148.08 isPalListKind^#(activate(V1)), 587.54/148.08 activate^#(V1), 587.54/148.08 activate^#(V2)) 587.54/148.08 , isPalListKind^#(n__a()) -> c_47() 587.54/148.08 , isPalListKind^#(n__e()) -> c_48() 587.54/148.08 , isPalListKind^#(n__i()) -> c_49() 587.54/148.08 , isPalListKind^#(n__o()) -> c_50() 587.54/148.08 , isPalListKind^#(n__u()) -> c_51() 587.54/148.08 , U41^#(tt(), V1, V2) -> 587.54/148.08 c_31(U42^#(isList(activate(V1)), activate(V2)), 587.54/148.08 isList^#(activate(V1)), 587.54/148.08 activate^#(V1), 587.54/148.08 activate^#(V2)) 587.54/148.08 , and^#(X1, X2) -> c_42() 587.54/148.08 , and^#(tt(), X) -> c_43(activate^#(X)) 587.54/148.08 , U51^#(tt(), V1, V2) -> 587.54/148.08 c_34(U52^#(isNeList(activate(V1)), activate(V2)), 587.54/148.08 isNeList^#(activate(V1)), 587.54/148.08 activate^#(V1), 587.54/148.08 activate^#(V2)) 587.54/148.08 , a^#() -> c_54() 587.54/148.08 , e^#() -> c_55() 587.54/148.08 , i^#() -> c_56() 587.54/148.08 , o^#() -> c_57() 587.54/148.08 , u^#() -> c_58() 587.54/148.08 , U21^#(tt(), V1, V2) -> 587.54/148.08 c_18(U22^#(isList(activate(V1)), activate(V2)), 587.54/148.08 isList^#(activate(V1)), 587.54/148.08 activate^#(V1), 587.54/148.08 activate^#(V2)) 587.54/148.08 , U22^#(tt(), V2) -> 587.54/148.08 c_19(U23^#(isList(activate(V2))), 587.54/148.08 isList^#(activate(V2)), 587.54/148.08 activate^#(V2)) 587.54/148.08 , isList^#(V) -> 587.54/148.08 c_20(U11^#(isPalListKind(activate(V)), activate(V)), 587.54/148.08 isPalListKind^#(activate(V)), 587.54/148.08 activate^#(V), 587.54/148.08 activate^#(V)) 587.54/148.08 , isList^#(n__nil()) -> c_21() 587.54/148.08 , isList^#(n____(V1, V2)) -> 587.54/148.08 c_22(U21^#(and(isPalListKind(activate(V1)), 587.54/148.08 n__isPalListKind(activate(V2))), 587.54/148.08 activate(V1), 587.54/148.08 activate(V2)), 587.54/148.08 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.54/148.08 isPalListKind^#(activate(V1)), 587.54/148.08 activate^#(V1), 587.54/148.08 activate^#(V2), 587.54/148.08 activate^#(V1), 587.54/148.08 activate^#(V2)) 587.54/148.08 , U23^#(tt()) -> c_23() 587.54/148.08 , U32^#(tt()) -> c_25() 587.54/148.08 , isQid^#(n__a()) -> c_26() 587.54/148.08 , isQid^#(n__e()) -> c_27() 587.54/148.08 , isQid^#(n__i()) -> c_28() 587.54/148.08 , isQid^#(n__o()) -> c_29() 587.54/148.08 , isQid^#(n__u()) -> c_30() 587.54/148.08 , U42^#(tt(), V2) -> 587.54/148.08 c_32(U43^#(isNeList(activate(V2))), 587.54/148.08 isNeList^#(activate(V2)), 587.54/148.08 activate^#(V2)) 587.54/148.08 , U43^#(tt()) -> c_33() 587.54/148.08 , U52^#(tt(), V2) -> 587.54/148.08 c_35(U53^#(isList(activate(V2))), 587.54/148.08 isList^#(activate(V2)), 587.54/148.08 activate^#(V2)) 587.54/148.08 , U53^#(tt()) -> c_36() 587.54/148.08 , U61^#(tt(), V) -> 587.54/148.08 c_37(U62^#(isQid(activate(V))), 587.54/148.08 isQid^#(activate(V)), 587.54/148.08 activate^#(V)) 587.54/148.08 , U62^#(tt()) -> c_38() 587.54/148.08 , U71^#(tt(), V) -> 587.54/148.08 c_39(U72^#(isNePal(activate(V))), 587.54/148.08 isNePal^#(activate(V)), 587.54/148.08 activate^#(V)) 587.54/148.08 , U72^#(tt()) -> c_40() 587.54/148.08 , isNePal^#(V) -> 587.54/148.08 c_41(U61^#(isPalListKind(activate(V)), activate(V)), 587.54/148.08 isPalListKind^#(activate(V)), 587.54/148.08 activate^#(V), 587.54/148.08 activate^#(V)) 587.54/148.08 , isPal^#(V) -> 587.54/148.08 c_52(U71^#(isPalListKind(activate(V)), activate(V)), 587.54/148.08 isPalListKind^#(activate(V)), 587.54/148.08 activate^#(V), 587.54/148.08 activate^#(V)) 587.54/148.08 , isPal^#(n__nil()) -> c_53() } 587.54/148.08 587.54/148.08 and mark the set of starting terms. 587.54/148.08 587.54/148.08 We are left with following problem, upon which TcT provides the 587.54/148.08 certificate YES(O(1),O(n^2)). 587.54/148.08 587.54/148.08 Strict DPs: 587.54/148.08 { __^#(X1, X2) -> c_1() 587.54/148.08 , nil^#() -> c_2() 587.54/148.08 , U11^#(tt(), V) -> 587.54/148.08 c_3(U12^#(isNeList(activate(V))), 587.54/148.08 isNeList^#(activate(V)), 587.54/148.08 activate^#(V)) 587.54/148.08 , U12^#(tt()) -> c_4() 587.54/148.08 , isNeList^#(V) -> 587.54/148.08 c_5(U31^#(isPalListKind(activate(V)), activate(V)), 587.54/148.08 isPalListKind^#(activate(V)), 587.54/148.08 activate^#(V), 587.54/148.08 activate^#(V)) 587.54/148.08 , isNeList^#(n____(V1, V2)) -> 587.54/148.08 c_6(U41^#(and(isPalListKind(activate(V1)), 587.54/148.08 n__isPalListKind(activate(V2))), 587.54/148.08 activate(V1), 587.54/148.08 activate(V2)), 587.54/148.08 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.54/148.08 isPalListKind^#(activate(V1)), 587.54/148.08 activate^#(V1), 587.54/148.08 activate^#(V2), 587.54/148.08 activate^#(V1), 587.54/148.08 activate^#(V2)) 587.54/148.08 , isNeList^#(n____(V1, V2)) -> 587.54/148.08 c_7(U51^#(and(isPalListKind(activate(V1)), 587.54/148.08 n__isPalListKind(activate(V2))), 587.54/148.08 activate(V1), 587.54/148.08 activate(V2)), 587.54/148.08 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.54/148.08 isPalListKind^#(activate(V1)), 587.54/148.08 activate^#(V1), 587.54/148.08 activate^#(V2), 587.54/148.08 activate^#(V1), 587.54/148.08 activate^#(V2)) 587.54/148.08 , activate^#(X) -> c_8() 587.54/148.08 , activate^#(n__nil()) -> c_9(nil^#()) 587.54/148.08 , activate^#(n____(X1, X2)) -> c_10(__^#(X1, X2)) 587.54/148.08 , activate^#(n__isPalListKind(X)) -> c_11(isPalListKind^#(X)) 587.54/148.08 , activate^#(n__and(X1, X2)) -> c_12(and^#(X1, X2)) 587.54/148.08 , activate^#(n__a()) -> c_13(a^#()) 587.54/148.08 , activate^#(n__e()) -> c_14(e^#()) 587.54/148.08 , activate^#(n__i()) -> c_15(i^#()) 587.54/148.08 , activate^#(n__o()) -> c_16(o^#()) 587.54/148.08 , activate^#(n__u()) -> c_17(u^#()) 587.54/148.08 , U31^#(tt(), V) -> 587.54/148.08 c_24(U32^#(isQid(activate(V))), 587.54/148.08 isQid^#(activate(V)), 587.54/148.08 activate^#(V)) 587.54/148.08 , isPalListKind^#(X) -> c_44() 587.54/148.08 , isPalListKind^#(n__nil()) -> c_45() 587.54/148.08 , isPalListKind^#(n____(V1, V2)) -> 587.54/148.08 c_46(and^#(isPalListKind(activate(V1)), 587.54/148.08 n__isPalListKind(activate(V2))), 587.54/148.08 isPalListKind^#(activate(V1)), 587.54/148.08 activate^#(V1), 587.54/148.08 activate^#(V2)) 587.54/148.08 , isPalListKind^#(n__a()) -> c_47() 587.54/148.08 , isPalListKind^#(n__e()) -> c_48() 587.54/148.08 , isPalListKind^#(n__i()) -> c_49() 587.54/148.08 , isPalListKind^#(n__o()) -> c_50() 587.54/148.08 , isPalListKind^#(n__u()) -> c_51() 587.54/148.08 , U41^#(tt(), V1, V2) -> 587.54/148.08 c_31(U42^#(isList(activate(V1)), activate(V2)), 587.54/148.08 isList^#(activate(V1)), 587.54/148.08 activate^#(V1), 587.54/148.08 activate^#(V2)) 587.54/148.08 , and^#(X1, X2) -> c_42() 587.54/148.08 , and^#(tt(), X) -> c_43(activate^#(X)) 587.54/148.08 , U51^#(tt(), V1, V2) -> 587.54/148.08 c_34(U52^#(isNeList(activate(V1)), activate(V2)), 587.54/148.08 isNeList^#(activate(V1)), 587.54/148.08 activate^#(V1), 587.54/148.08 activate^#(V2)) 587.54/148.08 , a^#() -> c_54() 587.54/148.08 , e^#() -> c_55() 587.54/148.08 , i^#() -> c_56() 587.54/148.08 , o^#() -> c_57() 587.54/148.08 , u^#() -> c_58() 587.54/148.08 , U21^#(tt(), V1, V2) -> 587.54/148.08 c_18(U22^#(isList(activate(V1)), activate(V2)), 587.54/148.08 isList^#(activate(V1)), 587.54/148.08 activate^#(V1), 587.54/148.08 activate^#(V2)) 587.54/148.08 , U22^#(tt(), V2) -> 587.54/148.08 c_19(U23^#(isList(activate(V2))), 587.54/148.08 isList^#(activate(V2)), 587.54/148.08 activate^#(V2)) 587.54/148.08 , isList^#(V) -> 587.54/148.08 c_20(U11^#(isPalListKind(activate(V)), activate(V)), 587.54/148.08 isPalListKind^#(activate(V)), 587.54/148.08 activate^#(V), 587.54/148.08 activate^#(V)) 587.54/148.08 , isList^#(n__nil()) -> c_21() 587.54/148.08 , isList^#(n____(V1, V2)) -> 587.54/148.08 c_22(U21^#(and(isPalListKind(activate(V1)), 587.54/148.08 n__isPalListKind(activate(V2))), 587.54/148.08 activate(V1), 587.54/148.08 activate(V2)), 587.54/148.08 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.54/148.08 isPalListKind^#(activate(V1)), 587.54/148.08 activate^#(V1), 587.54/148.08 activate^#(V2), 587.54/148.08 activate^#(V1), 587.54/148.08 activate^#(V2)) 587.54/148.08 , U23^#(tt()) -> c_23() 587.54/148.08 , U32^#(tt()) -> c_25() 587.54/148.08 , isQid^#(n__a()) -> c_26() 587.54/148.08 , isQid^#(n__e()) -> c_27() 587.54/148.08 , isQid^#(n__i()) -> c_28() 587.54/148.08 , isQid^#(n__o()) -> c_29() 587.54/148.08 , isQid^#(n__u()) -> c_30() 587.54/148.08 , U42^#(tt(), V2) -> 587.54/148.08 c_32(U43^#(isNeList(activate(V2))), 587.54/148.08 isNeList^#(activate(V2)), 587.54/148.08 activate^#(V2)) 587.54/148.08 , U43^#(tt()) -> c_33() 587.54/148.08 , U52^#(tt(), V2) -> 587.54/148.08 c_35(U53^#(isList(activate(V2))), 587.54/148.08 isList^#(activate(V2)), 587.54/148.08 activate^#(V2)) 587.54/148.08 , U53^#(tt()) -> c_36() 587.54/148.08 , U61^#(tt(), V) -> 587.54/148.08 c_37(U62^#(isQid(activate(V))), 587.54/148.08 isQid^#(activate(V)), 587.54/148.08 activate^#(V)) 587.54/148.08 , U62^#(tt()) -> c_38() 587.54/148.08 , U71^#(tt(), V) -> 587.54/148.08 c_39(U72^#(isNePal(activate(V))), 587.54/148.08 isNePal^#(activate(V)), 587.54/148.08 activate^#(V)) 587.54/148.08 , U72^#(tt()) -> c_40() 587.54/148.08 , isNePal^#(V) -> 587.54/148.08 c_41(U61^#(isPalListKind(activate(V)), activate(V)), 587.54/148.08 isPalListKind^#(activate(V)), 587.54/148.08 activate^#(V), 587.54/148.08 activate^#(V)) 587.54/148.08 , isPal^#(V) -> 587.54/148.08 c_52(U71^#(isPalListKind(activate(V)), activate(V)), 587.54/148.08 isPalListKind^#(activate(V)), 587.54/148.08 activate^#(V), 587.54/148.08 activate^#(V)) 587.54/148.08 , isPal^#(n__nil()) -> c_53() } 587.54/148.08 Weak Trs: 587.54/148.08 { __(X1, X2) -> n____(X1, X2) 587.54/148.08 , nil() -> n__nil() 587.54/148.08 , U11(tt(), V) -> U12(isNeList(activate(V))) 587.54/148.08 , U12(tt()) -> tt() 587.54/148.08 , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) 587.54/148.08 , isNeList(n____(V1, V2)) -> 587.54/148.08 U41(and(isPalListKind(activate(V1)), 587.54/148.08 n__isPalListKind(activate(V2))), 587.54/148.08 activate(V1), 587.54/148.08 activate(V2)) 587.54/148.08 , isNeList(n____(V1, V2)) -> 587.54/148.08 U51(and(isPalListKind(activate(V1)), 587.54/148.08 n__isPalListKind(activate(V2))), 587.54/148.08 activate(V1), 587.54/148.08 activate(V2)) 587.54/148.08 , activate(X) -> X 587.54/148.08 , activate(n__nil()) -> nil() 587.54/148.08 , activate(n____(X1, X2)) -> __(X1, X2) 587.54/148.08 , activate(n__isPalListKind(X)) -> isPalListKind(X) 587.54/148.08 , activate(n__and(X1, X2)) -> and(X1, X2) 587.54/148.08 , activate(n__a()) -> a() 587.54/148.08 , activate(n__e()) -> e() 587.54/148.08 , activate(n__i()) -> i() 587.54/148.08 , activate(n__o()) -> o() 587.54/148.08 , activate(n__u()) -> u() 587.54/148.08 , U21(tt(), V1, V2) -> U22(isList(activate(V1)), activate(V2)) 587.54/148.08 , U22(tt(), V2) -> U23(isList(activate(V2))) 587.54/148.08 , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) 587.54/148.08 , isList(n__nil()) -> tt() 587.54/148.08 , isList(n____(V1, V2)) -> 587.54/148.08 U21(and(isPalListKind(activate(V1)), 587.54/148.08 n__isPalListKind(activate(V2))), 587.54/148.08 activate(V1), 587.54/148.08 activate(V2)) 587.54/148.08 , U23(tt()) -> tt() 587.54/148.08 , U31(tt(), V) -> U32(isQid(activate(V))) 587.54/148.08 , U32(tt()) -> tt() 587.54/148.08 , isQid(n__a()) -> tt() 587.54/148.08 , isQid(n__e()) -> tt() 587.54/148.08 , isQid(n__i()) -> tt() 587.54/148.08 , isQid(n__o()) -> tt() 587.54/148.08 , isQid(n__u()) -> tt() 587.54/148.08 , U41(tt(), V1, V2) -> U42(isList(activate(V1)), activate(V2)) 587.54/148.08 , U42(tt(), V2) -> U43(isNeList(activate(V2))) 587.54/148.08 , U43(tt()) -> tt() 587.54/148.08 , U51(tt(), V1, V2) -> U52(isNeList(activate(V1)), activate(V2)) 587.54/148.08 , U52(tt(), V2) -> U53(isList(activate(V2))) 587.54/148.08 , U53(tt()) -> tt() 587.54/148.08 , U61(tt(), V) -> U62(isQid(activate(V))) 587.54/148.08 , U62(tt()) -> tt() 587.54/148.08 , U71(tt(), V) -> U72(isNePal(activate(V))) 587.54/148.08 , U72(tt()) -> tt() 587.54/148.08 , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) 587.54/148.08 , and(X1, X2) -> n__and(X1, X2) 587.54/148.08 , and(tt(), X) -> activate(X) 587.54/148.08 , isPalListKind(X) -> n__isPalListKind(X) 587.54/148.08 , isPalListKind(n__nil()) -> tt() 587.54/148.08 , isPalListKind(n____(V1, V2)) -> 587.54/148.08 and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.54/148.08 , isPalListKind(n__a()) -> tt() 587.54/148.08 , isPalListKind(n__e()) -> tt() 587.54/148.08 , isPalListKind(n__i()) -> tt() 587.54/148.08 , isPalListKind(n__o()) -> tt() 587.54/148.08 , isPalListKind(n__u()) -> tt() 587.54/148.08 , isPal(V) -> U71(isPalListKind(activate(V)), activate(V)) 587.54/148.08 , isPal(n__nil()) -> tt() 587.54/148.08 , a() -> n__a() 587.54/148.08 , e() -> n__e() 587.54/148.08 , i() -> n__i() 587.54/148.08 , o() -> n__o() 587.54/148.08 , u() -> n__u() } 587.54/148.08 Obligation: 587.54/148.08 innermost runtime complexity 587.54/148.08 Answer: 587.54/148.08 YES(O(1),O(n^2)) 587.54/148.08 587.54/148.08 We estimate the number of application of 587.54/148.08 {1,2,4,8,19,20,22,23,24,25,26,28,31,32,33,34,35,39,41,42,43,44,45,46,47,49,51,53,55,58} 587.54/148.08 by applications of 587.54/148.08 Pre({1,2,4,8,19,20,22,23,24,25,26,28,31,32,33,34,35,39,41,42,43,44,45,46,47,49,51,53,55,58}) 587.54/148.08 = 587.54/148.08 {3,5,6,7,9,10,11,12,13,14,15,16,17,18,21,27,29,30,36,37,38,40,48,50,52,54,56,57}. 587.54/148.08 Here rules are labeled as follows: 587.54/148.08 587.54/148.08 DPs: 587.54/148.08 { 1: __^#(X1, X2) -> c_1() 587.54/148.08 , 2: nil^#() -> c_2() 587.54/148.08 , 3: U11^#(tt(), V) -> 587.54/148.08 c_3(U12^#(isNeList(activate(V))), 587.54/148.08 isNeList^#(activate(V)), 587.54/148.08 activate^#(V)) 587.54/148.08 , 4: U12^#(tt()) -> c_4() 587.54/148.08 , 5: isNeList^#(V) -> 587.54/148.08 c_5(U31^#(isPalListKind(activate(V)), activate(V)), 587.54/148.08 isPalListKind^#(activate(V)), 587.54/148.08 activate^#(V), 587.54/148.08 activate^#(V)) 587.54/148.08 , 6: isNeList^#(n____(V1, V2)) -> 587.54/148.08 c_6(U41^#(and(isPalListKind(activate(V1)), 587.54/148.08 n__isPalListKind(activate(V2))), 587.54/148.08 activate(V1), 587.54/148.08 activate(V2)), 587.54/148.08 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.54/148.08 isPalListKind^#(activate(V1)), 587.54/148.08 activate^#(V1), 587.54/148.08 activate^#(V2), 587.54/148.08 activate^#(V1), 587.54/148.08 activate^#(V2)) 587.54/148.08 , 7: isNeList^#(n____(V1, V2)) -> 587.54/148.08 c_7(U51^#(and(isPalListKind(activate(V1)), 587.54/148.08 n__isPalListKind(activate(V2))), 587.54/148.08 activate(V1), 587.54/148.08 activate(V2)), 587.54/148.08 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.54/148.08 isPalListKind^#(activate(V1)), 587.54/148.08 activate^#(V1), 587.54/148.08 activate^#(V2), 587.54/148.08 activate^#(V1), 587.54/148.08 activate^#(V2)) 587.54/148.08 , 8: activate^#(X) -> c_8() 587.54/148.08 , 9: activate^#(n__nil()) -> c_9(nil^#()) 587.54/148.08 , 10: activate^#(n____(X1, X2)) -> c_10(__^#(X1, X2)) 587.54/148.08 , 11: activate^#(n__isPalListKind(X)) -> c_11(isPalListKind^#(X)) 587.54/148.08 , 12: activate^#(n__and(X1, X2)) -> c_12(and^#(X1, X2)) 587.54/148.08 , 13: activate^#(n__a()) -> c_13(a^#()) 587.54/148.08 , 14: activate^#(n__e()) -> c_14(e^#()) 587.54/148.08 , 15: activate^#(n__i()) -> c_15(i^#()) 587.54/148.08 , 16: activate^#(n__o()) -> c_16(o^#()) 587.54/148.08 , 17: activate^#(n__u()) -> c_17(u^#()) 587.54/148.08 , 18: U31^#(tt(), V) -> 587.54/148.08 c_24(U32^#(isQid(activate(V))), 587.54/148.08 isQid^#(activate(V)), 587.54/148.08 activate^#(V)) 587.54/148.08 , 19: isPalListKind^#(X) -> c_44() 587.54/148.08 , 20: isPalListKind^#(n__nil()) -> c_45() 587.54/148.08 , 21: isPalListKind^#(n____(V1, V2)) -> 587.54/148.08 c_46(and^#(isPalListKind(activate(V1)), 587.54/148.08 n__isPalListKind(activate(V2))), 587.54/148.08 isPalListKind^#(activate(V1)), 587.54/148.08 activate^#(V1), 587.54/148.08 activate^#(V2)) 587.54/148.08 , 22: isPalListKind^#(n__a()) -> c_47() 587.54/148.08 , 23: isPalListKind^#(n__e()) -> c_48() 587.54/148.08 , 24: isPalListKind^#(n__i()) -> c_49() 587.54/148.08 , 25: isPalListKind^#(n__o()) -> c_50() 587.54/148.08 , 26: isPalListKind^#(n__u()) -> c_51() 587.54/148.08 , 27: U41^#(tt(), V1, V2) -> 587.54/148.08 c_31(U42^#(isList(activate(V1)), activate(V2)), 587.54/148.08 isList^#(activate(V1)), 587.54/148.08 activate^#(V1), 587.54/148.08 activate^#(V2)) 587.54/148.08 , 28: and^#(X1, X2) -> c_42() 587.54/148.08 , 29: and^#(tt(), X) -> c_43(activate^#(X)) 587.54/148.08 , 30: U51^#(tt(), V1, V2) -> 587.54/148.08 c_34(U52^#(isNeList(activate(V1)), activate(V2)), 587.54/148.08 isNeList^#(activate(V1)), 587.54/148.08 activate^#(V1), 587.54/148.08 activate^#(V2)) 587.54/148.08 , 31: a^#() -> c_54() 587.54/148.08 , 32: e^#() -> c_55() 587.54/148.08 , 33: i^#() -> c_56() 587.54/148.08 , 34: o^#() -> c_57() 587.54/148.08 , 35: u^#() -> c_58() 587.54/148.08 , 36: U21^#(tt(), V1, V2) -> 587.54/148.08 c_18(U22^#(isList(activate(V1)), activate(V2)), 587.54/148.08 isList^#(activate(V1)), 587.54/148.08 activate^#(V1), 587.54/148.08 activate^#(V2)) 587.54/148.08 , 37: U22^#(tt(), V2) -> 587.54/148.08 c_19(U23^#(isList(activate(V2))), 587.54/148.08 isList^#(activate(V2)), 587.54/148.08 activate^#(V2)) 587.54/148.08 , 38: isList^#(V) -> 587.54/148.08 c_20(U11^#(isPalListKind(activate(V)), activate(V)), 587.54/148.08 isPalListKind^#(activate(V)), 587.54/148.08 activate^#(V), 587.54/148.08 activate^#(V)) 587.54/148.08 , 39: isList^#(n__nil()) -> c_21() 587.54/148.08 , 40: isList^#(n____(V1, V2)) -> 587.54/148.08 c_22(U21^#(and(isPalListKind(activate(V1)), 587.54/148.08 n__isPalListKind(activate(V2))), 587.54/148.08 activate(V1), 587.54/148.08 activate(V2)), 587.54/148.08 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.54/148.08 isPalListKind^#(activate(V1)), 587.54/148.08 activate^#(V1), 587.54/148.08 activate^#(V2), 587.54/148.08 activate^#(V1), 587.54/148.08 activate^#(V2)) 587.54/148.08 , 41: U23^#(tt()) -> c_23() 587.54/148.08 , 42: U32^#(tt()) -> c_25() 587.54/148.08 , 43: isQid^#(n__a()) -> c_26() 587.54/148.08 , 44: isQid^#(n__e()) -> c_27() 587.54/148.08 , 45: isQid^#(n__i()) -> c_28() 587.54/148.08 , 46: isQid^#(n__o()) -> c_29() 587.54/148.08 , 47: isQid^#(n__u()) -> c_30() 587.54/148.08 , 48: U42^#(tt(), V2) -> 587.54/148.08 c_32(U43^#(isNeList(activate(V2))), 587.54/148.08 isNeList^#(activate(V2)), 587.54/148.08 activate^#(V2)) 587.54/148.08 , 49: U43^#(tt()) -> c_33() 587.54/148.08 , 50: U52^#(tt(), V2) -> 587.54/148.08 c_35(U53^#(isList(activate(V2))), 587.54/148.08 isList^#(activate(V2)), 587.54/148.08 activate^#(V2)) 587.54/148.08 , 51: U53^#(tt()) -> c_36() 587.54/148.08 , 52: U61^#(tt(), V) -> 587.54/148.08 c_37(U62^#(isQid(activate(V))), 587.54/148.08 isQid^#(activate(V)), 587.54/148.08 activate^#(V)) 587.54/148.08 , 53: U62^#(tt()) -> c_38() 587.54/148.08 , 54: U71^#(tt(), V) -> 587.54/148.08 c_39(U72^#(isNePal(activate(V))), 587.54/148.08 isNePal^#(activate(V)), 587.54/148.08 activate^#(V)) 587.54/148.08 , 55: U72^#(tt()) -> c_40() 587.54/148.08 , 56: isNePal^#(V) -> 587.54/148.08 c_41(U61^#(isPalListKind(activate(V)), activate(V)), 587.54/148.08 isPalListKind^#(activate(V)), 587.54/148.08 activate^#(V), 587.54/148.08 activate^#(V)) 587.54/148.08 , 57: isPal^#(V) -> 587.54/148.08 c_52(U71^#(isPalListKind(activate(V)), activate(V)), 587.54/148.08 isPalListKind^#(activate(V)), 587.54/148.08 activate^#(V), 587.54/148.08 activate^#(V)) 587.54/148.08 , 58: isPal^#(n__nil()) -> c_53() } 587.54/148.08 587.54/148.08 We are left with following problem, upon which TcT provides the 587.54/148.08 certificate YES(O(1),O(n^2)). 587.54/148.08 587.54/148.08 Strict DPs: 587.54/148.08 { U11^#(tt(), V) -> 587.54/148.08 c_3(U12^#(isNeList(activate(V))), 587.54/148.08 isNeList^#(activate(V)), 587.54/148.08 activate^#(V)) 587.54/148.08 , isNeList^#(V) -> 587.54/148.08 c_5(U31^#(isPalListKind(activate(V)), activate(V)), 587.54/148.08 isPalListKind^#(activate(V)), 587.54/148.09 activate^#(V), 587.54/148.09 activate^#(V)) 587.54/148.09 , isNeList^#(n____(V1, V2)) -> 587.54/148.09 c_6(U41^#(and(isPalListKind(activate(V1)), 587.54/148.09 n__isPalListKind(activate(V2))), 587.54/148.09 activate(V1), 587.54/148.09 activate(V2)), 587.54/148.09 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.54/148.09 isPalListKind^#(activate(V1)), 587.54/148.09 activate^#(V1), 587.54/148.09 activate^#(V2), 587.54/148.09 activate^#(V1), 587.54/148.09 activate^#(V2)) 587.54/148.09 , isNeList^#(n____(V1, V2)) -> 587.54/148.09 c_7(U51^#(and(isPalListKind(activate(V1)), 587.54/148.09 n__isPalListKind(activate(V2))), 587.54/148.09 activate(V1), 587.54/148.09 activate(V2)), 587.54/148.09 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.54/148.09 isPalListKind^#(activate(V1)), 587.54/148.09 activate^#(V1), 587.54/148.09 activate^#(V2), 587.54/148.09 activate^#(V1), 587.54/148.09 activate^#(V2)) 587.54/148.09 , activate^#(n__nil()) -> c_9(nil^#()) 587.54/148.09 , activate^#(n____(X1, X2)) -> c_10(__^#(X1, X2)) 587.54/148.09 , activate^#(n__isPalListKind(X)) -> c_11(isPalListKind^#(X)) 587.54/148.09 , activate^#(n__and(X1, X2)) -> c_12(and^#(X1, X2)) 587.54/148.09 , activate^#(n__a()) -> c_13(a^#()) 587.54/148.09 , activate^#(n__e()) -> c_14(e^#()) 587.54/148.09 , activate^#(n__i()) -> c_15(i^#()) 587.54/148.09 , activate^#(n__o()) -> c_16(o^#()) 587.54/148.09 , activate^#(n__u()) -> c_17(u^#()) 587.54/148.09 , U31^#(tt(), V) -> 587.54/148.09 c_24(U32^#(isQid(activate(V))), 587.54/148.09 isQid^#(activate(V)), 587.54/148.09 activate^#(V)) 587.54/148.09 , isPalListKind^#(n____(V1, V2)) -> 587.54/148.09 c_46(and^#(isPalListKind(activate(V1)), 587.54/148.09 n__isPalListKind(activate(V2))), 587.54/148.09 isPalListKind^#(activate(V1)), 587.54/148.09 activate^#(V1), 587.54/148.09 activate^#(V2)) 587.54/148.09 , U41^#(tt(), V1, V2) -> 587.54/148.09 c_31(U42^#(isList(activate(V1)), activate(V2)), 587.54/148.09 isList^#(activate(V1)), 587.54/148.09 activate^#(V1), 587.54/148.09 activate^#(V2)) 587.54/148.09 , and^#(tt(), X) -> c_43(activate^#(X)) 587.54/148.09 , U51^#(tt(), V1, V2) -> 587.54/148.09 c_34(U52^#(isNeList(activate(V1)), activate(V2)), 587.54/148.09 isNeList^#(activate(V1)), 587.54/148.09 activate^#(V1), 587.54/148.09 activate^#(V2)) 587.54/148.09 , U21^#(tt(), V1, V2) -> 587.54/148.09 c_18(U22^#(isList(activate(V1)), activate(V2)), 587.54/148.09 isList^#(activate(V1)), 587.54/148.09 activate^#(V1), 587.54/148.09 activate^#(V2)) 587.54/148.09 , U22^#(tt(), V2) -> 587.54/148.09 c_19(U23^#(isList(activate(V2))), 587.54/148.09 isList^#(activate(V2)), 587.54/148.09 activate^#(V2)) 587.54/148.09 , isList^#(V) -> 587.54/148.09 c_20(U11^#(isPalListKind(activate(V)), activate(V)), 587.54/148.09 isPalListKind^#(activate(V)), 587.54/148.09 activate^#(V), 587.54/148.09 activate^#(V)) 587.54/148.09 , isList^#(n____(V1, V2)) -> 587.54/148.09 c_22(U21^#(and(isPalListKind(activate(V1)), 587.54/148.09 n__isPalListKind(activate(V2))), 587.54/148.09 activate(V1), 587.54/148.09 activate(V2)), 587.54/148.09 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.54/148.09 isPalListKind^#(activate(V1)), 587.54/148.09 activate^#(V1), 587.54/148.09 activate^#(V2), 587.54/148.09 activate^#(V1), 587.54/148.09 activate^#(V2)) 587.54/148.09 , U42^#(tt(), V2) -> 587.54/148.09 c_32(U43^#(isNeList(activate(V2))), 587.54/148.09 isNeList^#(activate(V2)), 587.54/148.09 activate^#(V2)) 587.54/148.09 , U52^#(tt(), V2) -> 587.54/148.09 c_35(U53^#(isList(activate(V2))), 587.54/148.09 isList^#(activate(V2)), 587.54/148.09 activate^#(V2)) 587.54/148.09 , U61^#(tt(), V) -> 587.54/148.09 c_37(U62^#(isQid(activate(V))), 587.54/148.09 isQid^#(activate(V)), 587.54/148.09 activate^#(V)) 587.54/148.09 , U71^#(tt(), V) -> 587.54/148.09 c_39(U72^#(isNePal(activate(V))), 587.54/148.09 isNePal^#(activate(V)), 587.54/148.09 activate^#(V)) 587.54/148.09 , isNePal^#(V) -> 587.54/148.09 c_41(U61^#(isPalListKind(activate(V)), activate(V)), 587.54/148.09 isPalListKind^#(activate(V)), 587.54/148.09 activate^#(V), 587.54/148.09 activate^#(V)) 587.54/148.09 , isPal^#(V) -> 587.54/148.09 c_52(U71^#(isPalListKind(activate(V)), activate(V)), 587.54/148.09 isPalListKind^#(activate(V)), 587.54/148.09 activate^#(V), 587.54/148.09 activate^#(V)) } 587.54/148.09 Weak DPs: 587.54/148.09 { __^#(X1, X2) -> c_1() 587.54/148.09 , nil^#() -> c_2() 587.54/148.09 , U12^#(tt()) -> c_4() 587.54/148.09 , activate^#(X) -> c_8() 587.54/148.09 , isPalListKind^#(X) -> c_44() 587.54/148.09 , isPalListKind^#(n__nil()) -> c_45() 587.54/148.09 , isPalListKind^#(n__a()) -> c_47() 587.54/148.09 , isPalListKind^#(n__e()) -> c_48() 587.54/148.09 , isPalListKind^#(n__i()) -> c_49() 587.54/148.09 , isPalListKind^#(n__o()) -> c_50() 587.54/148.09 , isPalListKind^#(n__u()) -> c_51() 587.54/148.09 , and^#(X1, X2) -> c_42() 587.54/148.09 , a^#() -> c_54() 587.54/148.09 , e^#() -> c_55() 587.54/148.09 , i^#() -> c_56() 587.54/148.09 , o^#() -> c_57() 587.54/148.09 , u^#() -> c_58() 587.54/148.09 , isList^#(n__nil()) -> c_21() 587.54/148.09 , U23^#(tt()) -> c_23() 587.54/148.09 , U32^#(tt()) -> c_25() 587.54/148.09 , isQid^#(n__a()) -> c_26() 587.54/148.09 , isQid^#(n__e()) -> c_27() 587.54/148.09 , isQid^#(n__i()) -> c_28() 587.54/148.09 , isQid^#(n__o()) -> c_29() 587.54/148.09 , isQid^#(n__u()) -> c_30() 587.54/148.09 , U43^#(tt()) -> c_33() 587.54/148.09 , U53^#(tt()) -> c_36() 587.54/148.09 , U62^#(tt()) -> c_38() 587.54/148.09 , U72^#(tt()) -> c_40() 587.54/148.09 , isPal^#(n__nil()) -> c_53() } 587.54/148.09 Weak Trs: 587.54/148.09 { __(X1, X2) -> n____(X1, X2) 587.54/148.09 , nil() -> n__nil() 587.54/148.09 , U11(tt(), V) -> U12(isNeList(activate(V))) 587.54/148.09 , U12(tt()) -> tt() 587.54/148.09 , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) 587.54/148.09 , isNeList(n____(V1, V2)) -> 587.54/148.09 U41(and(isPalListKind(activate(V1)), 587.54/148.09 n__isPalListKind(activate(V2))), 587.54/148.09 activate(V1), 587.54/148.09 activate(V2)) 587.54/148.09 , isNeList(n____(V1, V2)) -> 587.54/148.09 U51(and(isPalListKind(activate(V1)), 587.54/148.09 n__isPalListKind(activate(V2))), 587.54/148.09 activate(V1), 587.54/148.09 activate(V2)) 587.54/148.09 , activate(X) -> X 587.54/148.09 , activate(n__nil()) -> nil() 587.54/148.09 , activate(n____(X1, X2)) -> __(X1, X2) 587.54/148.09 , activate(n__isPalListKind(X)) -> isPalListKind(X) 587.54/148.09 , activate(n__and(X1, X2)) -> and(X1, X2) 587.54/148.09 , activate(n__a()) -> a() 587.54/148.09 , activate(n__e()) -> e() 587.54/148.09 , activate(n__i()) -> i() 587.54/148.09 , activate(n__o()) -> o() 587.54/148.09 , activate(n__u()) -> u() 587.54/148.09 , U21(tt(), V1, V2) -> U22(isList(activate(V1)), activate(V2)) 587.54/148.09 , U22(tt(), V2) -> U23(isList(activate(V2))) 587.54/148.09 , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) 587.54/148.09 , isList(n__nil()) -> tt() 587.54/148.09 , isList(n____(V1, V2)) -> 587.54/148.09 U21(and(isPalListKind(activate(V1)), 587.54/148.09 n__isPalListKind(activate(V2))), 587.54/148.09 activate(V1), 587.54/148.09 activate(V2)) 587.54/148.09 , U23(tt()) -> tt() 587.54/148.09 , U31(tt(), V) -> U32(isQid(activate(V))) 587.54/148.09 , U32(tt()) -> tt() 587.54/148.09 , isQid(n__a()) -> tt() 587.54/148.09 , isQid(n__e()) -> tt() 587.54/148.09 , isQid(n__i()) -> tt() 587.54/148.09 , isQid(n__o()) -> tt() 587.54/148.09 , isQid(n__u()) -> tt() 587.54/148.09 , U41(tt(), V1, V2) -> U42(isList(activate(V1)), activate(V2)) 587.54/148.09 , U42(tt(), V2) -> U43(isNeList(activate(V2))) 587.54/148.09 , U43(tt()) -> tt() 587.54/148.09 , U51(tt(), V1, V2) -> U52(isNeList(activate(V1)), activate(V2)) 587.54/148.09 , U52(tt(), V2) -> U53(isList(activate(V2))) 587.54/148.09 , U53(tt()) -> tt() 587.54/148.09 , U61(tt(), V) -> U62(isQid(activate(V))) 587.54/148.09 , U62(tt()) -> tt() 587.54/148.09 , U71(tt(), V) -> U72(isNePal(activate(V))) 587.54/148.09 , U72(tt()) -> tt() 587.54/148.09 , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) 587.54/148.09 , and(X1, X2) -> n__and(X1, X2) 587.54/148.09 , and(tt(), X) -> activate(X) 587.54/148.09 , isPalListKind(X) -> n__isPalListKind(X) 587.54/148.09 , isPalListKind(n__nil()) -> tt() 587.54/148.09 , isPalListKind(n____(V1, V2)) -> 587.54/148.09 and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.54/148.09 , isPalListKind(n__a()) -> tt() 587.54/148.09 , isPalListKind(n__e()) -> tt() 587.54/148.09 , isPalListKind(n__i()) -> tt() 587.54/148.09 , isPalListKind(n__o()) -> tt() 587.54/148.09 , isPalListKind(n__u()) -> tt() 587.54/148.09 , isPal(V) -> U71(isPalListKind(activate(V)), activate(V)) 587.54/148.09 , isPal(n__nil()) -> tt() 587.54/148.09 , a() -> n__a() 587.54/148.09 , e() -> n__e() 587.54/148.09 , i() -> n__i() 587.54/148.09 , o() -> n__o() 587.54/148.09 , u() -> n__u() } 587.54/148.09 Obligation: 587.54/148.09 innermost runtime complexity 587.54/148.09 Answer: 587.54/148.09 YES(O(1),O(n^2)) 587.54/148.09 587.54/148.09 We estimate the number of application of {5,6,9,10,11,12,13} by 587.54/148.09 applications of Pre({5,6,9,10,11,12,13}) = 587.54/148.09 {1,2,3,4,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28}. Here rules 587.54/148.09 are labeled as follows: 587.54/148.09 587.54/148.09 DPs: 587.54/148.09 { 1: U11^#(tt(), V) -> 587.54/148.09 c_3(U12^#(isNeList(activate(V))), 587.54/148.09 isNeList^#(activate(V)), 587.54/148.09 activate^#(V)) 587.54/148.09 , 2: isNeList^#(V) -> 587.54/148.09 c_5(U31^#(isPalListKind(activate(V)), activate(V)), 587.54/148.09 isPalListKind^#(activate(V)), 587.54/148.09 activate^#(V), 587.54/148.09 activate^#(V)) 587.54/148.09 , 3: isNeList^#(n____(V1, V2)) -> 587.54/148.09 c_6(U41^#(and(isPalListKind(activate(V1)), 587.54/148.09 n__isPalListKind(activate(V2))), 587.54/148.09 activate(V1), 587.54/148.09 activate(V2)), 587.54/148.09 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.54/148.09 isPalListKind^#(activate(V1)), 587.54/148.09 activate^#(V1), 587.54/148.09 activate^#(V2), 587.54/148.09 activate^#(V1), 587.54/148.09 activate^#(V2)) 587.54/148.09 , 4: isNeList^#(n____(V1, V2)) -> 587.54/148.09 c_7(U51^#(and(isPalListKind(activate(V1)), 587.54/148.09 n__isPalListKind(activate(V2))), 587.54/148.09 activate(V1), 587.54/148.09 activate(V2)), 587.54/148.09 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.54/148.09 isPalListKind^#(activate(V1)), 587.54/148.09 activate^#(V1), 587.54/148.09 activate^#(V2), 587.54/148.09 activate^#(V1), 587.54/148.09 activate^#(V2)) 587.54/148.09 , 5: activate^#(n__nil()) -> c_9(nil^#()) 587.54/148.09 , 6: activate^#(n____(X1, X2)) -> c_10(__^#(X1, X2)) 587.54/148.09 , 7: activate^#(n__isPalListKind(X)) -> c_11(isPalListKind^#(X)) 587.54/148.09 , 8: activate^#(n__and(X1, X2)) -> c_12(and^#(X1, X2)) 587.54/148.09 , 9: activate^#(n__a()) -> c_13(a^#()) 587.54/148.09 , 10: activate^#(n__e()) -> c_14(e^#()) 587.54/148.09 , 11: activate^#(n__i()) -> c_15(i^#()) 587.54/148.09 , 12: activate^#(n__o()) -> c_16(o^#()) 587.54/148.09 , 13: activate^#(n__u()) -> c_17(u^#()) 587.54/148.09 , 14: U31^#(tt(), V) -> 587.54/148.09 c_24(U32^#(isQid(activate(V))), 587.54/148.09 isQid^#(activate(V)), 587.54/148.09 activate^#(V)) 587.54/148.09 , 15: isPalListKind^#(n____(V1, V2)) -> 587.54/148.09 c_46(and^#(isPalListKind(activate(V1)), 587.54/148.09 n__isPalListKind(activate(V2))), 587.54/148.09 isPalListKind^#(activate(V1)), 587.54/148.09 activate^#(V1), 587.54/148.09 activate^#(V2)) 587.54/148.09 , 16: U41^#(tt(), V1, V2) -> 587.54/148.09 c_31(U42^#(isList(activate(V1)), activate(V2)), 587.54/148.09 isList^#(activate(V1)), 587.54/148.09 activate^#(V1), 587.54/148.09 activate^#(V2)) 587.54/148.09 , 17: and^#(tt(), X) -> c_43(activate^#(X)) 587.54/148.09 , 18: U51^#(tt(), V1, V2) -> 587.54/148.09 c_34(U52^#(isNeList(activate(V1)), activate(V2)), 587.54/148.09 isNeList^#(activate(V1)), 587.54/148.09 activate^#(V1), 587.54/148.09 activate^#(V2)) 587.54/148.09 , 19: U21^#(tt(), V1, V2) -> 587.54/148.09 c_18(U22^#(isList(activate(V1)), activate(V2)), 587.54/148.09 isList^#(activate(V1)), 587.54/148.09 activate^#(V1), 587.54/148.09 activate^#(V2)) 587.54/148.09 , 20: U22^#(tt(), V2) -> 587.54/148.09 c_19(U23^#(isList(activate(V2))), 587.54/148.09 isList^#(activate(V2)), 587.54/148.09 activate^#(V2)) 587.54/148.09 , 21: isList^#(V) -> 587.54/148.09 c_20(U11^#(isPalListKind(activate(V)), activate(V)), 587.54/148.09 isPalListKind^#(activate(V)), 587.54/148.09 activate^#(V), 587.54/148.09 activate^#(V)) 587.54/148.09 , 22: isList^#(n____(V1, V2)) -> 587.54/148.09 c_22(U21^#(and(isPalListKind(activate(V1)), 587.54/148.09 n__isPalListKind(activate(V2))), 587.54/148.09 activate(V1), 587.54/148.09 activate(V2)), 587.54/148.09 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.54/148.09 isPalListKind^#(activate(V1)), 587.54/148.09 activate^#(V1), 587.54/148.09 activate^#(V2), 587.54/148.09 activate^#(V1), 587.54/148.09 activate^#(V2)) 587.54/148.09 , 23: U42^#(tt(), V2) -> 587.54/148.09 c_32(U43^#(isNeList(activate(V2))), 587.54/148.09 isNeList^#(activate(V2)), 587.54/148.09 activate^#(V2)) 587.54/148.09 , 24: U52^#(tt(), V2) -> 587.54/148.09 c_35(U53^#(isList(activate(V2))), 587.54/148.09 isList^#(activate(V2)), 587.54/148.09 activate^#(V2)) 587.54/148.09 , 25: U61^#(tt(), V) -> 587.54/148.09 c_37(U62^#(isQid(activate(V))), 587.54/148.09 isQid^#(activate(V)), 587.54/148.09 activate^#(V)) 587.54/148.09 , 26: U71^#(tt(), V) -> 587.54/148.09 c_39(U72^#(isNePal(activate(V))), 587.54/148.09 isNePal^#(activate(V)), 587.54/148.09 activate^#(V)) 587.54/148.09 , 27: isNePal^#(V) -> 587.54/148.09 c_41(U61^#(isPalListKind(activate(V)), activate(V)), 587.54/148.09 isPalListKind^#(activate(V)), 587.54/148.09 activate^#(V), 587.54/148.09 activate^#(V)) 587.54/148.09 , 28: isPal^#(V) -> 587.54/148.09 c_52(U71^#(isPalListKind(activate(V)), activate(V)), 587.54/148.09 isPalListKind^#(activate(V)), 587.54/148.09 activate^#(V), 587.54/148.09 activate^#(V)) 587.54/148.09 , 29: __^#(X1, X2) -> c_1() 587.54/148.09 , 30: nil^#() -> c_2() 587.54/148.09 , 31: U12^#(tt()) -> c_4() 587.54/148.09 , 32: activate^#(X) -> c_8() 587.54/148.09 , 33: isPalListKind^#(X) -> c_44() 587.54/148.09 , 34: isPalListKind^#(n__nil()) -> c_45() 587.54/148.09 , 35: isPalListKind^#(n__a()) -> c_47() 587.54/148.09 , 36: isPalListKind^#(n__e()) -> c_48() 587.54/148.09 , 37: isPalListKind^#(n__i()) -> c_49() 587.54/148.09 , 38: isPalListKind^#(n__o()) -> c_50() 587.54/148.09 , 39: isPalListKind^#(n__u()) -> c_51() 587.54/148.09 , 40: and^#(X1, X2) -> c_42() 587.54/148.09 , 41: a^#() -> c_54() 587.54/148.09 , 42: e^#() -> c_55() 587.54/148.09 , 43: i^#() -> c_56() 587.54/148.09 , 44: o^#() -> c_57() 587.54/148.09 , 45: u^#() -> c_58() 587.54/148.09 , 46: isList^#(n__nil()) -> c_21() 587.54/148.09 , 47: U23^#(tt()) -> c_23() 587.54/148.09 , 48: U32^#(tt()) -> c_25() 587.54/148.09 , 49: isQid^#(n__a()) -> c_26() 587.54/148.09 , 50: isQid^#(n__e()) -> c_27() 587.54/148.09 , 51: isQid^#(n__i()) -> c_28() 587.54/148.09 , 52: isQid^#(n__o()) -> c_29() 587.54/148.09 , 53: isQid^#(n__u()) -> c_30() 587.54/148.09 , 54: U43^#(tt()) -> c_33() 587.54/148.09 , 55: U53^#(tt()) -> c_36() 587.54/148.09 , 56: U62^#(tt()) -> c_38() 587.54/148.09 , 57: U72^#(tt()) -> c_40() 587.54/148.09 , 58: isPal^#(n__nil()) -> c_53() } 587.54/148.09 587.54/148.09 We are left with following problem, upon which TcT provides the 587.54/148.09 certificate YES(O(1),O(n^2)). 587.54/148.09 587.54/148.09 Strict DPs: 587.54/148.09 { U11^#(tt(), V) -> 587.54/148.09 c_3(U12^#(isNeList(activate(V))), 587.54/148.09 isNeList^#(activate(V)), 587.54/148.09 activate^#(V)) 587.54/148.09 , isNeList^#(V) -> 587.54/148.09 c_5(U31^#(isPalListKind(activate(V)), activate(V)), 587.54/148.09 isPalListKind^#(activate(V)), 587.54/148.09 activate^#(V), 587.54/148.09 activate^#(V)) 587.54/148.09 , isNeList^#(n____(V1, V2)) -> 587.54/148.09 c_6(U41^#(and(isPalListKind(activate(V1)), 587.54/148.09 n__isPalListKind(activate(V2))), 587.54/148.09 activate(V1), 587.54/148.09 activate(V2)), 587.54/148.09 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.54/148.09 isPalListKind^#(activate(V1)), 587.54/148.09 activate^#(V1), 587.54/148.09 activate^#(V2), 587.54/148.09 activate^#(V1), 587.54/148.09 activate^#(V2)) 587.54/148.09 , isNeList^#(n____(V1, V2)) -> 587.54/148.09 c_7(U51^#(and(isPalListKind(activate(V1)), 587.54/148.09 n__isPalListKind(activate(V2))), 587.54/148.09 activate(V1), 587.54/148.09 activate(V2)), 587.54/148.09 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.54/148.09 isPalListKind^#(activate(V1)), 587.54/148.09 activate^#(V1), 587.54/148.09 activate^#(V2), 587.54/148.09 activate^#(V1), 587.54/148.09 activate^#(V2)) 587.54/148.09 , activate^#(n__isPalListKind(X)) -> c_11(isPalListKind^#(X)) 587.54/148.09 , activate^#(n__and(X1, X2)) -> c_12(and^#(X1, X2)) 587.54/148.09 , U31^#(tt(), V) -> 587.54/148.09 c_24(U32^#(isQid(activate(V))), 587.54/148.09 isQid^#(activate(V)), 587.54/148.09 activate^#(V)) 587.54/148.09 , isPalListKind^#(n____(V1, V2)) -> 587.54/148.09 c_46(and^#(isPalListKind(activate(V1)), 587.54/148.09 n__isPalListKind(activate(V2))), 587.54/148.09 isPalListKind^#(activate(V1)), 587.54/148.09 activate^#(V1), 587.54/148.09 activate^#(V2)) 587.54/148.09 , U41^#(tt(), V1, V2) -> 587.54/148.09 c_31(U42^#(isList(activate(V1)), activate(V2)), 587.54/148.09 isList^#(activate(V1)), 587.54/148.09 activate^#(V1), 587.54/148.09 activate^#(V2)) 587.54/148.09 , and^#(tt(), X) -> c_43(activate^#(X)) 587.54/148.09 , U51^#(tt(), V1, V2) -> 587.54/148.09 c_34(U52^#(isNeList(activate(V1)), activate(V2)), 587.54/148.09 isNeList^#(activate(V1)), 587.54/148.09 activate^#(V1), 587.54/148.09 activate^#(V2)) 587.54/148.09 , U21^#(tt(), V1, V2) -> 587.54/148.09 c_18(U22^#(isList(activate(V1)), activate(V2)), 587.54/148.09 isList^#(activate(V1)), 587.54/148.09 activate^#(V1), 587.54/148.09 activate^#(V2)) 587.54/148.09 , U22^#(tt(), V2) -> 587.54/148.09 c_19(U23^#(isList(activate(V2))), 587.54/148.09 isList^#(activate(V2)), 587.54/148.09 activate^#(V2)) 587.54/148.09 , isList^#(V) -> 587.54/148.09 c_20(U11^#(isPalListKind(activate(V)), activate(V)), 587.54/148.09 isPalListKind^#(activate(V)), 587.54/148.09 activate^#(V), 587.54/148.09 activate^#(V)) 587.54/148.09 , isList^#(n____(V1, V2)) -> 587.54/148.09 c_22(U21^#(and(isPalListKind(activate(V1)), 587.54/148.09 n__isPalListKind(activate(V2))), 587.54/148.09 activate(V1), 587.54/148.09 activate(V2)), 587.54/148.09 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.54/148.09 isPalListKind^#(activate(V1)), 587.54/148.09 activate^#(V1), 587.54/148.09 activate^#(V2), 587.54/148.09 activate^#(V1), 587.54/148.09 activate^#(V2)) 587.54/148.09 , U42^#(tt(), V2) -> 587.54/148.09 c_32(U43^#(isNeList(activate(V2))), 587.54/148.09 isNeList^#(activate(V2)), 587.54/148.09 activate^#(V2)) 587.54/148.09 , U52^#(tt(), V2) -> 587.54/148.09 c_35(U53^#(isList(activate(V2))), 587.54/148.09 isList^#(activate(V2)), 587.54/148.09 activate^#(V2)) 587.54/148.09 , U61^#(tt(), V) -> 587.54/148.09 c_37(U62^#(isQid(activate(V))), 587.54/148.09 isQid^#(activate(V)), 587.54/148.09 activate^#(V)) 587.54/148.09 , U71^#(tt(), V) -> 587.54/148.09 c_39(U72^#(isNePal(activate(V))), 587.54/148.09 isNePal^#(activate(V)), 587.54/148.09 activate^#(V)) 587.54/148.09 , isNePal^#(V) -> 587.54/148.09 c_41(U61^#(isPalListKind(activate(V)), activate(V)), 587.84/148.10 isPalListKind^#(activate(V)), 587.84/148.10 activate^#(V), 587.84/148.10 activate^#(V)) 587.84/148.10 , isPal^#(V) -> 587.84/148.10 c_52(U71^#(isPalListKind(activate(V)), activate(V)), 587.84/148.10 isPalListKind^#(activate(V)), 587.84/148.10 activate^#(V), 587.84/148.10 activate^#(V)) } 587.84/148.10 Weak DPs: 587.84/148.10 { __^#(X1, X2) -> c_1() 587.84/148.10 , nil^#() -> c_2() 587.84/148.10 , U12^#(tt()) -> c_4() 587.84/148.10 , activate^#(X) -> c_8() 587.84/148.10 , activate^#(n__nil()) -> c_9(nil^#()) 587.84/148.10 , activate^#(n____(X1, X2)) -> c_10(__^#(X1, X2)) 587.84/148.10 , activate^#(n__a()) -> c_13(a^#()) 587.84/148.10 , activate^#(n__e()) -> c_14(e^#()) 587.84/148.10 , activate^#(n__i()) -> c_15(i^#()) 587.84/148.10 , activate^#(n__o()) -> c_16(o^#()) 587.84/148.10 , activate^#(n__u()) -> c_17(u^#()) 587.84/148.10 , isPalListKind^#(X) -> c_44() 587.84/148.10 , isPalListKind^#(n__nil()) -> c_45() 587.84/148.10 , isPalListKind^#(n__a()) -> c_47() 587.84/148.10 , isPalListKind^#(n__e()) -> c_48() 587.84/148.10 , isPalListKind^#(n__i()) -> c_49() 587.84/148.10 , isPalListKind^#(n__o()) -> c_50() 587.84/148.10 , isPalListKind^#(n__u()) -> c_51() 587.84/148.10 , and^#(X1, X2) -> c_42() 587.84/148.10 , a^#() -> c_54() 587.84/148.10 , e^#() -> c_55() 587.84/148.10 , i^#() -> c_56() 587.84/148.10 , o^#() -> c_57() 587.84/148.10 , u^#() -> c_58() 587.84/148.10 , isList^#(n__nil()) -> c_21() 587.84/148.10 , U23^#(tt()) -> c_23() 587.84/148.10 , U32^#(tt()) -> c_25() 587.84/148.10 , isQid^#(n__a()) -> c_26() 587.84/148.10 , isQid^#(n__e()) -> c_27() 587.84/148.10 , isQid^#(n__i()) -> c_28() 587.84/148.10 , isQid^#(n__o()) -> c_29() 587.84/148.10 , isQid^#(n__u()) -> c_30() 587.84/148.10 , U43^#(tt()) -> c_33() 587.84/148.10 , U53^#(tt()) -> c_36() 587.84/148.10 , U62^#(tt()) -> c_38() 587.84/148.10 , U72^#(tt()) -> c_40() 587.84/148.10 , isPal^#(n__nil()) -> c_53() } 587.84/148.10 Weak Trs: 587.84/148.10 { __(X1, X2) -> n____(X1, X2) 587.84/148.10 , nil() -> n__nil() 587.84/148.10 , U11(tt(), V) -> U12(isNeList(activate(V))) 587.84/148.10 , U12(tt()) -> tt() 587.84/148.10 , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) 587.84/148.10 , isNeList(n____(V1, V2)) -> 587.84/148.10 U41(and(isPalListKind(activate(V1)), 587.84/148.10 n__isPalListKind(activate(V2))), 587.84/148.10 activate(V1), 587.84/148.10 activate(V2)) 587.84/148.10 , isNeList(n____(V1, V2)) -> 587.84/148.10 U51(and(isPalListKind(activate(V1)), 587.84/148.10 n__isPalListKind(activate(V2))), 587.84/148.10 activate(V1), 587.84/148.10 activate(V2)) 587.84/148.10 , activate(X) -> X 587.84/148.10 , activate(n__nil()) -> nil() 587.84/148.10 , activate(n____(X1, X2)) -> __(X1, X2) 587.84/148.10 , activate(n__isPalListKind(X)) -> isPalListKind(X) 587.84/148.10 , activate(n__and(X1, X2)) -> and(X1, X2) 587.84/148.10 , activate(n__a()) -> a() 587.84/148.10 , activate(n__e()) -> e() 587.84/148.10 , activate(n__i()) -> i() 587.84/148.10 , activate(n__o()) -> o() 587.84/148.10 , activate(n__u()) -> u() 587.84/148.10 , U21(tt(), V1, V2) -> U22(isList(activate(V1)), activate(V2)) 587.84/148.10 , U22(tt(), V2) -> U23(isList(activate(V2))) 587.84/148.10 , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) 587.84/148.10 , isList(n__nil()) -> tt() 587.84/148.10 , isList(n____(V1, V2)) -> 587.84/148.10 U21(and(isPalListKind(activate(V1)), 587.84/148.10 n__isPalListKind(activate(V2))), 587.84/148.10 activate(V1), 587.84/148.10 activate(V2)) 587.84/148.10 , U23(tt()) -> tt() 587.84/148.10 , U31(tt(), V) -> U32(isQid(activate(V))) 587.84/148.10 , U32(tt()) -> tt() 587.84/148.10 , isQid(n__a()) -> tt() 587.84/148.10 , isQid(n__e()) -> tt() 587.84/148.10 , isQid(n__i()) -> tt() 587.84/148.10 , isQid(n__o()) -> tt() 587.84/148.10 , isQid(n__u()) -> tt() 587.84/148.10 , U41(tt(), V1, V2) -> U42(isList(activate(V1)), activate(V2)) 587.84/148.10 , U42(tt(), V2) -> U43(isNeList(activate(V2))) 587.84/148.10 , U43(tt()) -> tt() 587.84/148.10 , U51(tt(), V1, V2) -> U52(isNeList(activate(V1)), activate(V2)) 587.84/148.10 , U52(tt(), V2) -> U53(isList(activate(V2))) 587.84/148.10 , U53(tt()) -> tt() 587.84/148.10 , U61(tt(), V) -> U62(isQid(activate(V))) 587.84/148.10 , U62(tt()) -> tt() 587.84/148.10 , U71(tt(), V) -> U72(isNePal(activate(V))) 587.84/148.10 , U72(tt()) -> tt() 587.84/148.10 , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) 587.84/148.10 , and(X1, X2) -> n__and(X1, X2) 587.84/148.10 , and(tt(), X) -> activate(X) 587.84/148.10 , isPalListKind(X) -> n__isPalListKind(X) 587.84/148.10 , isPalListKind(n__nil()) -> tt() 587.84/148.10 , isPalListKind(n____(V1, V2)) -> 587.84/148.10 and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.84/148.10 , isPalListKind(n__a()) -> tt() 587.84/148.10 , isPalListKind(n__e()) -> tt() 587.84/148.10 , isPalListKind(n__i()) -> tt() 587.84/148.10 , isPalListKind(n__o()) -> tt() 587.84/148.10 , isPalListKind(n__u()) -> tt() 587.84/148.10 , isPal(V) -> U71(isPalListKind(activate(V)), activate(V)) 587.84/148.10 , isPal(n__nil()) -> tt() 587.84/148.10 , a() -> n__a() 587.84/148.10 , e() -> n__e() 587.84/148.10 , i() -> n__i() 587.84/148.10 , o() -> n__o() 587.84/148.10 , u() -> n__u() } 587.84/148.10 Obligation: 587.84/148.10 innermost runtime complexity 587.84/148.10 Answer: 587.84/148.10 YES(O(1),O(n^2)) 587.84/148.10 587.84/148.10 The following weak DPs constitute a sub-graph of the DG that is 587.84/148.10 closed under successors. The DPs are removed. 587.84/148.10 587.84/148.10 { __^#(X1, X2) -> c_1() 587.84/148.10 , nil^#() -> c_2() 587.84/148.10 , U12^#(tt()) -> c_4() 587.84/148.10 , activate^#(X) -> c_8() 587.84/148.10 , activate^#(n__nil()) -> c_9(nil^#()) 587.84/148.10 , activate^#(n____(X1, X2)) -> c_10(__^#(X1, X2)) 587.84/148.10 , activate^#(n__a()) -> c_13(a^#()) 587.84/148.10 , activate^#(n__e()) -> c_14(e^#()) 587.84/148.10 , activate^#(n__i()) -> c_15(i^#()) 587.84/148.10 , activate^#(n__o()) -> c_16(o^#()) 587.84/148.10 , activate^#(n__u()) -> c_17(u^#()) 587.84/148.10 , isPalListKind^#(X) -> c_44() 587.84/148.10 , isPalListKind^#(n__nil()) -> c_45() 587.84/148.10 , isPalListKind^#(n__a()) -> c_47() 587.84/148.10 , isPalListKind^#(n__e()) -> c_48() 587.84/148.10 , isPalListKind^#(n__i()) -> c_49() 587.84/148.10 , isPalListKind^#(n__o()) -> c_50() 587.84/148.10 , isPalListKind^#(n__u()) -> c_51() 587.84/148.10 , and^#(X1, X2) -> c_42() 587.84/148.10 , a^#() -> c_54() 587.84/148.10 , e^#() -> c_55() 587.84/148.10 , i^#() -> c_56() 587.84/148.10 , o^#() -> c_57() 587.84/148.10 , u^#() -> c_58() 587.84/148.10 , isList^#(n__nil()) -> c_21() 587.84/148.10 , U23^#(tt()) -> c_23() 587.84/148.10 , U32^#(tt()) -> c_25() 587.84/148.10 , isQid^#(n__a()) -> c_26() 587.84/148.10 , isQid^#(n__e()) -> c_27() 587.84/148.10 , isQid^#(n__i()) -> c_28() 587.84/148.10 , isQid^#(n__o()) -> c_29() 587.84/148.10 , isQid^#(n__u()) -> c_30() 587.84/148.10 , U43^#(tt()) -> c_33() 587.84/148.10 , U53^#(tt()) -> c_36() 587.84/148.10 , U62^#(tt()) -> c_38() 587.84/148.10 , U72^#(tt()) -> c_40() 587.84/148.10 , isPal^#(n__nil()) -> c_53() } 587.84/148.10 587.84/148.10 We are left with following problem, upon which TcT provides the 587.84/148.10 certificate YES(O(1),O(n^2)). 587.84/148.10 587.84/148.10 Strict DPs: 587.84/148.10 { U11^#(tt(), V) -> 587.84/148.10 c_3(U12^#(isNeList(activate(V))), 587.84/148.10 isNeList^#(activate(V)), 587.84/148.10 activate^#(V)) 587.84/148.10 , isNeList^#(V) -> 587.84/148.10 c_5(U31^#(isPalListKind(activate(V)), activate(V)), 587.84/148.10 isPalListKind^#(activate(V)), 587.84/148.10 activate^#(V), 587.84/148.10 activate^#(V)) 587.84/148.10 , isNeList^#(n____(V1, V2)) -> 587.84/148.10 c_6(U41^#(and(isPalListKind(activate(V1)), 587.84/148.10 n__isPalListKind(activate(V2))), 587.84/148.10 activate(V1), 587.84/148.10 activate(V2)), 587.84/148.10 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.10 isPalListKind^#(activate(V1)), 587.84/148.10 activate^#(V1), 587.84/148.10 activate^#(V2), 587.84/148.10 activate^#(V1), 587.84/148.10 activate^#(V2)) 587.84/148.10 , isNeList^#(n____(V1, V2)) -> 587.84/148.10 c_7(U51^#(and(isPalListKind(activate(V1)), 587.84/148.10 n__isPalListKind(activate(V2))), 587.84/148.10 activate(V1), 587.84/148.10 activate(V2)), 587.84/148.10 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.10 isPalListKind^#(activate(V1)), 587.84/148.10 activate^#(V1), 587.84/148.10 activate^#(V2), 587.84/148.10 activate^#(V1), 587.84/148.10 activate^#(V2)) 587.84/148.10 , activate^#(n__isPalListKind(X)) -> c_11(isPalListKind^#(X)) 587.84/148.10 , activate^#(n__and(X1, X2)) -> c_12(and^#(X1, X2)) 587.84/148.10 , U31^#(tt(), V) -> 587.84/148.10 c_24(U32^#(isQid(activate(V))), 587.84/148.10 isQid^#(activate(V)), 587.84/148.10 activate^#(V)) 587.84/148.10 , isPalListKind^#(n____(V1, V2)) -> 587.84/148.10 c_46(and^#(isPalListKind(activate(V1)), 587.84/148.10 n__isPalListKind(activate(V2))), 587.84/148.10 isPalListKind^#(activate(V1)), 587.84/148.10 activate^#(V1), 587.84/148.10 activate^#(V2)) 587.84/148.10 , U41^#(tt(), V1, V2) -> 587.84/148.10 c_31(U42^#(isList(activate(V1)), activate(V2)), 587.84/148.10 isList^#(activate(V1)), 587.84/148.10 activate^#(V1), 587.84/148.10 activate^#(V2)) 587.84/148.10 , and^#(tt(), X) -> c_43(activate^#(X)) 587.84/148.10 , U51^#(tt(), V1, V2) -> 587.84/148.10 c_34(U52^#(isNeList(activate(V1)), activate(V2)), 587.84/148.10 isNeList^#(activate(V1)), 587.84/148.10 activate^#(V1), 587.84/148.10 activate^#(V2)) 587.84/148.10 , U21^#(tt(), V1, V2) -> 587.84/148.10 c_18(U22^#(isList(activate(V1)), activate(V2)), 587.84/148.10 isList^#(activate(V1)), 587.84/148.10 activate^#(V1), 587.84/148.10 activate^#(V2)) 587.84/148.10 , U22^#(tt(), V2) -> 587.84/148.10 c_19(U23^#(isList(activate(V2))), 587.84/148.10 isList^#(activate(V2)), 587.84/148.10 activate^#(V2)) 587.84/148.10 , isList^#(V) -> 587.84/148.10 c_20(U11^#(isPalListKind(activate(V)), activate(V)), 587.84/148.10 isPalListKind^#(activate(V)), 587.84/148.10 activate^#(V), 587.84/148.10 activate^#(V)) 587.84/148.10 , isList^#(n____(V1, V2)) -> 587.84/148.10 c_22(U21^#(and(isPalListKind(activate(V1)), 587.84/148.10 n__isPalListKind(activate(V2))), 587.84/148.10 activate(V1), 587.84/148.10 activate(V2)), 587.84/148.10 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.10 isPalListKind^#(activate(V1)), 587.84/148.10 activate^#(V1), 587.84/148.10 activate^#(V2), 587.84/148.10 activate^#(V1), 587.84/148.10 activate^#(V2)) 587.84/148.10 , U42^#(tt(), V2) -> 587.84/148.10 c_32(U43^#(isNeList(activate(V2))), 587.84/148.10 isNeList^#(activate(V2)), 587.84/148.10 activate^#(V2)) 587.84/148.10 , U52^#(tt(), V2) -> 587.84/148.10 c_35(U53^#(isList(activate(V2))), 587.84/148.10 isList^#(activate(V2)), 587.84/148.10 activate^#(V2)) 587.84/148.10 , U61^#(tt(), V) -> 587.84/148.10 c_37(U62^#(isQid(activate(V))), 587.84/148.10 isQid^#(activate(V)), 587.84/148.10 activate^#(V)) 587.84/148.10 , U71^#(tt(), V) -> 587.84/148.10 c_39(U72^#(isNePal(activate(V))), 587.84/148.10 isNePal^#(activate(V)), 587.84/148.10 activate^#(V)) 587.84/148.10 , isNePal^#(V) -> 587.84/148.10 c_41(U61^#(isPalListKind(activate(V)), activate(V)), 587.84/148.10 isPalListKind^#(activate(V)), 587.84/148.10 activate^#(V), 587.84/148.10 activate^#(V)) 587.84/148.10 , isPal^#(V) -> 587.84/148.10 c_52(U71^#(isPalListKind(activate(V)), activate(V)), 587.84/148.10 isPalListKind^#(activate(V)), 587.84/148.10 activate^#(V), 587.84/148.10 activate^#(V)) } 587.84/148.10 Weak Trs: 587.84/148.10 { __(X1, X2) -> n____(X1, X2) 587.84/148.10 , nil() -> n__nil() 587.84/148.10 , U11(tt(), V) -> U12(isNeList(activate(V))) 587.84/148.10 , U12(tt()) -> tt() 587.84/148.10 , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) 587.84/148.10 , isNeList(n____(V1, V2)) -> 587.84/148.10 U41(and(isPalListKind(activate(V1)), 587.84/148.10 n__isPalListKind(activate(V2))), 587.84/148.10 activate(V1), 587.84/148.10 activate(V2)) 587.84/148.10 , isNeList(n____(V1, V2)) -> 587.84/148.10 U51(and(isPalListKind(activate(V1)), 587.84/148.10 n__isPalListKind(activate(V2))), 587.84/148.10 activate(V1), 587.84/148.10 activate(V2)) 587.84/148.10 , activate(X) -> X 587.84/148.10 , activate(n__nil()) -> nil() 587.84/148.10 , activate(n____(X1, X2)) -> __(X1, X2) 587.84/148.10 , activate(n__isPalListKind(X)) -> isPalListKind(X) 587.84/148.10 , activate(n__and(X1, X2)) -> and(X1, X2) 587.84/148.10 , activate(n__a()) -> a() 587.84/148.10 , activate(n__e()) -> e() 587.84/148.10 , activate(n__i()) -> i() 587.84/148.10 , activate(n__o()) -> o() 587.84/148.10 , activate(n__u()) -> u() 587.84/148.10 , U21(tt(), V1, V2) -> U22(isList(activate(V1)), activate(V2)) 587.84/148.10 , U22(tt(), V2) -> U23(isList(activate(V2))) 587.84/148.10 , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) 587.84/148.10 , isList(n__nil()) -> tt() 587.84/148.10 , isList(n____(V1, V2)) -> 587.84/148.10 U21(and(isPalListKind(activate(V1)), 587.84/148.10 n__isPalListKind(activate(V2))), 587.84/148.10 activate(V1), 587.84/148.10 activate(V2)) 587.84/148.10 , U23(tt()) -> tt() 587.84/148.10 , U31(tt(), V) -> U32(isQid(activate(V))) 587.84/148.10 , U32(tt()) -> tt() 587.84/148.10 , isQid(n__a()) -> tt() 587.84/148.10 , isQid(n__e()) -> tt() 587.84/148.10 , isQid(n__i()) -> tt() 587.84/148.10 , isQid(n__o()) -> tt() 587.84/148.10 , isQid(n__u()) -> tt() 587.84/148.10 , U41(tt(), V1, V2) -> U42(isList(activate(V1)), activate(V2)) 587.84/148.10 , U42(tt(), V2) -> U43(isNeList(activate(V2))) 587.84/148.10 , U43(tt()) -> tt() 587.84/148.10 , U51(tt(), V1, V2) -> U52(isNeList(activate(V1)), activate(V2)) 587.84/148.10 , U52(tt(), V2) -> U53(isList(activate(V2))) 587.84/148.10 , U53(tt()) -> tt() 587.84/148.10 , U61(tt(), V) -> U62(isQid(activate(V))) 587.84/148.10 , U62(tt()) -> tt() 587.84/148.10 , U71(tt(), V) -> U72(isNePal(activate(V))) 587.84/148.10 , U72(tt()) -> tt() 587.84/148.10 , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) 587.84/148.10 , and(X1, X2) -> n__and(X1, X2) 587.84/148.10 , and(tt(), X) -> activate(X) 587.84/148.10 , isPalListKind(X) -> n__isPalListKind(X) 587.84/148.10 , isPalListKind(n__nil()) -> tt() 587.84/148.10 , isPalListKind(n____(V1, V2)) -> 587.84/148.10 and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.84/148.10 , isPalListKind(n__a()) -> tt() 587.84/148.10 , isPalListKind(n__e()) -> tt() 587.84/148.10 , isPalListKind(n__i()) -> tt() 587.84/148.10 , isPalListKind(n__o()) -> tt() 587.84/148.10 , isPalListKind(n__u()) -> tt() 587.84/148.10 , isPal(V) -> U71(isPalListKind(activate(V)), activate(V)) 587.84/148.10 , isPal(n__nil()) -> tt() 587.84/148.10 , a() -> n__a() 587.84/148.10 , e() -> n__e() 587.84/148.10 , i() -> n__i() 587.84/148.10 , o() -> n__o() 587.84/148.10 , u() -> n__u() } 587.84/148.10 Obligation: 587.84/148.10 innermost runtime complexity 587.84/148.10 Answer: 587.84/148.10 YES(O(1),O(n^2)) 587.84/148.10 587.84/148.10 Due to missing edges in the dependency-graph, the right-hand sides 587.84/148.10 of following rules could be simplified: 587.84/148.10 587.84/148.10 { U11^#(tt(), V) -> 587.84/148.10 c_3(U12^#(isNeList(activate(V))), 587.84/148.10 isNeList^#(activate(V)), 587.84/148.10 activate^#(V)) 587.84/148.10 , U31^#(tt(), V) -> 587.84/148.10 c_24(U32^#(isQid(activate(V))), 587.84/148.10 isQid^#(activate(V)), 587.84/148.10 activate^#(V)) 587.84/148.10 , U22^#(tt(), V2) -> 587.84/148.10 c_19(U23^#(isList(activate(V2))), 587.84/148.10 isList^#(activate(V2)), 587.84/148.10 activate^#(V2)) 587.84/148.10 , U42^#(tt(), V2) -> 587.84/148.10 c_32(U43^#(isNeList(activate(V2))), 587.84/148.10 isNeList^#(activate(V2)), 587.84/148.10 activate^#(V2)) 587.84/148.10 , U52^#(tt(), V2) -> 587.84/148.10 c_35(U53^#(isList(activate(V2))), 587.84/148.10 isList^#(activate(V2)), 587.84/148.10 activate^#(V2)) 587.84/148.10 , U61^#(tt(), V) -> 587.84/148.10 c_37(U62^#(isQid(activate(V))), 587.84/148.10 isQid^#(activate(V)), 587.84/148.10 activate^#(V)) 587.84/148.10 , U71^#(tt(), V) -> 587.84/148.10 c_39(U72^#(isNePal(activate(V))), 587.84/148.10 isNePal^#(activate(V)), 587.84/148.10 activate^#(V)) } 587.84/148.10 587.84/148.10 We are left with following problem, upon which TcT provides the 587.84/148.10 certificate YES(O(1),O(n^2)). 587.84/148.10 587.84/148.10 Strict DPs: 587.84/148.10 { U11^#(tt(), V) -> c_1(isNeList^#(activate(V)), activate^#(V)) 587.84/148.10 , isNeList^#(V) -> 587.84/148.10 c_2(U31^#(isPalListKind(activate(V)), activate(V)), 587.84/148.10 isPalListKind^#(activate(V)), 587.84/148.10 activate^#(V), 587.84/148.10 activate^#(V)) 587.84/148.10 , isNeList^#(n____(V1, V2)) -> 587.84/148.10 c_3(U41^#(and(isPalListKind(activate(V1)), 587.84/148.10 n__isPalListKind(activate(V2))), 587.84/148.10 activate(V1), 587.84/148.10 activate(V2)), 587.84/148.10 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.10 isPalListKind^#(activate(V1)), 587.84/148.10 activate^#(V1), 587.84/148.10 activate^#(V2), 587.84/148.10 activate^#(V1), 587.84/148.10 activate^#(V2)) 587.84/148.10 , isNeList^#(n____(V1, V2)) -> 587.84/148.10 c_4(U51^#(and(isPalListKind(activate(V1)), 587.84/148.10 n__isPalListKind(activate(V2))), 587.84/148.10 activate(V1), 587.84/148.10 activate(V2)), 587.84/148.10 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.10 isPalListKind^#(activate(V1)), 587.84/148.10 activate^#(V1), 587.84/148.10 activate^#(V2), 587.84/148.10 activate^#(V1), 587.84/148.10 activate^#(V2)) 587.84/148.10 , activate^#(n__isPalListKind(X)) -> c_5(isPalListKind^#(X)) 587.84/148.10 , activate^#(n__and(X1, X2)) -> c_6(and^#(X1, X2)) 587.84/148.10 , U31^#(tt(), V) -> c_7(activate^#(V)) 587.84/148.10 , isPalListKind^#(n____(V1, V2)) -> 587.84/148.10 c_8(and^#(isPalListKind(activate(V1)), 587.84/148.10 n__isPalListKind(activate(V2))), 587.84/148.10 isPalListKind^#(activate(V1)), 587.84/148.10 activate^#(V1), 587.84/148.10 activate^#(V2)) 587.84/148.10 , U41^#(tt(), V1, V2) -> 587.84/148.10 c_9(U42^#(isList(activate(V1)), activate(V2)), 587.84/148.10 isList^#(activate(V1)), 587.84/148.10 activate^#(V1), 587.84/148.10 activate^#(V2)) 587.84/148.10 , and^#(tt(), X) -> c_10(activate^#(X)) 587.84/148.10 , U51^#(tt(), V1, V2) -> 587.84/148.10 c_11(U52^#(isNeList(activate(V1)), activate(V2)), 587.84/148.10 isNeList^#(activate(V1)), 587.84/148.10 activate^#(V1), 587.84/148.10 activate^#(V2)) 587.84/148.10 , U21^#(tt(), V1, V2) -> 587.84/148.10 c_12(U22^#(isList(activate(V1)), activate(V2)), 587.84/148.10 isList^#(activate(V1)), 587.84/148.10 activate^#(V1), 587.84/148.10 activate^#(V2)) 587.84/148.10 , U22^#(tt(), V2) -> c_13(isList^#(activate(V2)), activate^#(V2)) 587.84/148.10 , isList^#(V) -> 587.84/148.10 c_14(U11^#(isPalListKind(activate(V)), activate(V)), 587.84/148.10 isPalListKind^#(activate(V)), 587.84/148.10 activate^#(V), 587.84/148.10 activate^#(V)) 587.84/148.10 , isList^#(n____(V1, V2)) -> 587.84/148.10 c_15(U21^#(and(isPalListKind(activate(V1)), 587.84/148.10 n__isPalListKind(activate(V2))), 587.84/148.10 activate(V1), 587.84/148.10 activate(V2)), 587.84/148.10 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.10 isPalListKind^#(activate(V1)), 587.84/148.10 activate^#(V1), 587.84/148.10 activate^#(V2), 587.84/148.10 activate^#(V1), 587.84/148.10 activate^#(V2)) 587.84/148.10 , U42^#(tt(), V2) -> c_16(isNeList^#(activate(V2)), activate^#(V2)) 587.84/148.10 , U52^#(tt(), V2) -> c_17(isList^#(activate(V2)), activate^#(V2)) 587.84/148.10 , U61^#(tt(), V) -> c_18(activate^#(V)) 587.84/148.10 , U71^#(tt(), V) -> c_19(isNePal^#(activate(V)), activate^#(V)) 587.84/148.10 , isNePal^#(V) -> 587.84/148.10 c_20(U61^#(isPalListKind(activate(V)), activate(V)), 587.84/148.10 isPalListKind^#(activate(V)), 587.84/148.10 activate^#(V), 587.84/148.10 activate^#(V)) 587.84/148.10 , isPal^#(V) -> 587.84/148.10 c_21(U71^#(isPalListKind(activate(V)), activate(V)), 587.84/148.10 isPalListKind^#(activate(V)), 587.84/148.10 activate^#(V), 587.84/148.10 activate^#(V)) } 587.84/148.10 Weak Trs: 587.84/148.10 { __(X1, X2) -> n____(X1, X2) 587.84/148.10 , nil() -> n__nil() 587.84/148.10 , U11(tt(), V) -> U12(isNeList(activate(V))) 587.84/148.10 , U12(tt()) -> tt() 587.84/148.10 , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) 587.84/148.10 , isNeList(n____(V1, V2)) -> 587.84/148.10 U41(and(isPalListKind(activate(V1)), 587.84/148.10 n__isPalListKind(activate(V2))), 587.84/148.10 activate(V1), 587.84/148.10 activate(V2)) 587.84/148.10 , isNeList(n____(V1, V2)) -> 587.84/148.10 U51(and(isPalListKind(activate(V1)), 587.84/148.10 n__isPalListKind(activate(V2))), 587.84/148.10 activate(V1), 587.84/148.10 activate(V2)) 587.84/148.10 , activate(X) -> X 587.84/148.10 , activate(n__nil()) -> nil() 587.84/148.10 , activate(n____(X1, X2)) -> __(X1, X2) 587.84/148.10 , activate(n__isPalListKind(X)) -> isPalListKind(X) 587.84/148.11 , activate(n__and(X1, X2)) -> and(X1, X2) 587.84/148.11 , activate(n__a()) -> a() 587.84/148.11 , activate(n__e()) -> e() 587.84/148.11 , activate(n__i()) -> i() 587.84/148.11 , activate(n__o()) -> o() 587.84/148.11 , activate(n__u()) -> u() 587.84/148.11 , U21(tt(), V1, V2) -> U22(isList(activate(V1)), activate(V2)) 587.84/148.11 , U22(tt(), V2) -> U23(isList(activate(V2))) 587.84/148.11 , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) 587.84/148.11 , isList(n__nil()) -> tt() 587.84/148.11 , isList(n____(V1, V2)) -> 587.84/148.11 U21(and(isPalListKind(activate(V1)), 587.84/148.11 n__isPalListKind(activate(V2))), 587.84/148.11 activate(V1), 587.84/148.11 activate(V2)) 587.84/148.11 , U23(tt()) -> tt() 587.84/148.11 , U31(tt(), V) -> U32(isQid(activate(V))) 587.84/148.11 , U32(tt()) -> tt() 587.84/148.11 , isQid(n__a()) -> tt() 587.84/148.11 , isQid(n__e()) -> tt() 587.84/148.11 , isQid(n__i()) -> tt() 587.84/148.11 , isQid(n__o()) -> tt() 587.84/148.11 , isQid(n__u()) -> tt() 587.84/148.11 , U41(tt(), V1, V2) -> U42(isList(activate(V1)), activate(V2)) 587.84/148.11 , U42(tt(), V2) -> U43(isNeList(activate(V2))) 587.84/148.11 , U43(tt()) -> tt() 587.84/148.11 , U51(tt(), V1, V2) -> U52(isNeList(activate(V1)), activate(V2)) 587.84/148.11 , U52(tt(), V2) -> U53(isList(activate(V2))) 587.84/148.11 , U53(tt()) -> tt() 587.84/148.11 , U61(tt(), V) -> U62(isQid(activate(V))) 587.84/148.11 , U62(tt()) -> tt() 587.84/148.11 , U71(tt(), V) -> U72(isNePal(activate(V))) 587.84/148.11 , U72(tt()) -> tt() 587.84/148.11 , isNePal(V) -> U61(isPalListKind(activate(V)), activate(V)) 587.84/148.11 , and(X1, X2) -> n__and(X1, X2) 587.84/148.11 , and(tt(), X) -> activate(X) 587.84/148.11 , isPalListKind(X) -> n__isPalListKind(X) 587.84/148.11 , isPalListKind(n__nil()) -> tt() 587.84/148.11 , isPalListKind(n____(V1, V2)) -> 587.84/148.11 and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.84/148.11 , isPalListKind(n__a()) -> tt() 587.84/148.11 , isPalListKind(n__e()) -> tt() 587.84/148.11 , isPalListKind(n__i()) -> tt() 587.84/148.11 , isPalListKind(n__o()) -> tt() 587.84/148.11 , isPalListKind(n__u()) -> tt() 587.84/148.11 , isPal(V) -> U71(isPalListKind(activate(V)), activate(V)) 587.84/148.11 , isPal(n__nil()) -> tt() 587.84/148.11 , a() -> n__a() 587.84/148.11 , e() -> n__e() 587.84/148.11 , i() -> n__i() 587.84/148.11 , o() -> n__o() 587.84/148.11 , u() -> n__u() } 587.84/148.11 Obligation: 587.84/148.11 innermost runtime complexity 587.84/148.11 Answer: 587.84/148.11 YES(O(1),O(n^2)) 587.84/148.11 587.84/148.11 We replace rewrite rules by usable rules: 587.84/148.11 587.84/148.11 Weak Usable Rules: 587.84/148.11 { __(X1, X2) -> n____(X1, X2) 587.84/148.11 , nil() -> n__nil() 587.84/148.11 , U11(tt(), V) -> U12(isNeList(activate(V))) 587.84/148.11 , U12(tt()) -> tt() 587.84/148.11 , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) 587.84/148.11 , isNeList(n____(V1, V2)) -> 587.84/148.11 U41(and(isPalListKind(activate(V1)), 587.84/148.11 n__isPalListKind(activate(V2))), 587.84/148.11 activate(V1), 587.84/148.11 activate(V2)) 587.84/148.11 , isNeList(n____(V1, V2)) -> 587.84/148.11 U51(and(isPalListKind(activate(V1)), 587.84/148.11 n__isPalListKind(activate(V2))), 587.84/148.11 activate(V1), 587.84/148.11 activate(V2)) 587.84/148.11 , activate(X) -> X 587.84/148.11 , activate(n__nil()) -> nil() 587.84/148.11 , activate(n____(X1, X2)) -> __(X1, X2) 587.84/148.11 , activate(n__isPalListKind(X)) -> isPalListKind(X) 587.84/148.11 , activate(n__and(X1, X2)) -> and(X1, X2) 587.84/148.11 , activate(n__a()) -> a() 587.84/148.11 , activate(n__e()) -> e() 587.84/148.11 , activate(n__i()) -> i() 587.84/148.11 , activate(n__o()) -> o() 587.84/148.11 , activate(n__u()) -> u() 587.84/148.11 , U21(tt(), V1, V2) -> U22(isList(activate(V1)), activate(V2)) 587.84/148.11 , U22(tt(), V2) -> U23(isList(activate(V2))) 587.84/148.11 , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) 587.84/148.11 , isList(n__nil()) -> tt() 587.84/148.11 , isList(n____(V1, V2)) -> 587.84/148.11 U21(and(isPalListKind(activate(V1)), 587.84/148.11 n__isPalListKind(activate(V2))), 587.84/148.11 activate(V1), 587.84/148.11 activate(V2)) 587.84/148.11 , U23(tt()) -> tt() 587.84/148.11 , U31(tt(), V) -> U32(isQid(activate(V))) 587.84/148.11 , U32(tt()) -> tt() 587.84/148.11 , isQid(n__a()) -> tt() 587.84/148.11 , isQid(n__e()) -> tt() 587.84/148.11 , isQid(n__i()) -> tt() 587.84/148.11 , isQid(n__o()) -> tt() 587.84/148.11 , isQid(n__u()) -> tt() 587.84/148.11 , U41(tt(), V1, V2) -> U42(isList(activate(V1)), activate(V2)) 587.84/148.11 , U42(tt(), V2) -> U43(isNeList(activate(V2))) 587.84/148.11 , U43(tt()) -> tt() 587.84/148.11 , U51(tt(), V1, V2) -> U52(isNeList(activate(V1)), activate(V2)) 587.84/148.11 , U52(tt(), V2) -> U53(isList(activate(V2))) 587.84/148.11 , U53(tt()) -> tt() 587.84/148.11 , and(X1, X2) -> n__and(X1, X2) 587.84/148.11 , and(tt(), X) -> activate(X) 587.84/148.11 , isPalListKind(X) -> n__isPalListKind(X) 587.84/148.11 , isPalListKind(n__nil()) -> tt() 587.84/148.11 , isPalListKind(n____(V1, V2)) -> 587.84/148.11 and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.84/148.11 , isPalListKind(n__a()) -> tt() 587.84/148.11 , isPalListKind(n__e()) -> tt() 587.84/148.11 , isPalListKind(n__i()) -> tt() 587.84/148.11 , isPalListKind(n__o()) -> tt() 587.84/148.11 , isPalListKind(n__u()) -> tt() 587.84/148.11 , a() -> n__a() 587.84/148.11 , e() -> n__e() 587.84/148.11 , i() -> n__i() 587.84/148.11 , o() -> n__o() 587.84/148.11 , u() -> n__u() } 587.84/148.11 587.84/148.11 We are left with following problem, upon which TcT provides the 587.84/148.11 certificate YES(O(1),O(n^2)). 587.84/148.11 587.84/148.11 Strict DPs: 587.84/148.11 { U11^#(tt(), V) -> c_1(isNeList^#(activate(V)), activate^#(V)) 587.84/148.11 , isNeList^#(V) -> 587.84/148.11 c_2(U31^#(isPalListKind(activate(V)), activate(V)), 587.84/148.11 isPalListKind^#(activate(V)), 587.84/148.11 activate^#(V), 587.84/148.11 activate^#(V)) 587.84/148.11 , isNeList^#(n____(V1, V2)) -> 587.84/148.11 c_3(U41^#(and(isPalListKind(activate(V1)), 587.84/148.11 n__isPalListKind(activate(V2))), 587.84/148.11 activate(V1), 587.84/148.11 activate(V2)), 587.84/148.11 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.11 isPalListKind^#(activate(V1)), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2)) 587.84/148.11 , isNeList^#(n____(V1, V2)) -> 587.84/148.11 c_4(U51^#(and(isPalListKind(activate(V1)), 587.84/148.11 n__isPalListKind(activate(V2))), 587.84/148.11 activate(V1), 587.84/148.11 activate(V2)), 587.84/148.11 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.11 isPalListKind^#(activate(V1)), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2)) 587.84/148.11 , activate^#(n__isPalListKind(X)) -> c_5(isPalListKind^#(X)) 587.84/148.11 , activate^#(n__and(X1, X2)) -> c_6(and^#(X1, X2)) 587.84/148.11 , U31^#(tt(), V) -> c_7(activate^#(V)) 587.84/148.11 , isPalListKind^#(n____(V1, V2)) -> 587.84/148.11 c_8(and^#(isPalListKind(activate(V1)), 587.84/148.11 n__isPalListKind(activate(V2))), 587.84/148.11 isPalListKind^#(activate(V1)), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2)) 587.84/148.11 , U41^#(tt(), V1, V2) -> 587.84/148.11 c_9(U42^#(isList(activate(V1)), activate(V2)), 587.84/148.11 isList^#(activate(V1)), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2)) 587.84/148.11 , and^#(tt(), X) -> c_10(activate^#(X)) 587.84/148.11 , U51^#(tt(), V1, V2) -> 587.84/148.11 c_11(U52^#(isNeList(activate(V1)), activate(V2)), 587.84/148.11 isNeList^#(activate(V1)), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2)) 587.84/148.11 , U21^#(tt(), V1, V2) -> 587.84/148.11 c_12(U22^#(isList(activate(V1)), activate(V2)), 587.84/148.11 isList^#(activate(V1)), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2)) 587.84/148.11 , U22^#(tt(), V2) -> c_13(isList^#(activate(V2)), activate^#(V2)) 587.84/148.11 , isList^#(V) -> 587.84/148.11 c_14(U11^#(isPalListKind(activate(V)), activate(V)), 587.84/148.11 isPalListKind^#(activate(V)), 587.84/148.11 activate^#(V), 587.84/148.11 activate^#(V)) 587.84/148.11 , isList^#(n____(V1, V2)) -> 587.84/148.11 c_15(U21^#(and(isPalListKind(activate(V1)), 587.84/148.11 n__isPalListKind(activate(V2))), 587.84/148.11 activate(V1), 587.84/148.11 activate(V2)), 587.84/148.11 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.11 isPalListKind^#(activate(V1)), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2)) 587.84/148.11 , U42^#(tt(), V2) -> c_16(isNeList^#(activate(V2)), activate^#(V2)) 587.84/148.11 , U52^#(tt(), V2) -> c_17(isList^#(activate(V2)), activate^#(V2)) 587.84/148.11 , U61^#(tt(), V) -> c_18(activate^#(V)) 587.84/148.11 , U71^#(tt(), V) -> c_19(isNePal^#(activate(V)), activate^#(V)) 587.84/148.11 , isNePal^#(V) -> 587.84/148.11 c_20(U61^#(isPalListKind(activate(V)), activate(V)), 587.84/148.11 isPalListKind^#(activate(V)), 587.84/148.11 activate^#(V), 587.84/148.11 activate^#(V)) 587.84/148.11 , isPal^#(V) -> 587.84/148.11 c_21(U71^#(isPalListKind(activate(V)), activate(V)), 587.84/148.11 isPalListKind^#(activate(V)), 587.84/148.11 activate^#(V), 587.84/148.11 activate^#(V)) } 587.84/148.11 Weak Trs: 587.84/148.11 { __(X1, X2) -> n____(X1, X2) 587.84/148.11 , nil() -> n__nil() 587.84/148.11 , U11(tt(), V) -> U12(isNeList(activate(V))) 587.84/148.11 , U12(tt()) -> tt() 587.84/148.11 , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) 587.84/148.11 , isNeList(n____(V1, V2)) -> 587.84/148.11 U41(and(isPalListKind(activate(V1)), 587.84/148.11 n__isPalListKind(activate(V2))), 587.84/148.11 activate(V1), 587.84/148.11 activate(V2)) 587.84/148.11 , isNeList(n____(V1, V2)) -> 587.84/148.11 U51(and(isPalListKind(activate(V1)), 587.84/148.11 n__isPalListKind(activate(V2))), 587.84/148.11 activate(V1), 587.84/148.11 activate(V2)) 587.84/148.11 , activate(X) -> X 587.84/148.11 , activate(n__nil()) -> nil() 587.84/148.11 , activate(n____(X1, X2)) -> __(X1, X2) 587.84/148.11 , activate(n__isPalListKind(X)) -> isPalListKind(X) 587.84/148.11 , activate(n__and(X1, X2)) -> and(X1, X2) 587.84/148.11 , activate(n__a()) -> a() 587.84/148.11 , activate(n__e()) -> e() 587.84/148.11 , activate(n__i()) -> i() 587.84/148.11 , activate(n__o()) -> o() 587.84/148.11 , activate(n__u()) -> u() 587.84/148.11 , U21(tt(), V1, V2) -> U22(isList(activate(V1)), activate(V2)) 587.84/148.11 , U22(tt(), V2) -> U23(isList(activate(V2))) 587.84/148.11 , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) 587.84/148.11 , isList(n__nil()) -> tt() 587.84/148.11 , isList(n____(V1, V2)) -> 587.84/148.11 U21(and(isPalListKind(activate(V1)), 587.84/148.11 n__isPalListKind(activate(V2))), 587.84/148.11 activate(V1), 587.84/148.11 activate(V2)) 587.84/148.11 , U23(tt()) -> tt() 587.84/148.11 , U31(tt(), V) -> U32(isQid(activate(V))) 587.84/148.11 , U32(tt()) -> tt() 587.84/148.11 , isQid(n__a()) -> tt() 587.84/148.11 , isQid(n__e()) -> tt() 587.84/148.11 , isQid(n__i()) -> tt() 587.84/148.11 , isQid(n__o()) -> tt() 587.84/148.11 , isQid(n__u()) -> tt() 587.84/148.11 , U41(tt(), V1, V2) -> U42(isList(activate(V1)), activate(V2)) 587.84/148.11 , U42(tt(), V2) -> U43(isNeList(activate(V2))) 587.84/148.11 , U43(tt()) -> tt() 587.84/148.11 , U51(tt(), V1, V2) -> U52(isNeList(activate(V1)), activate(V2)) 587.84/148.11 , U52(tt(), V2) -> U53(isList(activate(V2))) 587.84/148.11 , U53(tt()) -> tt() 587.84/148.11 , and(X1, X2) -> n__and(X1, X2) 587.84/148.11 , and(tt(), X) -> activate(X) 587.84/148.11 , isPalListKind(X) -> n__isPalListKind(X) 587.84/148.11 , isPalListKind(n__nil()) -> tt() 587.84/148.11 , isPalListKind(n____(V1, V2)) -> 587.84/148.11 and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.84/148.11 , isPalListKind(n__a()) -> tt() 587.84/148.11 , isPalListKind(n__e()) -> tt() 587.84/148.11 , isPalListKind(n__i()) -> tt() 587.84/148.11 , isPalListKind(n__o()) -> tt() 587.84/148.11 , isPalListKind(n__u()) -> tt() 587.84/148.11 , a() -> n__a() 587.84/148.11 , e() -> n__e() 587.84/148.11 , i() -> n__i() 587.84/148.11 , o() -> n__o() 587.84/148.11 , u() -> n__u() } 587.84/148.11 Obligation: 587.84/148.11 innermost runtime complexity 587.84/148.11 Answer: 587.84/148.11 YES(O(1),O(n^2)) 587.84/148.11 587.84/148.11 We analyse the complexity of following sub-problems (R) and (S). 587.84/148.11 Problem (S) is obtained from the input problem by shifting strict 587.84/148.11 rules from (R) into the weak component: 587.84/148.11 587.84/148.11 Problem (R): 587.84/148.11 ------------ 587.84/148.11 Strict DPs: 587.84/148.11 { activate^#(n__isPalListKind(X)) -> c_5(isPalListKind^#(X)) 587.84/148.11 , activate^#(n__and(X1, X2)) -> c_6(and^#(X1, X2)) 587.84/148.11 , isPalListKind^#(n____(V1, V2)) -> 587.84/148.11 c_8(and^#(isPalListKind(activate(V1)), 587.84/148.11 n__isPalListKind(activate(V2))), 587.84/148.11 isPalListKind^#(activate(V1)), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2)) 587.84/148.11 , and^#(tt(), X) -> c_10(activate^#(X)) 587.84/148.11 , U61^#(tt(), V) -> c_18(activate^#(V)) 587.84/148.11 , U71^#(tt(), V) -> c_19(isNePal^#(activate(V)), activate^#(V)) 587.84/148.11 , isNePal^#(V) -> 587.84/148.11 c_20(U61^#(isPalListKind(activate(V)), activate(V)), 587.84/148.11 isPalListKind^#(activate(V)), 587.84/148.11 activate^#(V), 587.84/148.11 activate^#(V)) 587.84/148.11 , isPal^#(V) -> 587.84/148.11 c_21(U71^#(isPalListKind(activate(V)), activate(V)), 587.84/148.11 isPalListKind^#(activate(V)), 587.84/148.11 activate^#(V), 587.84/148.11 activate^#(V)) } 587.84/148.11 Weak DPs: 587.84/148.11 { U11^#(tt(), V) -> c_1(isNeList^#(activate(V)), activate^#(V)) 587.84/148.11 , isNeList^#(V) -> 587.84/148.11 c_2(U31^#(isPalListKind(activate(V)), activate(V)), 587.84/148.11 isPalListKind^#(activate(V)), 587.84/148.11 activate^#(V), 587.84/148.11 activate^#(V)) 587.84/148.11 , isNeList^#(n____(V1, V2)) -> 587.84/148.11 c_3(U41^#(and(isPalListKind(activate(V1)), 587.84/148.11 n__isPalListKind(activate(V2))), 587.84/148.11 activate(V1), 587.84/148.11 activate(V2)), 587.84/148.11 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.11 isPalListKind^#(activate(V1)), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2)) 587.84/148.11 , isNeList^#(n____(V1, V2)) -> 587.84/148.11 c_4(U51^#(and(isPalListKind(activate(V1)), 587.84/148.11 n__isPalListKind(activate(V2))), 587.84/148.11 activate(V1), 587.84/148.11 activate(V2)), 587.84/148.11 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.11 isPalListKind^#(activate(V1)), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2)) 587.84/148.11 , U31^#(tt(), V) -> c_7(activate^#(V)) 587.84/148.11 , U41^#(tt(), V1, V2) -> 587.84/148.11 c_9(U42^#(isList(activate(V1)), activate(V2)), 587.84/148.11 isList^#(activate(V1)), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2)) 587.84/148.11 , U51^#(tt(), V1, V2) -> 587.84/148.11 c_11(U52^#(isNeList(activate(V1)), activate(V2)), 587.84/148.11 isNeList^#(activate(V1)), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2)) 587.84/148.11 , U21^#(tt(), V1, V2) -> 587.84/148.11 c_12(U22^#(isList(activate(V1)), activate(V2)), 587.84/148.11 isList^#(activate(V1)), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2)) 587.84/148.11 , U22^#(tt(), V2) -> c_13(isList^#(activate(V2)), activate^#(V2)) 587.84/148.11 , isList^#(V) -> 587.84/148.11 c_14(U11^#(isPalListKind(activate(V)), activate(V)), 587.84/148.11 isPalListKind^#(activate(V)), 587.84/148.11 activate^#(V), 587.84/148.11 activate^#(V)) 587.84/148.11 , isList^#(n____(V1, V2)) -> 587.84/148.11 c_15(U21^#(and(isPalListKind(activate(V1)), 587.84/148.11 n__isPalListKind(activate(V2))), 587.84/148.11 activate(V1), 587.84/148.11 activate(V2)), 587.84/148.11 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.11 isPalListKind^#(activate(V1)), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2)) 587.84/148.11 , U42^#(tt(), V2) -> c_16(isNeList^#(activate(V2)), activate^#(V2)) 587.84/148.11 , U52^#(tt(), V2) -> c_17(isList^#(activate(V2)), activate^#(V2)) } 587.84/148.11 Weak Trs: 587.84/148.11 { __(X1, X2) -> n____(X1, X2) 587.84/148.11 , nil() -> n__nil() 587.84/148.11 , U11(tt(), V) -> U12(isNeList(activate(V))) 587.84/148.11 , U12(tt()) -> tt() 587.84/148.11 , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) 587.84/148.11 , isNeList(n____(V1, V2)) -> 587.84/148.11 U41(and(isPalListKind(activate(V1)), 587.84/148.11 n__isPalListKind(activate(V2))), 587.84/148.11 activate(V1), 587.84/148.11 activate(V2)) 587.84/148.11 , isNeList(n____(V1, V2)) -> 587.84/148.11 U51(and(isPalListKind(activate(V1)), 587.84/148.11 n__isPalListKind(activate(V2))), 587.84/148.11 activate(V1), 587.84/148.11 activate(V2)) 587.84/148.11 , activate(X) -> X 587.84/148.11 , activate(n__nil()) -> nil() 587.84/148.11 , activate(n____(X1, X2)) -> __(X1, X2) 587.84/148.11 , activate(n__isPalListKind(X)) -> isPalListKind(X) 587.84/148.11 , activate(n__and(X1, X2)) -> and(X1, X2) 587.84/148.11 , activate(n__a()) -> a() 587.84/148.11 , activate(n__e()) -> e() 587.84/148.11 , activate(n__i()) -> i() 587.84/148.11 , activate(n__o()) -> o() 587.84/148.11 , activate(n__u()) -> u() 587.84/148.11 , U21(tt(), V1, V2) -> U22(isList(activate(V1)), activate(V2)) 587.84/148.11 , U22(tt(), V2) -> U23(isList(activate(V2))) 587.84/148.11 , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) 587.84/148.11 , isList(n__nil()) -> tt() 587.84/148.11 , isList(n____(V1, V2)) -> 587.84/148.11 U21(and(isPalListKind(activate(V1)), 587.84/148.11 n__isPalListKind(activate(V2))), 587.84/148.11 activate(V1), 587.84/148.11 activate(V2)) 587.84/148.11 , U23(tt()) -> tt() 587.84/148.11 , U31(tt(), V) -> U32(isQid(activate(V))) 587.84/148.11 , U32(tt()) -> tt() 587.84/148.11 , isQid(n__a()) -> tt() 587.84/148.11 , isQid(n__e()) -> tt() 587.84/148.11 , isQid(n__i()) -> tt() 587.84/148.11 , isQid(n__o()) -> tt() 587.84/148.11 , isQid(n__u()) -> tt() 587.84/148.11 , U41(tt(), V1, V2) -> U42(isList(activate(V1)), activate(V2)) 587.84/148.11 , U42(tt(), V2) -> U43(isNeList(activate(V2))) 587.84/148.11 , U43(tt()) -> tt() 587.84/148.11 , U51(tt(), V1, V2) -> U52(isNeList(activate(V1)), activate(V2)) 587.84/148.11 , U52(tt(), V2) -> U53(isList(activate(V2))) 587.84/148.11 , U53(tt()) -> tt() 587.84/148.11 , and(X1, X2) -> n__and(X1, X2) 587.84/148.11 , and(tt(), X) -> activate(X) 587.84/148.11 , isPalListKind(X) -> n__isPalListKind(X) 587.84/148.11 , isPalListKind(n__nil()) -> tt() 587.84/148.11 , isPalListKind(n____(V1, V2)) -> 587.84/148.11 and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.84/148.11 , isPalListKind(n__a()) -> tt() 587.84/148.11 , isPalListKind(n__e()) -> tt() 587.84/148.11 , isPalListKind(n__i()) -> tt() 587.84/148.11 , isPalListKind(n__o()) -> tt() 587.84/148.11 , isPalListKind(n__u()) -> tt() 587.84/148.11 , a() -> n__a() 587.84/148.11 , e() -> n__e() 587.84/148.11 , i() -> n__i() 587.84/148.11 , o() -> n__o() 587.84/148.11 , u() -> n__u() } 587.84/148.11 StartTerms: basic terms 587.84/148.11 Strategy: innermost 587.84/148.11 587.84/148.11 Problem (S): 587.84/148.11 ------------ 587.84/148.11 Strict DPs: 587.84/148.11 { U11^#(tt(), V) -> c_1(isNeList^#(activate(V)), activate^#(V)) 587.84/148.11 , isNeList^#(V) -> 587.84/148.11 c_2(U31^#(isPalListKind(activate(V)), activate(V)), 587.84/148.11 isPalListKind^#(activate(V)), 587.84/148.11 activate^#(V), 587.84/148.11 activate^#(V)) 587.84/148.11 , isNeList^#(n____(V1, V2)) -> 587.84/148.11 c_3(U41^#(and(isPalListKind(activate(V1)), 587.84/148.11 n__isPalListKind(activate(V2))), 587.84/148.11 activate(V1), 587.84/148.11 activate(V2)), 587.84/148.11 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.11 isPalListKind^#(activate(V1)), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2)) 587.84/148.11 , isNeList^#(n____(V1, V2)) -> 587.84/148.11 c_4(U51^#(and(isPalListKind(activate(V1)), 587.84/148.11 n__isPalListKind(activate(V2))), 587.84/148.11 activate(V1), 587.84/148.11 activate(V2)), 587.84/148.11 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.11 isPalListKind^#(activate(V1)), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2)) 587.84/148.11 , U31^#(tt(), V) -> c_7(activate^#(V)) 587.84/148.11 , U41^#(tt(), V1, V2) -> 587.84/148.11 c_9(U42^#(isList(activate(V1)), activate(V2)), 587.84/148.11 isList^#(activate(V1)), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2)) 587.84/148.11 , U51^#(tt(), V1, V2) -> 587.84/148.11 c_11(U52^#(isNeList(activate(V1)), activate(V2)), 587.84/148.11 isNeList^#(activate(V1)), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2)) 587.84/148.11 , U21^#(tt(), V1, V2) -> 587.84/148.11 c_12(U22^#(isList(activate(V1)), activate(V2)), 587.84/148.11 isList^#(activate(V1)), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2)) 587.84/148.11 , U22^#(tt(), V2) -> c_13(isList^#(activate(V2)), activate^#(V2)) 587.84/148.11 , isList^#(V) -> 587.84/148.11 c_14(U11^#(isPalListKind(activate(V)), activate(V)), 587.84/148.11 isPalListKind^#(activate(V)), 587.84/148.11 activate^#(V), 587.84/148.11 activate^#(V)) 587.84/148.11 , isList^#(n____(V1, V2)) -> 587.84/148.11 c_15(U21^#(and(isPalListKind(activate(V1)), 587.84/148.11 n__isPalListKind(activate(V2))), 587.84/148.11 activate(V1), 587.84/148.11 activate(V2)), 587.84/148.11 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.11 isPalListKind^#(activate(V1)), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2)) 587.84/148.11 , U42^#(tt(), V2) -> c_16(isNeList^#(activate(V2)), activate^#(V2)) 587.84/148.11 , U52^#(tt(), V2) -> c_17(isList^#(activate(V2)), activate^#(V2)) } 587.84/148.11 Weak DPs: 587.84/148.11 { activate^#(n__isPalListKind(X)) -> c_5(isPalListKind^#(X)) 587.84/148.11 , activate^#(n__and(X1, X2)) -> c_6(and^#(X1, X2)) 587.84/148.11 , isPalListKind^#(n____(V1, V2)) -> 587.84/148.11 c_8(and^#(isPalListKind(activate(V1)), 587.84/148.11 n__isPalListKind(activate(V2))), 587.84/148.11 isPalListKind^#(activate(V1)), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2)) 587.84/148.11 , and^#(tt(), X) -> c_10(activate^#(X)) 587.84/148.11 , U61^#(tt(), V) -> c_18(activate^#(V)) 587.84/148.11 , U71^#(tt(), V) -> c_19(isNePal^#(activate(V)), activate^#(V)) 587.84/148.11 , isNePal^#(V) -> 587.84/148.11 c_20(U61^#(isPalListKind(activate(V)), activate(V)), 587.84/148.11 isPalListKind^#(activate(V)), 587.84/148.11 activate^#(V), 587.84/148.11 activate^#(V)) 587.84/148.11 , isPal^#(V) -> 587.84/148.11 c_21(U71^#(isPalListKind(activate(V)), activate(V)), 587.84/148.11 isPalListKind^#(activate(V)), 587.84/148.11 activate^#(V), 587.84/148.11 activate^#(V)) } 587.84/148.11 Weak Trs: 587.84/148.11 { __(X1, X2) -> n____(X1, X2) 587.84/148.11 , nil() -> n__nil() 587.84/148.11 , U11(tt(), V) -> U12(isNeList(activate(V))) 587.84/148.11 , U12(tt()) -> tt() 587.84/148.11 , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) 587.84/148.11 , isNeList(n____(V1, V2)) -> 587.84/148.11 U41(and(isPalListKind(activate(V1)), 587.84/148.11 n__isPalListKind(activate(V2))), 587.84/148.11 activate(V1), 587.84/148.11 activate(V2)) 587.84/148.11 , isNeList(n____(V1, V2)) -> 587.84/148.11 U51(and(isPalListKind(activate(V1)), 587.84/148.11 n__isPalListKind(activate(V2))), 587.84/148.11 activate(V1), 587.84/148.11 activate(V2)) 587.84/148.11 , activate(X) -> X 587.84/148.11 , activate(n__nil()) -> nil() 587.84/148.11 , activate(n____(X1, X2)) -> __(X1, X2) 587.84/148.11 , activate(n__isPalListKind(X)) -> isPalListKind(X) 587.84/148.11 , activate(n__and(X1, X2)) -> and(X1, X2) 587.84/148.11 , activate(n__a()) -> a() 587.84/148.11 , activate(n__e()) -> e() 587.84/148.11 , activate(n__i()) -> i() 587.84/148.11 , activate(n__o()) -> o() 587.84/148.11 , activate(n__u()) -> u() 587.84/148.11 , U21(tt(), V1, V2) -> U22(isList(activate(V1)), activate(V2)) 587.84/148.11 , U22(tt(), V2) -> U23(isList(activate(V2))) 587.84/148.11 , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) 587.84/148.11 , isList(n__nil()) -> tt() 587.84/148.11 , isList(n____(V1, V2)) -> 587.84/148.11 U21(and(isPalListKind(activate(V1)), 587.84/148.11 n__isPalListKind(activate(V2))), 587.84/148.11 activate(V1), 587.84/148.11 activate(V2)) 587.84/148.11 , U23(tt()) -> tt() 587.84/148.11 , U31(tt(), V) -> U32(isQid(activate(V))) 587.84/148.11 , U32(tt()) -> tt() 587.84/148.11 , isQid(n__a()) -> tt() 587.84/148.11 , isQid(n__e()) -> tt() 587.84/148.11 , isQid(n__i()) -> tt() 587.84/148.11 , isQid(n__o()) -> tt() 587.84/148.11 , isQid(n__u()) -> tt() 587.84/148.11 , U41(tt(), V1, V2) -> U42(isList(activate(V1)), activate(V2)) 587.84/148.11 , U42(tt(), V2) -> U43(isNeList(activate(V2))) 587.84/148.11 , U43(tt()) -> tt() 587.84/148.11 , U51(tt(), V1, V2) -> U52(isNeList(activate(V1)), activate(V2)) 587.84/148.11 , U52(tt(), V2) -> U53(isList(activate(V2))) 587.84/148.11 , U53(tt()) -> tt() 587.84/148.11 , and(X1, X2) -> n__and(X1, X2) 587.84/148.11 , and(tt(), X) -> activate(X) 587.84/148.11 , isPalListKind(X) -> n__isPalListKind(X) 587.84/148.11 , isPalListKind(n__nil()) -> tt() 587.84/148.11 , isPalListKind(n____(V1, V2)) -> 587.84/148.11 and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.84/148.11 , isPalListKind(n__a()) -> tt() 587.84/148.11 , isPalListKind(n__e()) -> tt() 587.84/148.11 , isPalListKind(n__i()) -> tt() 587.84/148.11 , isPalListKind(n__o()) -> tt() 587.84/148.11 , isPalListKind(n__u()) -> tt() 587.84/148.11 , a() -> n__a() 587.84/148.11 , e() -> n__e() 587.84/148.11 , i() -> n__i() 587.84/148.11 , o() -> n__o() 587.84/148.11 , u() -> n__u() } 587.84/148.11 StartTerms: basic terms 587.84/148.11 Strategy: innermost 587.84/148.11 587.84/148.11 Overall, the transformation results in the following sub-problem(s): 587.84/148.11 587.84/148.11 Generated new problems: 587.84/148.11 ----------------------- 587.84/148.11 R) Strict DPs: 587.84/148.11 { activate^#(n__isPalListKind(X)) -> c_5(isPalListKind^#(X)) 587.84/148.11 , activate^#(n__and(X1, X2)) -> c_6(and^#(X1, X2)) 587.84/148.11 , isPalListKind^#(n____(V1, V2)) -> 587.84/148.11 c_8(and^#(isPalListKind(activate(V1)), 587.84/148.11 n__isPalListKind(activate(V2))), 587.84/148.11 isPalListKind^#(activate(V1)), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2)) 587.84/148.11 , and^#(tt(), X) -> c_10(activate^#(X)) 587.84/148.11 , U61^#(tt(), V) -> c_18(activate^#(V)) 587.84/148.11 , U71^#(tt(), V) -> c_19(isNePal^#(activate(V)), activate^#(V)) 587.84/148.11 , isNePal^#(V) -> 587.84/148.11 c_20(U61^#(isPalListKind(activate(V)), activate(V)), 587.84/148.11 isPalListKind^#(activate(V)), 587.84/148.11 activate^#(V), 587.84/148.11 activate^#(V)) 587.84/148.11 , isPal^#(V) -> 587.84/148.11 c_21(U71^#(isPalListKind(activate(V)), activate(V)), 587.84/148.11 isPalListKind^#(activate(V)), 587.84/148.11 activate^#(V), 587.84/148.11 activate^#(V)) } 587.84/148.11 Weak DPs: 587.84/148.11 { U11^#(tt(), V) -> c_1(isNeList^#(activate(V)), activate^#(V)) 587.84/148.11 , isNeList^#(V) -> 587.84/148.11 c_2(U31^#(isPalListKind(activate(V)), activate(V)), 587.84/148.11 isPalListKind^#(activate(V)), 587.84/148.11 activate^#(V), 587.84/148.11 activate^#(V)) 587.84/148.11 , isNeList^#(n____(V1, V2)) -> 587.84/148.11 c_3(U41^#(and(isPalListKind(activate(V1)), 587.84/148.11 n__isPalListKind(activate(V2))), 587.84/148.11 activate(V1), 587.84/148.11 activate(V2)), 587.84/148.11 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.11 isPalListKind^#(activate(V1)), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2)) 587.84/148.11 , isNeList^#(n____(V1, V2)) -> 587.84/148.11 c_4(U51^#(and(isPalListKind(activate(V1)), 587.84/148.11 n__isPalListKind(activate(V2))), 587.84/148.11 activate(V1), 587.84/148.11 activate(V2)), 587.84/148.11 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.11 isPalListKind^#(activate(V1)), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2)) 587.84/148.11 , U31^#(tt(), V) -> c_7(activate^#(V)) 587.84/148.11 , U41^#(tt(), V1, V2) -> 587.84/148.11 c_9(U42^#(isList(activate(V1)), activate(V2)), 587.84/148.11 isList^#(activate(V1)), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2)) 587.84/148.11 , U51^#(tt(), V1, V2) -> 587.84/148.11 c_11(U52^#(isNeList(activate(V1)), activate(V2)), 587.84/148.11 isNeList^#(activate(V1)), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2)) 587.84/148.11 , U21^#(tt(), V1, V2) -> 587.84/148.11 c_12(U22^#(isList(activate(V1)), activate(V2)), 587.84/148.11 isList^#(activate(V1)), 587.84/148.11 activate^#(V1), 587.84/148.11 activate^#(V2)) 587.84/148.11 , U22^#(tt(), V2) -> c_13(isList^#(activate(V2)), activate^#(V2)) 587.84/148.12 , isList^#(V) -> 587.84/148.12 c_14(U11^#(isPalListKind(activate(V)), activate(V)), 587.84/148.12 isPalListKind^#(activate(V)), 587.84/148.12 activate^#(V), 587.84/148.12 activate^#(V)) 587.84/148.12 , isList^#(n____(V1, V2)) -> 587.84/148.12 c_15(U21^#(and(isPalListKind(activate(V1)), 587.84/148.12 n__isPalListKind(activate(V2))), 587.84/148.12 activate(V1), 587.84/148.12 activate(V2)), 587.84/148.12 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.12 isPalListKind^#(activate(V1)), 587.84/148.12 activate^#(V1), 587.84/148.12 activate^#(V2), 587.84/148.12 activate^#(V1), 587.84/148.12 activate^#(V2)) 587.84/148.12 , U42^#(tt(), V2) -> c_16(isNeList^#(activate(V2)), activate^#(V2)) 587.84/148.12 , U52^#(tt(), V2) -> c_17(isList^#(activate(V2)), activate^#(V2)) } 587.84/148.12 Weak Trs: 587.84/148.12 { __(X1, X2) -> n____(X1, X2) 587.84/148.12 , nil() -> n__nil() 587.84/148.12 , U11(tt(), V) -> U12(isNeList(activate(V))) 587.84/148.12 , U12(tt()) -> tt() 587.84/148.12 , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) 587.84/148.12 , isNeList(n____(V1, V2)) -> 587.84/148.12 U41(and(isPalListKind(activate(V1)), 587.84/148.12 n__isPalListKind(activate(V2))), 587.84/148.12 activate(V1), 587.84/148.12 activate(V2)) 587.84/148.12 , isNeList(n____(V1, V2)) -> 587.84/148.12 U51(and(isPalListKind(activate(V1)), 587.84/148.12 n__isPalListKind(activate(V2))), 587.84/148.12 activate(V1), 587.84/148.12 activate(V2)) 587.84/148.12 , activate(X) -> X 587.84/148.12 , activate(n__nil()) -> nil() 587.84/148.12 , activate(n____(X1, X2)) -> __(X1, X2) 587.84/148.12 , activate(n__isPalListKind(X)) -> isPalListKind(X) 587.84/148.12 , activate(n__and(X1, X2)) -> and(X1, X2) 587.84/148.12 , activate(n__a()) -> a() 587.84/148.12 , activate(n__e()) -> e() 587.84/148.12 , activate(n__i()) -> i() 587.84/148.12 , activate(n__o()) -> o() 587.84/148.12 , activate(n__u()) -> u() 587.84/148.12 , U21(tt(), V1, V2) -> U22(isList(activate(V1)), activate(V2)) 587.84/148.12 , U22(tt(), V2) -> U23(isList(activate(V2))) 587.84/148.12 , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) 587.84/148.12 , isList(n__nil()) -> tt() 587.84/148.12 , isList(n____(V1, V2)) -> 587.84/148.12 U21(and(isPalListKind(activate(V1)), 587.84/148.12 n__isPalListKind(activate(V2))), 587.84/148.12 activate(V1), 587.84/148.12 activate(V2)) 587.84/148.12 , U23(tt()) -> tt() 587.84/148.12 , U31(tt(), V) -> U32(isQid(activate(V))) 587.84/148.12 , U32(tt()) -> tt() 587.84/148.12 , isQid(n__a()) -> tt() 587.84/148.12 , isQid(n__e()) -> tt() 587.84/148.12 , isQid(n__i()) -> tt() 587.84/148.12 , isQid(n__o()) -> tt() 587.84/148.12 , isQid(n__u()) -> tt() 587.84/148.12 , U41(tt(), V1, V2) -> U42(isList(activate(V1)), activate(V2)) 587.84/148.12 , U42(tt(), V2) -> U43(isNeList(activate(V2))) 587.84/148.12 , U43(tt()) -> tt() 587.84/148.12 , U51(tt(), V1, V2) -> U52(isNeList(activate(V1)), activate(V2)) 587.84/148.12 , U52(tt(), V2) -> U53(isList(activate(V2))) 587.84/148.12 , U53(tt()) -> tt() 587.84/148.12 , and(X1, X2) -> n__and(X1, X2) 587.84/148.12 , and(tt(), X) -> activate(X) 587.84/148.12 , isPalListKind(X) -> n__isPalListKind(X) 587.84/148.12 , isPalListKind(n__nil()) -> tt() 587.84/148.12 , isPalListKind(n____(V1, V2)) -> 587.84/148.12 and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.84/148.12 , isPalListKind(n__a()) -> tt() 587.84/148.12 , isPalListKind(n__e()) -> tt() 587.84/148.12 , isPalListKind(n__i()) -> tt() 587.84/148.12 , isPalListKind(n__o()) -> tt() 587.84/148.12 , isPalListKind(n__u()) -> tt() 587.84/148.12 , a() -> n__a() 587.84/148.12 , e() -> n__e() 587.84/148.12 , i() -> n__i() 587.84/148.12 , o() -> n__o() 587.84/148.12 , u() -> n__u() } 587.84/148.12 StartTerms: basic terms 587.84/148.12 Strategy: innermost 587.84/148.12 587.84/148.12 This problem was proven YES(O(1),O(n^2)). 587.84/148.12 587.84/148.12 S) Strict DPs: 587.84/148.12 { U11^#(tt(), V) -> c_1(isNeList^#(activate(V)), activate^#(V)) 587.84/148.12 , isNeList^#(V) -> 587.84/148.12 c_2(U31^#(isPalListKind(activate(V)), activate(V)), 587.84/148.12 isPalListKind^#(activate(V)), 587.84/148.12 activate^#(V), 587.84/148.12 activate^#(V)) 587.84/148.12 , isNeList^#(n____(V1, V2)) -> 587.84/148.12 c_3(U41^#(and(isPalListKind(activate(V1)), 587.84/148.12 n__isPalListKind(activate(V2))), 587.84/148.12 activate(V1), 587.84/148.12 activate(V2)), 587.84/148.12 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.12 isPalListKind^#(activate(V1)), 587.84/148.12 activate^#(V1), 587.84/148.12 activate^#(V2), 587.84/148.12 activate^#(V1), 587.84/148.12 activate^#(V2)) 587.84/148.12 , isNeList^#(n____(V1, V2)) -> 587.84/148.12 c_4(U51^#(and(isPalListKind(activate(V1)), 587.84/148.12 n__isPalListKind(activate(V2))), 587.84/148.12 activate(V1), 587.84/148.12 activate(V2)), 587.84/148.12 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.12 isPalListKind^#(activate(V1)), 587.84/148.12 activate^#(V1), 587.84/148.12 activate^#(V2), 587.84/148.12 activate^#(V1), 587.84/148.12 activate^#(V2)) 587.84/148.12 , U31^#(tt(), V) -> c_7(activate^#(V)) 587.84/148.12 , U41^#(tt(), V1, V2) -> 587.84/148.12 c_9(U42^#(isList(activate(V1)), activate(V2)), 587.84/148.12 isList^#(activate(V1)), 587.84/148.12 activate^#(V1), 587.84/148.12 activate^#(V2)) 587.84/148.12 , U51^#(tt(), V1, V2) -> 587.84/148.12 c_11(U52^#(isNeList(activate(V1)), activate(V2)), 587.84/148.12 isNeList^#(activate(V1)), 587.84/148.12 activate^#(V1), 587.84/148.12 activate^#(V2)) 587.84/148.12 , U21^#(tt(), V1, V2) -> 587.84/148.12 c_12(U22^#(isList(activate(V1)), activate(V2)), 587.84/148.12 isList^#(activate(V1)), 587.84/148.12 activate^#(V1), 587.84/148.12 activate^#(V2)) 587.84/148.12 , U22^#(tt(), V2) -> c_13(isList^#(activate(V2)), activate^#(V2)) 587.84/148.12 , isList^#(V) -> 587.84/148.12 c_14(U11^#(isPalListKind(activate(V)), activate(V)), 587.84/148.12 isPalListKind^#(activate(V)), 587.84/148.12 activate^#(V), 587.84/148.12 activate^#(V)) 587.84/148.12 , isList^#(n____(V1, V2)) -> 587.84/148.12 c_15(U21^#(and(isPalListKind(activate(V1)), 587.84/148.12 n__isPalListKind(activate(V2))), 587.84/148.12 activate(V1), 587.84/148.12 activate(V2)), 587.84/148.12 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.12 isPalListKind^#(activate(V1)), 587.84/148.12 activate^#(V1), 587.84/148.12 activate^#(V2), 587.84/148.12 activate^#(V1), 587.84/148.12 activate^#(V2)) 587.84/148.12 , U42^#(tt(), V2) -> c_16(isNeList^#(activate(V2)), activate^#(V2)) 587.84/148.12 , U52^#(tt(), V2) -> c_17(isList^#(activate(V2)), activate^#(V2)) } 587.84/148.12 Weak DPs: 587.84/148.12 { activate^#(n__isPalListKind(X)) -> c_5(isPalListKind^#(X)) 587.84/148.12 , activate^#(n__and(X1, X2)) -> c_6(and^#(X1, X2)) 587.84/148.12 , isPalListKind^#(n____(V1, V2)) -> 587.84/148.12 c_8(and^#(isPalListKind(activate(V1)), 587.84/148.12 n__isPalListKind(activate(V2))), 587.84/148.12 isPalListKind^#(activate(V1)), 587.84/148.12 activate^#(V1), 587.84/148.12 activate^#(V2)) 587.84/148.12 , and^#(tt(), X) -> c_10(activate^#(X)) 587.84/148.12 , U61^#(tt(), V) -> c_18(activate^#(V)) 587.84/148.12 , U71^#(tt(), V) -> c_19(isNePal^#(activate(V)), activate^#(V)) 587.84/148.12 , isNePal^#(V) -> 587.84/148.12 c_20(U61^#(isPalListKind(activate(V)), activate(V)), 587.84/148.12 isPalListKind^#(activate(V)), 587.84/148.12 activate^#(V), 587.84/148.12 activate^#(V)) 587.84/148.12 , isPal^#(V) -> 587.84/148.12 c_21(U71^#(isPalListKind(activate(V)), activate(V)), 587.84/148.12 isPalListKind^#(activate(V)), 587.84/148.12 activate^#(V), 587.84/148.12 activate^#(V)) } 587.84/148.12 Weak Trs: 587.84/148.12 { __(X1, X2) -> n____(X1, X2) 587.84/148.12 , nil() -> n__nil() 587.84/148.12 , U11(tt(), V) -> U12(isNeList(activate(V))) 587.84/148.12 , U12(tt()) -> tt() 587.84/148.12 , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) 587.84/148.12 , isNeList(n____(V1, V2)) -> 587.84/148.12 U41(and(isPalListKind(activate(V1)), 587.84/148.12 n__isPalListKind(activate(V2))), 587.84/148.12 activate(V1), 587.84/148.12 activate(V2)) 587.84/148.12 , isNeList(n____(V1, V2)) -> 587.84/148.12 U51(and(isPalListKind(activate(V1)), 587.84/148.12 n__isPalListKind(activate(V2))), 587.84/148.12 activate(V1), 587.84/148.12 activate(V2)) 587.84/148.12 , activate(X) -> X 587.84/148.12 , activate(n__nil()) -> nil() 587.84/148.12 , activate(n____(X1, X2)) -> __(X1, X2) 587.84/148.12 , activate(n__isPalListKind(X)) -> isPalListKind(X) 587.84/148.12 , activate(n__and(X1, X2)) -> and(X1, X2) 587.84/148.12 , activate(n__a()) -> a() 587.84/148.12 , activate(n__e()) -> e() 587.84/148.12 , activate(n__i()) -> i() 587.84/148.12 , activate(n__o()) -> o() 587.84/148.12 , activate(n__u()) -> u() 587.84/148.12 , U21(tt(), V1, V2) -> U22(isList(activate(V1)), activate(V2)) 587.84/148.12 , U22(tt(), V2) -> U23(isList(activate(V2))) 587.84/148.12 , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) 587.84/148.12 , isList(n__nil()) -> tt() 587.84/148.12 , isList(n____(V1, V2)) -> 587.84/148.12 U21(and(isPalListKind(activate(V1)), 587.84/148.12 n__isPalListKind(activate(V2))), 587.84/148.12 activate(V1), 587.84/148.12 activate(V2)) 587.84/148.12 , U23(tt()) -> tt() 587.84/148.12 , U31(tt(), V) -> U32(isQid(activate(V))) 587.84/148.12 , U32(tt()) -> tt() 587.84/148.12 , isQid(n__a()) -> tt() 587.84/148.12 , isQid(n__e()) -> tt() 587.84/148.12 , isQid(n__i()) -> tt() 587.84/148.12 , isQid(n__o()) -> tt() 587.84/148.12 , isQid(n__u()) -> tt() 587.84/148.12 , U41(tt(), V1, V2) -> U42(isList(activate(V1)), activate(V2)) 587.84/148.12 , U42(tt(), V2) -> U43(isNeList(activate(V2))) 587.84/148.12 , U43(tt()) -> tt() 587.84/148.12 , U51(tt(), V1, V2) -> U52(isNeList(activate(V1)), activate(V2)) 587.84/148.12 , U52(tt(), V2) -> U53(isList(activate(V2))) 587.84/148.12 , U53(tt()) -> tt() 587.84/148.12 , and(X1, X2) -> n__and(X1, X2) 587.84/148.12 , and(tt(), X) -> activate(X) 587.84/148.12 , isPalListKind(X) -> n__isPalListKind(X) 587.84/148.12 , isPalListKind(n__nil()) -> tt() 587.84/148.12 , isPalListKind(n____(V1, V2)) -> 587.84/148.12 and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.84/148.12 , isPalListKind(n__a()) -> tt() 587.84/148.12 , isPalListKind(n__e()) -> tt() 587.84/148.12 , isPalListKind(n__i()) -> tt() 587.84/148.12 , isPalListKind(n__o()) -> tt() 587.84/148.12 , isPalListKind(n__u()) -> tt() 587.84/148.12 , a() -> n__a() 587.84/148.12 , e() -> n__e() 587.84/148.12 , i() -> n__i() 587.84/148.12 , o() -> n__o() 587.84/148.12 , u() -> n__u() } 587.84/148.12 StartTerms: basic terms 587.84/148.12 Strategy: innermost 587.84/148.12 587.84/148.12 This problem was proven YES(O(1),O(n^1)). 587.84/148.12 587.84/148.12 587.84/148.12 Proofs for generated problems: 587.84/148.12 ------------------------------ 587.84/148.12 R) We are left with following problem, upon which TcT provides the 587.84/148.12 certificate YES(O(1),O(n^2)). 587.84/148.12 587.84/148.12 Strict DPs: 587.84/148.12 { activate^#(n__isPalListKind(X)) -> c_5(isPalListKind^#(X)) 587.84/148.12 , activate^#(n__and(X1, X2)) -> c_6(and^#(X1, X2)) 587.84/148.12 , isPalListKind^#(n____(V1, V2)) -> 587.84/148.12 c_8(and^#(isPalListKind(activate(V1)), 587.84/148.12 n__isPalListKind(activate(V2))), 587.84/148.12 isPalListKind^#(activate(V1)), 587.84/148.12 activate^#(V1), 587.84/148.12 activate^#(V2)) 587.84/148.12 , and^#(tt(), X) -> c_10(activate^#(X)) 587.84/148.12 , U61^#(tt(), V) -> c_18(activate^#(V)) 587.84/148.12 , U71^#(tt(), V) -> c_19(isNePal^#(activate(V)), activate^#(V)) 587.84/148.12 , isNePal^#(V) -> 587.84/148.12 c_20(U61^#(isPalListKind(activate(V)), activate(V)), 587.84/148.12 isPalListKind^#(activate(V)), 587.84/148.12 activate^#(V), 587.84/148.12 activate^#(V)) 587.84/148.12 , isPal^#(V) -> 587.84/148.12 c_21(U71^#(isPalListKind(activate(V)), activate(V)), 587.84/148.12 isPalListKind^#(activate(V)), 587.84/148.12 activate^#(V), 587.84/148.12 activate^#(V)) } 587.84/148.12 Weak DPs: 587.84/148.12 { U11^#(tt(), V) -> c_1(isNeList^#(activate(V)), activate^#(V)) 587.84/148.12 , isNeList^#(V) -> 587.84/148.12 c_2(U31^#(isPalListKind(activate(V)), activate(V)), 587.84/148.12 isPalListKind^#(activate(V)), 587.84/148.12 activate^#(V), 587.84/148.12 activate^#(V)) 587.84/148.12 , isNeList^#(n____(V1, V2)) -> 587.84/148.12 c_3(U41^#(and(isPalListKind(activate(V1)), 587.84/148.12 n__isPalListKind(activate(V2))), 587.84/148.12 activate(V1), 587.84/148.12 activate(V2)), 587.84/148.12 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.12 isPalListKind^#(activate(V1)), 587.84/148.12 activate^#(V1), 587.84/148.12 activate^#(V2), 587.84/148.12 activate^#(V1), 587.84/148.12 activate^#(V2)) 587.84/148.12 , isNeList^#(n____(V1, V2)) -> 587.84/148.12 c_4(U51^#(and(isPalListKind(activate(V1)), 587.84/148.12 n__isPalListKind(activate(V2))), 587.84/148.12 activate(V1), 587.84/148.12 activate(V2)), 587.84/148.12 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.12 isPalListKind^#(activate(V1)), 587.84/148.12 activate^#(V1), 587.84/148.12 activate^#(V2), 587.84/148.12 activate^#(V1), 587.84/148.12 activate^#(V2)) 587.84/148.12 , U31^#(tt(), V) -> c_7(activate^#(V)) 587.84/148.12 , U41^#(tt(), V1, V2) -> 587.84/148.12 c_9(U42^#(isList(activate(V1)), activate(V2)), 587.84/148.12 isList^#(activate(V1)), 587.84/148.12 activate^#(V1), 587.84/148.12 activate^#(V2)) 587.84/148.12 , U51^#(tt(), V1, V2) -> 587.84/148.12 c_11(U52^#(isNeList(activate(V1)), activate(V2)), 587.84/148.12 isNeList^#(activate(V1)), 587.84/148.12 activate^#(V1), 587.84/148.12 activate^#(V2)) 587.84/148.12 , U21^#(tt(), V1, V2) -> 587.84/148.12 c_12(U22^#(isList(activate(V1)), activate(V2)), 587.84/148.12 isList^#(activate(V1)), 587.84/148.12 activate^#(V1), 587.84/148.12 activate^#(V2)) 587.84/148.12 , U22^#(tt(), V2) -> c_13(isList^#(activate(V2)), activate^#(V2)) 587.84/148.12 , isList^#(V) -> 587.84/148.12 c_14(U11^#(isPalListKind(activate(V)), activate(V)), 587.84/148.12 isPalListKind^#(activate(V)), 587.84/148.12 activate^#(V), 587.84/148.12 activate^#(V)) 587.84/148.12 , isList^#(n____(V1, V2)) -> 587.84/148.12 c_15(U21^#(and(isPalListKind(activate(V1)), 587.84/148.12 n__isPalListKind(activate(V2))), 587.84/148.12 activate(V1), 587.84/148.12 activate(V2)), 587.84/148.12 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.12 isPalListKind^#(activate(V1)), 587.84/148.12 activate^#(V1), 587.84/148.12 activate^#(V2), 587.84/148.12 activate^#(V1), 587.84/148.12 activate^#(V2)) 587.84/148.12 , U42^#(tt(), V2) -> c_16(isNeList^#(activate(V2)), activate^#(V2)) 587.84/148.12 , U52^#(tt(), V2) -> c_17(isList^#(activate(V2)), activate^#(V2)) } 587.84/148.12 Weak Trs: 587.84/148.12 { __(X1, X2) -> n____(X1, X2) 587.84/148.12 , nil() -> n__nil() 587.84/148.12 , U11(tt(), V) -> U12(isNeList(activate(V))) 587.84/148.12 , U12(tt()) -> tt() 587.84/148.12 , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) 587.84/148.12 , isNeList(n____(V1, V2)) -> 587.84/148.12 U41(and(isPalListKind(activate(V1)), 587.84/148.12 n__isPalListKind(activate(V2))), 587.84/148.12 activate(V1), 587.84/148.12 activate(V2)) 587.84/148.12 , isNeList(n____(V1, V2)) -> 587.84/148.12 U51(and(isPalListKind(activate(V1)), 587.84/148.12 n__isPalListKind(activate(V2))), 587.84/148.12 activate(V1), 587.84/148.12 activate(V2)) 587.84/148.12 , activate(X) -> X 587.84/148.12 , activate(n__nil()) -> nil() 587.84/148.12 , activate(n____(X1, X2)) -> __(X1, X2) 587.84/148.12 , activate(n__isPalListKind(X)) -> isPalListKind(X) 587.84/148.12 , activate(n__and(X1, X2)) -> and(X1, X2) 587.84/148.12 , activate(n__a()) -> a() 587.84/148.12 , activate(n__e()) -> e() 587.84/148.12 , activate(n__i()) -> i() 587.84/148.12 , activate(n__o()) -> o() 587.84/148.12 , activate(n__u()) -> u() 587.84/148.12 , U21(tt(), V1, V2) -> U22(isList(activate(V1)), activate(V2)) 587.84/148.12 , U22(tt(), V2) -> U23(isList(activate(V2))) 587.84/148.12 , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) 587.84/148.12 , isList(n__nil()) -> tt() 587.84/148.12 , isList(n____(V1, V2)) -> 587.84/148.12 U21(and(isPalListKind(activate(V1)), 587.84/148.12 n__isPalListKind(activate(V2))), 587.84/148.12 activate(V1), 587.84/148.12 activate(V2)) 587.84/148.12 , U23(tt()) -> tt() 587.84/148.12 , U31(tt(), V) -> U32(isQid(activate(V))) 587.84/148.12 , U32(tt()) -> tt() 587.84/148.12 , isQid(n__a()) -> tt() 587.84/148.12 , isQid(n__e()) -> tt() 587.84/148.12 , isQid(n__i()) -> tt() 587.84/148.12 , isQid(n__o()) -> tt() 587.84/148.12 , isQid(n__u()) -> tt() 587.84/148.12 , U41(tt(), V1, V2) -> U42(isList(activate(V1)), activate(V2)) 587.84/148.12 , U42(tt(), V2) -> U43(isNeList(activate(V2))) 587.84/148.12 , U43(tt()) -> tt() 587.84/148.12 , U51(tt(), V1, V2) -> U52(isNeList(activate(V1)), activate(V2)) 587.84/148.12 , U52(tt(), V2) -> U53(isList(activate(V2))) 587.84/148.12 , U53(tt()) -> tt() 587.84/148.12 , and(X1, X2) -> n__and(X1, X2) 587.84/148.12 , and(tt(), X) -> activate(X) 587.84/148.12 , isPalListKind(X) -> n__isPalListKind(X) 587.84/148.12 , isPalListKind(n__nil()) -> tt() 587.84/148.12 , isPalListKind(n____(V1, V2)) -> 587.84/148.12 and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.84/148.12 , isPalListKind(n__a()) -> tt() 587.84/148.12 , isPalListKind(n__e()) -> tt() 587.84/148.12 , isPalListKind(n__i()) -> tt() 587.84/148.12 , isPalListKind(n__o()) -> tt() 587.84/148.12 , isPalListKind(n__u()) -> tt() 587.84/148.12 , a() -> n__a() 587.84/148.12 , e() -> n__e() 587.84/148.12 , i() -> n__i() 587.84/148.12 , o() -> n__o() 587.84/148.12 , u() -> n__u() } 587.84/148.12 Obligation: 587.84/148.12 innermost runtime complexity 587.84/148.12 Answer: 587.84/148.12 YES(O(1),O(n^2)) 587.84/148.12 587.84/148.12 We decompose the input problem according to the dependency graph 587.84/148.12 into the upper component 587.84/148.12 587.84/148.12 { U11^#(tt(), V) -> c_1(isNeList^#(activate(V)), activate^#(V)) 587.84/148.12 , isNeList^#(n____(V1, V2)) -> 587.84/148.12 c_3(U41^#(and(isPalListKind(activate(V1)), 587.84/148.12 n__isPalListKind(activate(V2))), 587.84/148.12 activate(V1), 587.84/148.12 activate(V2)), 587.84/148.12 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.12 isPalListKind^#(activate(V1)), 587.84/148.12 activate^#(V1), 587.84/148.12 activate^#(V2), 587.84/148.12 activate^#(V1), 587.84/148.12 activate^#(V2)) 587.84/148.12 , isNeList^#(n____(V1, V2)) -> 587.84/148.12 c_4(U51^#(and(isPalListKind(activate(V1)), 587.84/148.12 n__isPalListKind(activate(V2))), 587.84/148.12 activate(V1), 587.84/148.12 activate(V2)), 587.84/148.12 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.13 isPalListKind^#(activate(V1)), 587.84/148.13 activate^#(V1), 587.84/148.13 activate^#(V2), 587.84/148.13 activate^#(V1), 587.84/148.13 activate^#(V2)) 587.84/148.13 , U41^#(tt(), V1, V2) -> 587.84/148.13 c_9(U42^#(isList(activate(V1)), activate(V2)), 587.84/148.13 isList^#(activate(V1)), 587.84/148.13 activate^#(V1), 587.84/148.13 activate^#(V2)) 587.84/148.13 , U51^#(tt(), V1, V2) -> 587.84/148.13 c_11(U52^#(isNeList(activate(V1)), activate(V2)), 587.84/148.13 isNeList^#(activate(V1)), 587.84/148.13 activate^#(V1), 587.84/148.13 activate^#(V2)) 587.84/148.13 , U21^#(tt(), V1, V2) -> 587.84/148.13 c_12(U22^#(isList(activate(V1)), activate(V2)), 587.84/148.13 isList^#(activate(V1)), 587.84/148.13 activate^#(V1), 587.84/148.13 activate^#(V2)) 587.84/148.13 , U22^#(tt(), V2) -> c_13(isList^#(activate(V2)), activate^#(V2)) 587.84/148.13 , isList^#(V) -> 587.84/148.13 c_14(U11^#(isPalListKind(activate(V)), activate(V)), 587.84/148.13 isPalListKind^#(activate(V)), 587.84/148.13 activate^#(V), 587.84/148.13 activate^#(V)) 587.84/148.13 , isList^#(n____(V1, V2)) -> 587.84/148.13 c_15(U21^#(and(isPalListKind(activate(V1)), 587.84/148.13 n__isPalListKind(activate(V2))), 587.84/148.13 activate(V1), 587.84/148.13 activate(V2)), 587.84/148.13 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.13 isPalListKind^#(activate(V1)), 587.84/148.13 activate^#(V1), 587.84/148.13 activate^#(V2), 587.84/148.13 activate^#(V1), 587.84/148.13 activate^#(V2)) 587.84/148.13 , U42^#(tt(), V2) -> c_16(isNeList^#(activate(V2)), activate^#(V2)) 587.84/148.13 , U52^#(tt(), V2) -> c_17(isList^#(activate(V2)), activate^#(V2)) 587.84/148.13 , U61^#(tt(), V) -> c_18(activate^#(V)) 587.84/148.13 , U71^#(tt(), V) -> c_19(isNePal^#(activate(V)), activate^#(V)) 587.84/148.13 , isNePal^#(V) -> 587.84/148.13 c_20(U61^#(isPalListKind(activate(V)), activate(V)), 587.84/148.13 isPalListKind^#(activate(V)), 587.84/148.13 activate^#(V), 587.84/148.13 activate^#(V)) 587.84/148.13 , isPal^#(V) -> 587.84/148.13 c_21(U71^#(isPalListKind(activate(V)), activate(V)), 587.84/148.13 isPalListKind^#(activate(V)), 587.84/148.13 activate^#(V), 587.84/148.13 activate^#(V)) } 587.84/148.13 587.84/148.13 and lower component 587.84/148.13 587.84/148.13 { isNeList^#(V) -> 587.84/148.13 c_2(U31^#(isPalListKind(activate(V)), activate(V)), 587.84/148.13 isPalListKind^#(activate(V)), 587.84/148.13 activate^#(V), 587.84/148.13 activate^#(V)) 587.84/148.13 , activate^#(n__isPalListKind(X)) -> c_5(isPalListKind^#(X)) 587.84/148.13 , activate^#(n__and(X1, X2)) -> c_6(and^#(X1, X2)) 587.84/148.13 , U31^#(tt(), V) -> c_7(activate^#(V)) 587.84/148.13 , isPalListKind^#(n____(V1, V2)) -> 587.84/148.13 c_8(and^#(isPalListKind(activate(V1)), 587.84/148.13 n__isPalListKind(activate(V2))), 587.84/148.13 isPalListKind^#(activate(V1)), 587.84/148.13 activate^#(V1), 587.84/148.13 activate^#(V2)) 587.84/148.13 , and^#(tt(), X) -> c_10(activate^#(X)) } 587.84/148.13 587.84/148.13 Further, following extension rules are added to the lower 587.84/148.13 component. 587.84/148.13 587.84/148.13 { U11^#(tt(), V) -> isNeList^#(activate(V)) 587.84/148.13 , U11^#(tt(), V) -> activate^#(V) 587.84/148.13 , isNeList^#(n____(V1, V2)) -> activate^#(V1) 587.84/148.13 , isNeList^#(n____(V1, V2)) -> activate^#(V2) 587.84/148.13 , isNeList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1)) 587.84/148.13 , isNeList^#(n____(V1, V2)) -> 587.84/148.13 U41^#(and(isPalListKind(activate(V1)), 587.84/148.13 n__isPalListKind(activate(V2))), 587.84/148.13 activate(V1), 587.84/148.13 activate(V2)) 587.84/148.13 , isNeList^#(n____(V1, V2)) -> 587.84/148.13 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.84/148.13 , isNeList^#(n____(V1, V2)) -> 587.84/148.13 U51^#(and(isPalListKind(activate(V1)), 587.84/148.13 n__isPalListKind(activate(V2))), 587.84/148.13 activate(V1), 587.84/148.13 activate(V2)) 587.84/148.13 , U41^#(tt(), V1, V2) -> activate^#(V1) 587.84/148.13 , U41^#(tt(), V1, V2) -> activate^#(V2) 587.84/148.13 , U41^#(tt(), V1, V2) -> isList^#(activate(V1)) 587.84/148.13 , U41^#(tt(), V1, V2) -> U42^#(isList(activate(V1)), activate(V2)) 587.84/148.13 , U51^#(tt(), V1, V2) -> isNeList^#(activate(V1)) 587.84/148.13 , U51^#(tt(), V1, V2) -> activate^#(V1) 587.84/148.13 , U51^#(tt(), V1, V2) -> activate^#(V2) 587.84/148.13 , U51^#(tt(), V1, V2) -> 587.84/148.13 U52^#(isNeList(activate(V1)), activate(V2)) 587.84/148.13 , U21^#(tt(), V1, V2) -> activate^#(V1) 587.84/148.13 , U21^#(tt(), V1, V2) -> activate^#(V2) 587.84/148.13 , U21^#(tt(), V1, V2) -> U22^#(isList(activate(V1)), activate(V2)) 587.84/148.13 , U21^#(tt(), V1, V2) -> isList^#(activate(V1)) 587.84/148.13 , U22^#(tt(), V2) -> activate^#(V2) 587.84/148.13 , U22^#(tt(), V2) -> isList^#(activate(V2)) 587.84/148.13 , isList^#(V) -> U11^#(isPalListKind(activate(V)), activate(V)) 587.84/148.13 , isList^#(V) -> activate^#(V) 587.84/148.13 , isList^#(V) -> isPalListKind^#(activate(V)) 587.84/148.13 , isList^#(n____(V1, V2)) -> activate^#(V1) 587.84/148.13 , isList^#(n____(V1, V2)) -> activate^#(V2) 587.84/148.13 , isList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1)) 587.84/148.13 , isList^#(n____(V1, V2)) -> 587.84/148.13 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.84/148.13 , isList^#(n____(V1, V2)) -> 587.84/148.13 U21^#(and(isPalListKind(activate(V1)), 587.84/148.13 n__isPalListKind(activate(V2))), 587.84/148.13 activate(V1), 587.84/148.13 activate(V2)) 587.84/148.13 , U42^#(tt(), V2) -> isNeList^#(activate(V2)) 587.84/148.13 , U42^#(tt(), V2) -> activate^#(V2) 587.84/148.13 , U52^#(tt(), V2) -> activate^#(V2) 587.84/148.13 , U52^#(tt(), V2) -> isList^#(activate(V2)) 587.84/148.13 , U61^#(tt(), V) -> activate^#(V) 587.84/148.13 , U71^#(tt(), V) -> activate^#(V) 587.84/148.13 , U71^#(tt(), V) -> isNePal^#(activate(V)) 587.84/148.13 , isNePal^#(V) -> activate^#(V) 587.84/148.13 , isNePal^#(V) -> isPalListKind^#(activate(V)) 587.84/148.13 , isNePal^#(V) -> U61^#(isPalListKind(activate(V)), activate(V)) 587.84/148.13 , isPal^#(V) -> activate^#(V) 587.84/148.13 , isPal^#(V) -> isPalListKind^#(activate(V)) 587.84/148.13 , isPal^#(V) -> U71^#(isPalListKind(activate(V)), activate(V)) } 587.84/148.13 587.84/148.13 TcT solves the upper component with certificate YES(O(1),O(n^1)). 587.84/148.13 587.84/148.13 Sub-proof: 587.84/148.13 ---------- 587.84/148.13 We are left with following problem, upon which TcT provides the 587.84/148.13 certificate YES(O(1),O(n^1)). 587.84/148.13 587.84/148.13 Strict DPs: 587.84/148.13 { U11^#(tt(), V) -> c_1(isNeList^#(activate(V)), activate^#(V)) 587.84/148.13 , isNeList^#(n____(V1, V2)) -> 587.84/148.13 c_3(U41^#(and(isPalListKind(activate(V1)), 587.84/148.13 n__isPalListKind(activate(V2))), 587.84/148.13 activate(V1), 587.84/148.13 activate(V2)), 587.84/148.13 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.13 isPalListKind^#(activate(V1)), 587.84/148.13 activate^#(V1), 587.84/148.13 activate^#(V2), 587.84/148.13 activate^#(V1), 587.84/148.13 activate^#(V2)) 587.84/148.13 , isNeList^#(n____(V1, V2)) -> 587.84/148.13 c_4(U51^#(and(isPalListKind(activate(V1)), 587.84/148.13 n__isPalListKind(activate(V2))), 587.84/148.13 activate(V1), 587.84/148.13 activate(V2)), 587.84/148.13 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.13 isPalListKind^#(activate(V1)), 587.84/148.13 activate^#(V1), 587.84/148.13 activate^#(V2), 587.84/148.13 activate^#(V1), 587.84/148.13 activate^#(V2)) 587.84/148.13 , U41^#(tt(), V1, V2) -> 587.84/148.13 c_9(U42^#(isList(activate(V1)), activate(V2)), 587.84/148.13 isList^#(activate(V1)), 587.84/148.13 activate^#(V1), 587.84/148.13 activate^#(V2)) 587.84/148.13 , U51^#(tt(), V1, V2) -> 587.84/148.13 c_11(U52^#(isNeList(activate(V1)), activate(V2)), 587.84/148.13 isNeList^#(activate(V1)), 587.84/148.13 activate^#(V1), 587.84/148.13 activate^#(V2)) 587.84/148.13 , U21^#(tt(), V1, V2) -> 587.84/148.13 c_12(U22^#(isList(activate(V1)), activate(V2)), 587.84/148.13 isList^#(activate(V1)), 587.84/148.13 activate^#(V1), 587.84/148.13 activate^#(V2)) 587.84/148.13 , U22^#(tt(), V2) -> c_13(isList^#(activate(V2)), activate^#(V2)) 587.84/148.13 , isList^#(V) -> 587.84/148.13 c_14(U11^#(isPalListKind(activate(V)), activate(V)), 587.84/148.13 isPalListKind^#(activate(V)), 587.84/148.13 activate^#(V), 587.84/148.13 activate^#(V)) 587.84/148.13 , isList^#(n____(V1, V2)) -> 587.84/148.13 c_15(U21^#(and(isPalListKind(activate(V1)), 587.84/148.13 n__isPalListKind(activate(V2))), 587.84/148.13 activate(V1), 587.84/148.13 activate(V2)), 587.84/148.13 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.13 isPalListKind^#(activate(V1)), 587.84/148.13 activate^#(V1), 587.84/148.13 activate^#(V2), 587.84/148.13 activate^#(V1), 587.84/148.13 activate^#(V2)) 587.84/148.13 , U42^#(tt(), V2) -> c_16(isNeList^#(activate(V2)), activate^#(V2)) 587.84/148.13 , U52^#(tt(), V2) -> c_17(isList^#(activate(V2)), activate^#(V2)) 587.84/148.13 , U61^#(tt(), V) -> c_18(activate^#(V)) 587.84/148.13 , U71^#(tt(), V) -> c_19(isNePal^#(activate(V)), activate^#(V)) 587.84/148.13 , isNePal^#(V) -> 587.84/148.13 c_20(U61^#(isPalListKind(activate(V)), activate(V)), 587.84/148.13 isPalListKind^#(activate(V)), 587.84/148.13 activate^#(V), 587.84/148.13 activate^#(V)) 587.84/148.13 , isPal^#(V) -> 587.84/148.13 c_21(U71^#(isPalListKind(activate(V)), activate(V)), 587.84/148.13 isPalListKind^#(activate(V)), 587.84/148.13 activate^#(V), 587.84/148.13 activate^#(V)) } 587.84/148.13 Weak Trs: 587.84/148.13 { __(X1, X2) -> n____(X1, X2) 587.84/148.13 , nil() -> n__nil() 587.84/148.13 , U11(tt(), V) -> U12(isNeList(activate(V))) 587.84/148.13 , U12(tt()) -> tt() 587.84/148.13 , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) 587.84/148.13 , isNeList(n____(V1, V2)) -> 587.84/148.13 U41(and(isPalListKind(activate(V1)), 587.84/148.13 n__isPalListKind(activate(V2))), 587.84/148.13 activate(V1), 587.84/148.13 activate(V2)) 587.84/148.13 , isNeList(n____(V1, V2)) -> 587.84/148.13 U51(and(isPalListKind(activate(V1)), 587.84/148.13 n__isPalListKind(activate(V2))), 587.84/148.13 activate(V1), 587.84/148.13 activate(V2)) 587.84/148.13 , activate(X) -> X 587.84/148.13 , activate(n__nil()) -> nil() 587.84/148.13 , activate(n____(X1, X2)) -> __(X1, X2) 587.84/148.13 , activate(n__isPalListKind(X)) -> isPalListKind(X) 587.84/148.13 , activate(n__and(X1, X2)) -> and(X1, X2) 587.84/148.13 , activate(n__a()) -> a() 587.84/148.13 , activate(n__e()) -> e() 587.84/148.13 , activate(n__i()) -> i() 587.84/148.13 , activate(n__o()) -> o() 587.84/148.13 , activate(n__u()) -> u() 587.84/148.13 , U21(tt(), V1, V2) -> U22(isList(activate(V1)), activate(V2)) 587.84/148.13 , U22(tt(), V2) -> U23(isList(activate(V2))) 587.84/148.13 , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) 587.84/148.13 , isList(n__nil()) -> tt() 587.84/148.13 , isList(n____(V1, V2)) -> 587.84/148.13 U21(and(isPalListKind(activate(V1)), 587.84/148.13 n__isPalListKind(activate(V2))), 587.84/148.13 activate(V1), 587.84/148.13 activate(V2)) 587.84/148.13 , U23(tt()) -> tt() 587.84/148.13 , U31(tt(), V) -> U32(isQid(activate(V))) 587.84/148.13 , U32(tt()) -> tt() 587.84/148.13 , isQid(n__a()) -> tt() 587.84/148.13 , isQid(n__e()) -> tt() 587.84/148.13 , isQid(n__i()) -> tt() 587.84/148.13 , isQid(n__o()) -> tt() 587.84/148.13 , isQid(n__u()) -> tt() 587.84/148.13 , U41(tt(), V1, V2) -> U42(isList(activate(V1)), activate(V2)) 587.84/148.13 , U42(tt(), V2) -> U43(isNeList(activate(V2))) 587.84/148.13 , U43(tt()) -> tt() 587.84/148.13 , U51(tt(), V1, V2) -> U52(isNeList(activate(V1)), activate(V2)) 587.84/148.13 , U52(tt(), V2) -> U53(isList(activate(V2))) 587.84/148.13 , U53(tt()) -> tt() 587.84/148.13 , and(X1, X2) -> n__and(X1, X2) 587.84/148.13 , and(tt(), X) -> activate(X) 587.84/148.13 , isPalListKind(X) -> n__isPalListKind(X) 587.84/148.13 , isPalListKind(n__nil()) -> tt() 587.84/148.13 , isPalListKind(n____(V1, V2)) -> 587.84/148.13 and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.84/148.13 , isPalListKind(n__a()) -> tt() 587.84/148.13 , isPalListKind(n__e()) -> tt() 587.84/148.13 , isPalListKind(n__i()) -> tt() 587.84/148.13 , isPalListKind(n__o()) -> tt() 587.84/148.13 , isPalListKind(n__u()) -> tt() 587.84/148.13 , a() -> n__a() 587.84/148.13 , e() -> n__e() 587.84/148.13 , i() -> n__i() 587.84/148.13 , o() -> n__o() 587.84/148.13 , u() -> n__u() } 587.84/148.13 Obligation: 587.84/148.13 innermost runtime complexity 587.84/148.13 Answer: 587.84/148.13 YES(O(1),O(n^1)) 587.84/148.13 587.84/148.13 We estimate the number of application of {12} by applications of 587.84/148.13 Pre({12}) = {14}. Here rules are labeled as follows: 587.84/148.13 587.84/148.13 DPs: 587.84/148.13 { 1: U11^#(tt(), V) -> c_1(isNeList^#(activate(V)), activate^#(V)) 587.84/148.13 , 2: isNeList^#(n____(V1, V2)) -> 587.84/148.13 c_3(U41^#(and(isPalListKind(activate(V1)), 587.84/148.13 n__isPalListKind(activate(V2))), 587.84/148.13 activate(V1), 587.84/148.13 activate(V2)), 587.84/148.13 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.13 isPalListKind^#(activate(V1)), 587.84/148.13 activate^#(V1), 587.84/148.13 activate^#(V2), 587.84/148.13 activate^#(V1), 587.84/148.13 activate^#(V2)) 587.84/148.13 , 3: isNeList^#(n____(V1, V2)) -> 587.84/148.13 c_4(U51^#(and(isPalListKind(activate(V1)), 587.84/148.13 n__isPalListKind(activate(V2))), 587.84/148.13 activate(V1), 587.84/148.13 activate(V2)), 587.84/148.13 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.13 isPalListKind^#(activate(V1)), 587.84/148.13 activate^#(V1), 587.84/148.13 activate^#(V2), 587.84/148.13 activate^#(V1), 587.84/148.13 activate^#(V2)) 587.84/148.13 , 4: U41^#(tt(), V1, V2) -> 587.84/148.13 c_9(U42^#(isList(activate(V1)), activate(V2)), 587.84/148.13 isList^#(activate(V1)), 587.84/148.13 activate^#(V1), 587.84/148.13 activate^#(V2)) 587.84/148.13 , 5: U51^#(tt(), V1, V2) -> 587.84/148.13 c_11(U52^#(isNeList(activate(V1)), activate(V2)), 587.84/148.13 isNeList^#(activate(V1)), 587.84/148.13 activate^#(V1), 587.84/148.13 activate^#(V2)) 587.84/148.13 , 6: U21^#(tt(), V1, V2) -> 587.84/148.13 c_12(U22^#(isList(activate(V1)), activate(V2)), 587.84/148.13 isList^#(activate(V1)), 587.84/148.13 activate^#(V1), 587.84/148.13 activate^#(V2)) 587.84/148.13 , 7: U22^#(tt(), V2) -> 587.84/148.13 c_13(isList^#(activate(V2)), activate^#(V2)) 587.84/148.13 , 8: isList^#(V) -> 587.84/148.13 c_14(U11^#(isPalListKind(activate(V)), activate(V)), 587.84/148.13 isPalListKind^#(activate(V)), 587.84/148.13 activate^#(V), 587.84/148.13 activate^#(V)) 587.84/148.13 , 9: isList^#(n____(V1, V2)) -> 587.84/148.13 c_15(U21^#(and(isPalListKind(activate(V1)), 587.84/148.13 n__isPalListKind(activate(V2))), 587.84/148.13 activate(V1), 587.84/148.13 activate(V2)), 587.84/148.13 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.13 isPalListKind^#(activate(V1)), 587.84/148.13 activate^#(V1), 587.84/148.13 activate^#(V2), 587.84/148.13 activate^#(V1), 587.84/148.13 activate^#(V2)) 587.84/148.13 , 10: U42^#(tt(), V2) -> 587.84/148.13 c_16(isNeList^#(activate(V2)), activate^#(V2)) 587.84/148.13 , 11: U52^#(tt(), V2) -> 587.84/148.13 c_17(isList^#(activate(V2)), activate^#(V2)) 587.84/148.13 , 12: U61^#(tt(), V) -> c_18(activate^#(V)) 587.84/148.13 , 13: U71^#(tt(), V) -> c_19(isNePal^#(activate(V)), activate^#(V)) 587.84/148.13 , 14: isNePal^#(V) -> 587.84/148.13 c_20(U61^#(isPalListKind(activate(V)), activate(V)), 587.84/148.13 isPalListKind^#(activate(V)), 587.84/148.13 activate^#(V), 587.84/148.13 activate^#(V)) 587.84/148.13 , 15: isPal^#(V) -> 587.84/148.13 c_21(U71^#(isPalListKind(activate(V)), activate(V)), 587.84/148.13 isPalListKind^#(activate(V)), 587.84/148.13 activate^#(V), 587.84/148.13 activate^#(V)) } 587.84/148.13 587.84/148.13 We are left with following problem, upon which TcT provides the 587.84/148.13 certificate YES(O(1),O(n^1)). 587.84/148.13 587.84/148.13 Strict DPs: 587.84/148.13 { U11^#(tt(), V) -> c_1(isNeList^#(activate(V)), activate^#(V)) 587.84/148.13 , isNeList^#(n____(V1, V2)) -> 587.84/148.13 c_3(U41^#(and(isPalListKind(activate(V1)), 587.84/148.13 n__isPalListKind(activate(V2))), 587.84/148.13 activate(V1), 587.84/148.13 activate(V2)), 587.84/148.13 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.13 isPalListKind^#(activate(V1)), 587.84/148.13 activate^#(V1), 587.84/148.13 activate^#(V2), 587.84/148.13 activate^#(V1), 587.84/148.13 activate^#(V2)) 587.84/148.13 , isNeList^#(n____(V1, V2)) -> 587.84/148.13 c_4(U51^#(and(isPalListKind(activate(V1)), 587.84/148.13 n__isPalListKind(activate(V2))), 587.84/148.13 activate(V1), 587.84/148.13 activate(V2)), 587.84/148.13 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.13 isPalListKind^#(activate(V1)), 587.84/148.13 activate^#(V1), 587.84/148.13 activate^#(V2), 587.84/148.13 activate^#(V1), 587.84/148.13 activate^#(V2)) 587.84/148.13 , U41^#(tt(), V1, V2) -> 587.84/148.13 c_9(U42^#(isList(activate(V1)), activate(V2)), 587.84/148.13 isList^#(activate(V1)), 587.84/148.13 activate^#(V1), 587.84/148.13 activate^#(V2)) 587.84/148.13 , U51^#(tt(), V1, V2) -> 587.84/148.13 c_11(U52^#(isNeList(activate(V1)), activate(V2)), 587.84/148.13 isNeList^#(activate(V1)), 587.84/148.13 activate^#(V1), 587.84/148.13 activate^#(V2)) 587.84/148.13 , U21^#(tt(), V1, V2) -> 587.84/148.13 c_12(U22^#(isList(activate(V1)), activate(V2)), 587.84/148.13 isList^#(activate(V1)), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2)) 587.84/148.14 , U22^#(tt(), V2) -> c_13(isList^#(activate(V2)), activate^#(V2)) 587.84/148.14 , isList^#(V) -> 587.84/148.14 c_14(U11^#(isPalListKind(activate(V)), activate(V)), 587.84/148.14 isPalListKind^#(activate(V)), 587.84/148.14 activate^#(V), 587.84/148.14 activate^#(V)) 587.84/148.14 , isList^#(n____(V1, V2)) -> 587.84/148.14 c_15(U21^#(and(isPalListKind(activate(V1)), 587.84/148.14 n__isPalListKind(activate(V2))), 587.84/148.14 activate(V1), 587.84/148.14 activate(V2)), 587.84/148.14 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.14 isPalListKind^#(activate(V1)), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2)) 587.84/148.14 , U42^#(tt(), V2) -> c_16(isNeList^#(activate(V2)), activate^#(V2)) 587.84/148.14 , U52^#(tt(), V2) -> c_17(isList^#(activate(V2)), activate^#(V2)) 587.84/148.14 , U71^#(tt(), V) -> c_19(isNePal^#(activate(V)), activate^#(V)) 587.84/148.14 , isNePal^#(V) -> 587.84/148.14 c_20(U61^#(isPalListKind(activate(V)), activate(V)), 587.84/148.14 isPalListKind^#(activate(V)), 587.84/148.14 activate^#(V), 587.84/148.14 activate^#(V)) 587.84/148.14 , isPal^#(V) -> 587.84/148.14 c_21(U71^#(isPalListKind(activate(V)), activate(V)), 587.84/148.14 isPalListKind^#(activate(V)), 587.84/148.14 activate^#(V), 587.84/148.14 activate^#(V)) } 587.84/148.14 Weak DPs: { U61^#(tt(), V) -> c_18(activate^#(V)) } 587.84/148.14 Weak Trs: 587.84/148.14 { __(X1, X2) -> n____(X1, X2) 587.84/148.14 , nil() -> n__nil() 587.84/148.14 , U11(tt(), V) -> U12(isNeList(activate(V))) 587.84/148.14 , U12(tt()) -> tt() 587.84/148.14 , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) 587.84/148.14 , isNeList(n____(V1, V2)) -> 587.84/148.14 U41(and(isPalListKind(activate(V1)), 587.84/148.14 n__isPalListKind(activate(V2))), 587.84/148.14 activate(V1), 587.84/148.14 activate(V2)) 587.84/148.14 , isNeList(n____(V1, V2)) -> 587.84/148.14 U51(and(isPalListKind(activate(V1)), 587.84/148.14 n__isPalListKind(activate(V2))), 587.84/148.14 activate(V1), 587.84/148.14 activate(V2)) 587.84/148.14 , activate(X) -> X 587.84/148.14 , activate(n__nil()) -> nil() 587.84/148.14 , activate(n____(X1, X2)) -> __(X1, X2) 587.84/148.14 , activate(n__isPalListKind(X)) -> isPalListKind(X) 587.84/148.14 , activate(n__and(X1, X2)) -> and(X1, X2) 587.84/148.14 , activate(n__a()) -> a() 587.84/148.14 , activate(n__e()) -> e() 587.84/148.14 , activate(n__i()) -> i() 587.84/148.14 , activate(n__o()) -> o() 587.84/148.14 , activate(n__u()) -> u() 587.84/148.14 , U21(tt(), V1, V2) -> U22(isList(activate(V1)), activate(V2)) 587.84/148.14 , U22(tt(), V2) -> U23(isList(activate(V2))) 587.84/148.14 , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) 587.84/148.14 , isList(n__nil()) -> tt() 587.84/148.14 , isList(n____(V1, V2)) -> 587.84/148.14 U21(and(isPalListKind(activate(V1)), 587.84/148.14 n__isPalListKind(activate(V2))), 587.84/148.14 activate(V1), 587.84/148.14 activate(V2)) 587.84/148.14 , U23(tt()) -> tt() 587.84/148.14 , U31(tt(), V) -> U32(isQid(activate(V))) 587.84/148.14 , U32(tt()) -> tt() 587.84/148.14 , isQid(n__a()) -> tt() 587.84/148.14 , isQid(n__e()) -> tt() 587.84/148.14 , isQid(n__i()) -> tt() 587.84/148.14 , isQid(n__o()) -> tt() 587.84/148.14 , isQid(n__u()) -> tt() 587.84/148.14 , U41(tt(), V1, V2) -> U42(isList(activate(V1)), activate(V2)) 587.84/148.14 , U42(tt(), V2) -> U43(isNeList(activate(V2))) 587.84/148.14 , U43(tt()) -> tt() 587.84/148.14 , U51(tt(), V1, V2) -> U52(isNeList(activate(V1)), activate(V2)) 587.84/148.14 , U52(tt(), V2) -> U53(isList(activate(V2))) 587.84/148.14 , U53(tt()) -> tt() 587.84/148.14 , and(X1, X2) -> n__and(X1, X2) 587.84/148.14 , and(tt(), X) -> activate(X) 587.84/148.14 , isPalListKind(X) -> n__isPalListKind(X) 587.84/148.14 , isPalListKind(n__nil()) -> tt() 587.84/148.14 , isPalListKind(n____(V1, V2)) -> 587.84/148.14 and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.84/148.14 , isPalListKind(n__a()) -> tt() 587.84/148.14 , isPalListKind(n__e()) -> tt() 587.84/148.14 , isPalListKind(n__i()) -> tt() 587.84/148.14 , isPalListKind(n__o()) -> tt() 587.84/148.14 , isPalListKind(n__u()) -> tt() 587.84/148.14 , a() -> n__a() 587.84/148.14 , e() -> n__e() 587.84/148.14 , i() -> n__i() 587.84/148.14 , o() -> n__o() 587.84/148.14 , u() -> n__u() } 587.84/148.14 Obligation: 587.84/148.14 innermost runtime complexity 587.84/148.14 Answer: 587.84/148.14 YES(O(1),O(n^1)) 587.84/148.14 587.84/148.14 We estimate the number of application of {13} by applications of 587.84/148.14 Pre({13}) = {12}. Here rules are labeled as follows: 587.84/148.14 587.84/148.14 DPs: 587.84/148.14 { 1: U11^#(tt(), V) -> c_1(isNeList^#(activate(V)), activate^#(V)) 587.84/148.14 , 2: isNeList^#(n____(V1, V2)) -> 587.84/148.14 c_3(U41^#(and(isPalListKind(activate(V1)), 587.84/148.14 n__isPalListKind(activate(V2))), 587.84/148.14 activate(V1), 587.84/148.14 activate(V2)), 587.84/148.14 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.14 isPalListKind^#(activate(V1)), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2)) 587.84/148.14 , 3: isNeList^#(n____(V1, V2)) -> 587.84/148.14 c_4(U51^#(and(isPalListKind(activate(V1)), 587.84/148.14 n__isPalListKind(activate(V2))), 587.84/148.14 activate(V1), 587.84/148.14 activate(V2)), 587.84/148.14 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.14 isPalListKind^#(activate(V1)), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2)) 587.84/148.14 , 4: U41^#(tt(), V1, V2) -> 587.84/148.14 c_9(U42^#(isList(activate(V1)), activate(V2)), 587.84/148.14 isList^#(activate(V1)), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2)) 587.84/148.14 , 5: U51^#(tt(), V1, V2) -> 587.84/148.14 c_11(U52^#(isNeList(activate(V1)), activate(V2)), 587.84/148.14 isNeList^#(activate(V1)), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2)) 587.84/148.14 , 6: U21^#(tt(), V1, V2) -> 587.84/148.14 c_12(U22^#(isList(activate(V1)), activate(V2)), 587.84/148.14 isList^#(activate(V1)), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2)) 587.84/148.14 , 7: U22^#(tt(), V2) -> 587.84/148.14 c_13(isList^#(activate(V2)), activate^#(V2)) 587.84/148.14 , 8: isList^#(V) -> 587.84/148.14 c_14(U11^#(isPalListKind(activate(V)), activate(V)), 587.84/148.14 isPalListKind^#(activate(V)), 587.84/148.14 activate^#(V), 587.84/148.14 activate^#(V)) 587.84/148.14 , 9: isList^#(n____(V1, V2)) -> 587.84/148.14 c_15(U21^#(and(isPalListKind(activate(V1)), 587.84/148.14 n__isPalListKind(activate(V2))), 587.84/148.14 activate(V1), 587.84/148.14 activate(V2)), 587.84/148.14 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.14 isPalListKind^#(activate(V1)), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2)) 587.84/148.14 , 10: U42^#(tt(), V2) -> 587.84/148.14 c_16(isNeList^#(activate(V2)), activate^#(V2)) 587.84/148.14 , 11: U52^#(tt(), V2) -> 587.84/148.14 c_17(isList^#(activate(V2)), activate^#(V2)) 587.84/148.14 , 12: U71^#(tt(), V) -> c_19(isNePal^#(activate(V)), activate^#(V)) 587.84/148.14 , 13: isNePal^#(V) -> 587.84/148.14 c_20(U61^#(isPalListKind(activate(V)), activate(V)), 587.84/148.14 isPalListKind^#(activate(V)), 587.84/148.14 activate^#(V), 587.84/148.14 activate^#(V)) 587.84/148.14 , 14: isPal^#(V) -> 587.84/148.14 c_21(U71^#(isPalListKind(activate(V)), activate(V)), 587.84/148.14 isPalListKind^#(activate(V)), 587.84/148.14 activate^#(V), 587.84/148.14 activate^#(V)) 587.84/148.14 , 15: U61^#(tt(), V) -> c_18(activate^#(V)) } 587.84/148.14 587.84/148.14 We are left with following problem, upon which TcT provides the 587.84/148.14 certificate YES(O(1),O(n^1)). 587.84/148.14 587.84/148.14 Strict DPs: 587.84/148.14 { U11^#(tt(), V) -> c_1(isNeList^#(activate(V)), activate^#(V)) 587.84/148.14 , isNeList^#(n____(V1, V2)) -> 587.84/148.14 c_3(U41^#(and(isPalListKind(activate(V1)), 587.84/148.14 n__isPalListKind(activate(V2))), 587.84/148.14 activate(V1), 587.84/148.14 activate(V2)), 587.84/148.14 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.14 isPalListKind^#(activate(V1)), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2)) 587.84/148.14 , isNeList^#(n____(V1, V2)) -> 587.84/148.14 c_4(U51^#(and(isPalListKind(activate(V1)), 587.84/148.14 n__isPalListKind(activate(V2))), 587.84/148.14 activate(V1), 587.84/148.14 activate(V2)), 587.84/148.14 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.14 isPalListKind^#(activate(V1)), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2)) 587.84/148.14 , U41^#(tt(), V1, V2) -> 587.84/148.14 c_9(U42^#(isList(activate(V1)), activate(V2)), 587.84/148.14 isList^#(activate(V1)), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2)) 587.84/148.14 , U51^#(tt(), V1, V2) -> 587.84/148.14 c_11(U52^#(isNeList(activate(V1)), activate(V2)), 587.84/148.14 isNeList^#(activate(V1)), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2)) 587.84/148.14 , U21^#(tt(), V1, V2) -> 587.84/148.14 c_12(U22^#(isList(activate(V1)), activate(V2)), 587.84/148.14 isList^#(activate(V1)), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2)) 587.84/148.14 , U22^#(tt(), V2) -> c_13(isList^#(activate(V2)), activate^#(V2)) 587.84/148.14 , isList^#(V) -> 587.84/148.14 c_14(U11^#(isPalListKind(activate(V)), activate(V)), 587.84/148.14 isPalListKind^#(activate(V)), 587.84/148.14 activate^#(V), 587.84/148.14 activate^#(V)) 587.84/148.14 , isList^#(n____(V1, V2)) -> 587.84/148.14 c_15(U21^#(and(isPalListKind(activate(V1)), 587.84/148.14 n__isPalListKind(activate(V2))), 587.84/148.14 activate(V1), 587.84/148.14 activate(V2)), 587.84/148.14 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.14 isPalListKind^#(activate(V1)), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2)) 587.84/148.14 , U42^#(tt(), V2) -> c_16(isNeList^#(activate(V2)), activate^#(V2)) 587.84/148.14 , U52^#(tt(), V2) -> c_17(isList^#(activate(V2)), activate^#(V2)) 587.84/148.14 , U71^#(tt(), V) -> c_19(isNePal^#(activate(V)), activate^#(V)) 587.84/148.14 , isPal^#(V) -> 587.84/148.14 c_21(U71^#(isPalListKind(activate(V)), activate(V)), 587.84/148.14 isPalListKind^#(activate(V)), 587.84/148.14 activate^#(V), 587.84/148.14 activate^#(V)) } 587.84/148.14 Weak DPs: 587.84/148.14 { U61^#(tt(), V) -> c_18(activate^#(V)) 587.84/148.14 , isNePal^#(V) -> 587.84/148.14 c_20(U61^#(isPalListKind(activate(V)), activate(V)), 587.84/148.14 isPalListKind^#(activate(V)), 587.84/148.14 activate^#(V), 587.84/148.14 activate^#(V)) } 587.84/148.14 Weak Trs: 587.84/148.14 { __(X1, X2) -> n____(X1, X2) 587.84/148.14 , nil() -> n__nil() 587.84/148.14 , U11(tt(), V) -> U12(isNeList(activate(V))) 587.84/148.14 , U12(tt()) -> tt() 587.84/148.14 , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) 587.84/148.14 , isNeList(n____(V1, V2)) -> 587.84/148.14 U41(and(isPalListKind(activate(V1)), 587.84/148.14 n__isPalListKind(activate(V2))), 587.84/148.14 activate(V1), 587.84/148.14 activate(V2)) 587.84/148.14 , isNeList(n____(V1, V2)) -> 587.84/148.14 U51(and(isPalListKind(activate(V1)), 587.84/148.14 n__isPalListKind(activate(V2))), 587.84/148.14 activate(V1), 587.84/148.14 activate(V2)) 587.84/148.14 , activate(X) -> X 587.84/148.14 , activate(n__nil()) -> nil() 587.84/148.14 , activate(n____(X1, X2)) -> __(X1, X2) 587.84/148.14 , activate(n__isPalListKind(X)) -> isPalListKind(X) 587.84/148.14 , activate(n__and(X1, X2)) -> and(X1, X2) 587.84/148.14 , activate(n__a()) -> a() 587.84/148.14 , activate(n__e()) -> e() 587.84/148.14 , activate(n__i()) -> i() 587.84/148.14 , activate(n__o()) -> o() 587.84/148.14 , activate(n__u()) -> u() 587.84/148.14 , U21(tt(), V1, V2) -> U22(isList(activate(V1)), activate(V2)) 587.84/148.14 , U22(tt(), V2) -> U23(isList(activate(V2))) 587.84/148.14 , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) 587.84/148.14 , isList(n__nil()) -> tt() 587.84/148.14 , isList(n____(V1, V2)) -> 587.84/148.14 U21(and(isPalListKind(activate(V1)), 587.84/148.14 n__isPalListKind(activate(V2))), 587.84/148.14 activate(V1), 587.84/148.14 activate(V2)) 587.84/148.14 , U23(tt()) -> tt() 587.84/148.14 , U31(tt(), V) -> U32(isQid(activate(V))) 587.84/148.14 , U32(tt()) -> tt() 587.84/148.14 , isQid(n__a()) -> tt() 587.84/148.14 , isQid(n__e()) -> tt() 587.84/148.14 , isQid(n__i()) -> tt() 587.84/148.14 , isQid(n__o()) -> tt() 587.84/148.14 , isQid(n__u()) -> tt() 587.84/148.14 , U41(tt(), V1, V2) -> U42(isList(activate(V1)), activate(V2)) 587.84/148.14 , U42(tt(), V2) -> U43(isNeList(activate(V2))) 587.84/148.14 , U43(tt()) -> tt() 587.84/148.14 , U51(tt(), V1, V2) -> U52(isNeList(activate(V1)), activate(V2)) 587.84/148.14 , U52(tt(), V2) -> U53(isList(activate(V2))) 587.84/148.14 , U53(tt()) -> tt() 587.84/148.14 , and(X1, X2) -> n__and(X1, X2) 587.84/148.14 , and(tt(), X) -> activate(X) 587.84/148.14 , isPalListKind(X) -> n__isPalListKind(X) 587.84/148.14 , isPalListKind(n__nil()) -> tt() 587.84/148.14 , isPalListKind(n____(V1, V2)) -> 587.84/148.14 and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.84/148.14 , isPalListKind(n__a()) -> tt() 587.84/148.14 , isPalListKind(n__e()) -> tt() 587.84/148.14 , isPalListKind(n__i()) -> tt() 587.84/148.14 , isPalListKind(n__o()) -> tt() 587.84/148.14 , isPalListKind(n__u()) -> tt() 587.84/148.14 , a() -> n__a() 587.84/148.14 , e() -> n__e() 587.84/148.14 , i() -> n__i() 587.84/148.14 , o() -> n__o() 587.84/148.14 , u() -> n__u() } 587.84/148.14 Obligation: 587.84/148.14 innermost runtime complexity 587.84/148.14 Answer: 587.84/148.14 YES(O(1),O(n^1)) 587.84/148.14 587.84/148.14 We estimate the number of application of {12} by applications of 587.84/148.14 Pre({12}) = {13}. Here rules are labeled as follows: 587.84/148.14 587.84/148.14 DPs: 587.84/148.14 { 1: U11^#(tt(), V) -> c_1(isNeList^#(activate(V)), activate^#(V)) 587.84/148.14 , 2: isNeList^#(n____(V1, V2)) -> 587.84/148.14 c_3(U41^#(and(isPalListKind(activate(V1)), 587.84/148.14 n__isPalListKind(activate(V2))), 587.84/148.14 activate(V1), 587.84/148.14 activate(V2)), 587.84/148.14 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.14 isPalListKind^#(activate(V1)), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2)) 587.84/148.14 , 3: isNeList^#(n____(V1, V2)) -> 587.84/148.14 c_4(U51^#(and(isPalListKind(activate(V1)), 587.84/148.14 n__isPalListKind(activate(V2))), 587.84/148.14 activate(V1), 587.84/148.14 activate(V2)), 587.84/148.14 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.14 isPalListKind^#(activate(V1)), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2)) 587.84/148.14 , 4: U41^#(tt(), V1, V2) -> 587.84/148.14 c_9(U42^#(isList(activate(V1)), activate(V2)), 587.84/148.14 isList^#(activate(V1)), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2)) 587.84/148.14 , 5: U51^#(tt(), V1, V2) -> 587.84/148.14 c_11(U52^#(isNeList(activate(V1)), activate(V2)), 587.84/148.14 isNeList^#(activate(V1)), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2)) 587.84/148.14 , 6: U21^#(tt(), V1, V2) -> 587.84/148.14 c_12(U22^#(isList(activate(V1)), activate(V2)), 587.84/148.14 isList^#(activate(V1)), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2)) 587.84/148.14 , 7: U22^#(tt(), V2) -> 587.84/148.14 c_13(isList^#(activate(V2)), activate^#(V2)) 587.84/148.14 , 8: isList^#(V) -> 587.84/148.14 c_14(U11^#(isPalListKind(activate(V)), activate(V)), 587.84/148.14 isPalListKind^#(activate(V)), 587.84/148.14 activate^#(V), 587.84/148.14 activate^#(V)) 587.84/148.14 , 9: isList^#(n____(V1, V2)) -> 587.84/148.14 c_15(U21^#(and(isPalListKind(activate(V1)), 587.84/148.14 n__isPalListKind(activate(V2))), 587.84/148.14 activate(V1), 587.84/148.14 activate(V2)), 587.84/148.14 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.14 isPalListKind^#(activate(V1)), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2)) 587.84/148.14 , 10: U42^#(tt(), V2) -> 587.84/148.14 c_16(isNeList^#(activate(V2)), activate^#(V2)) 587.84/148.14 , 11: U52^#(tt(), V2) -> 587.84/148.14 c_17(isList^#(activate(V2)), activate^#(V2)) 587.84/148.14 , 12: U71^#(tt(), V) -> c_19(isNePal^#(activate(V)), activate^#(V)) 587.84/148.14 , 13: isPal^#(V) -> 587.84/148.14 c_21(U71^#(isPalListKind(activate(V)), activate(V)), 587.84/148.14 isPalListKind^#(activate(V)), 587.84/148.14 activate^#(V), 587.84/148.14 activate^#(V)) 587.84/148.14 , 14: U61^#(tt(), V) -> c_18(activate^#(V)) 587.84/148.14 , 15: isNePal^#(V) -> 587.84/148.14 c_20(U61^#(isPalListKind(activate(V)), activate(V)), 587.84/148.14 isPalListKind^#(activate(V)), 587.84/148.14 activate^#(V), 587.84/148.14 activate^#(V)) } 587.84/148.14 587.84/148.14 We are left with following problem, upon which TcT provides the 587.84/148.14 certificate YES(O(1),O(n^1)). 587.84/148.14 587.84/148.14 Strict DPs: 587.84/148.14 { U11^#(tt(), V) -> c_1(isNeList^#(activate(V)), activate^#(V)) 587.84/148.14 , isNeList^#(n____(V1, V2)) -> 587.84/148.14 c_3(U41^#(and(isPalListKind(activate(V1)), 587.84/148.14 n__isPalListKind(activate(V2))), 587.84/148.14 activate(V1), 587.84/148.14 activate(V2)), 587.84/148.14 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.14 isPalListKind^#(activate(V1)), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2)) 587.84/148.14 , isNeList^#(n____(V1, V2)) -> 587.84/148.14 c_4(U51^#(and(isPalListKind(activate(V1)), 587.84/148.14 n__isPalListKind(activate(V2))), 587.84/148.14 activate(V1), 587.84/148.14 activate(V2)), 587.84/148.14 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.14 isPalListKind^#(activate(V1)), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2)) 587.84/148.14 , U41^#(tt(), V1, V2) -> 587.84/148.14 c_9(U42^#(isList(activate(V1)), activate(V2)), 587.84/148.14 isList^#(activate(V1)), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2)) 587.84/148.14 , U51^#(tt(), V1, V2) -> 587.84/148.14 c_11(U52^#(isNeList(activate(V1)), activate(V2)), 587.84/148.14 isNeList^#(activate(V1)), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2)) 587.84/148.14 , U21^#(tt(), V1, V2) -> 587.84/148.14 c_12(U22^#(isList(activate(V1)), activate(V2)), 587.84/148.14 isList^#(activate(V1)), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2)) 587.84/148.14 , U22^#(tt(), V2) -> c_13(isList^#(activate(V2)), activate^#(V2)) 587.84/148.14 , isList^#(V) -> 587.84/148.14 c_14(U11^#(isPalListKind(activate(V)), activate(V)), 587.84/148.14 isPalListKind^#(activate(V)), 587.84/148.14 activate^#(V), 587.84/148.14 activate^#(V)) 587.84/148.14 , isList^#(n____(V1, V2)) -> 587.84/148.14 c_15(U21^#(and(isPalListKind(activate(V1)), 587.84/148.14 n__isPalListKind(activate(V2))), 587.84/148.14 activate(V1), 587.84/148.14 activate(V2)), 587.84/148.14 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.14 isPalListKind^#(activate(V1)), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2), 587.84/148.14 activate^#(V1), 587.84/148.14 activate^#(V2)) 587.84/148.14 , U42^#(tt(), V2) -> c_16(isNeList^#(activate(V2)), activate^#(V2)) 587.84/148.14 , U52^#(tt(), V2) -> c_17(isList^#(activate(V2)), activate^#(V2)) 587.84/148.14 , isPal^#(V) -> 587.84/148.14 c_21(U71^#(isPalListKind(activate(V)), activate(V)), 587.84/148.14 isPalListKind^#(activate(V)), 587.84/148.14 activate^#(V), 587.84/148.14 activate^#(V)) } 587.84/148.14 Weak DPs: 587.84/148.14 { U61^#(tt(), V) -> c_18(activate^#(V)) 587.84/148.14 , U71^#(tt(), V) -> c_19(isNePal^#(activate(V)), activate^#(V)) 587.84/148.14 , isNePal^#(V) -> 587.84/148.14 c_20(U61^#(isPalListKind(activate(V)), activate(V)), 587.84/148.14 isPalListKind^#(activate(V)), 587.84/148.14 activate^#(V), 587.84/148.14 activate^#(V)) } 587.84/148.14 Weak Trs: 587.84/148.14 { __(X1, X2) -> n____(X1, X2) 587.84/148.14 , nil() -> n__nil() 587.84/148.14 , U11(tt(), V) -> U12(isNeList(activate(V))) 587.84/148.14 , U12(tt()) -> tt() 587.84/148.14 , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) 587.84/148.14 , isNeList(n____(V1, V2)) -> 587.84/148.14 U41(and(isPalListKind(activate(V1)), 587.84/148.14 n__isPalListKind(activate(V2))), 587.84/148.14 activate(V1), 587.84/148.14 activate(V2)) 587.84/148.14 , isNeList(n____(V1, V2)) -> 587.84/148.14 U51(and(isPalListKind(activate(V1)), 587.84/148.14 n__isPalListKind(activate(V2))), 587.84/148.15 activate(V1), 587.84/148.15 activate(V2)) 587.84/148.15 , activate(X) -> X 587.84/148.15 , activate(n__nil()) -> nil() 587.84/148.15 , activate(n____(X1, X2)) -> __(X1, X2) 587.84/148.15 , activate(n__isPalListKind(X)) -> isPalListKind(X) 587.84/148.15 , activate(n__and(X1, X2)) -> and(X1, X2) 587.84/148.15 , activate(n__a()) -> a() 587.84/148.15 , activate(n__e()) -> e() 587.84/148.15 , activate(n__i()) -> i() 587.84/148.15 , activate(n__o()) -> o() 587.84/148.15 , activate(n__u()) -> u() 587.84/148.15 , U21(tt(), V1, V2) -> U22(isList(activate(V1)), activate(V2)) 587.84/148.15 , U22(tt(), V2) -> U23(isList(activate(V2))) 587.84/148.15 , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) 587.84/148.15 , isList(n__nil()) -> tt() 587.84/148.15 , isList(n____(V1, V2)) -> 587.84/148.15 U21(and(isPalListKind(activate(V1)), 587.84/148.15 n__isPalListKind(activate(V2))), 587.84/148.15 activate(V1), 587.84/148.15 activate(V2)) 587.84/148.15 , U23(tt()) -> tt() 587.84/148.15 , U31(tt(), V) -> U32(isQid(activate(V))) 587.84/148.15 , U32(tt()) -> tt() 587.84/148.15 , isQid(n__a()) -> tt() 587.84/148.15 , isQid(n__e()) -> tt() 587.84/148.15 , isQid(n__i()) -> tt() 587.84/148.15 , isQid(n__o()) -> tt() 587.84/148.15 , isQid(n__u()) -> tt() 587.84/148.15 , U41(tt(), V1, V2) -> U42(isList(activate(V1)), activate(V2)) 587.84/148.15 , U42(tt(), V2) -> U43(isNeList(activate(V2))) 587.84/148.15 , U43(tt()) -> tt() 587.84/148.15 , U51(tt(), V1, V2) -> U52(isNeList(activate(V1)), activate(V2)) 587.84/148.15 , U52(tt(), V2) -> U53(isList(activate(V2))) 587.84/148.15 , U53(tt()) -> tt() 587.84/148.15 , and(X1, X2) -> n__and(X1, X2) 587.84/148.15 , and(tt(), X) -> activate(X) 587.84/148.15 , isPalListKind(X) -> n__isPalListKind(X) 587.84/148.15 , isPalListKind(n__nil()) -> tt() 587.84/148.15 , isPalListKind(n____(V1, V2)) -> 587.84/148.15 and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.84/148.15 , isPalListKind(n__a()) -> tt() 587.84/148.15 , isPalListKind(n__e()) -> tt() 587.84/148.15 , isPalListKind(n__i()) -> tt() 587.84/148.15 , isPalListKind(n__o()) -> tt() 587.84/148.15 , isPalListKind(n__u()) -> tt() 587.84/148.15 , a() -> n__a() 587.84/148.15 , e() -> n__e() 587.84/148.15 , i() -> n__i() 587.84/148.15 , o() -> n__o() 587.84/148.15 , u() -> n__u() } 587.84/148.15 Obligation: 587.84/148.15 innermost runtime complexity 587.84/148.15 Answer: 587.84/148.15 YES(O(1),O(n^1)) 587.84/148.15 587.84/148.15 We estimate the number of application of {12} by applications of 587.84/148.15 Pre({12}) = {}. Here rules are labeled as follows: 587.84/148.15 587.84/148.15 DPs: 587.84/148.15 { 1: U11^#(tt(), V) -> c_1(isNeList^#(activate(V)), activate^#(V)) 587.84/148.15 , 2: isNeList^#(n____(V1, V2)) -> 587.84/148.15 c_3(U41^#(and(isPalListKind(activate(V1)), 587.84/148.15 n__isPalListKind(activate(V2))), 587.84/148.15 activate(V1), 587.84/148.15 activate(V2)), 587.84/148.15 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.15 isPalListKind^#(activate(V1)), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2)) 587.84/148.15 , 3: isNeList^#(n____(V1, V2)) -> 587.84/148.15 c_4(U51^#(and(isPalListKind(activate(V1)), 587.84/148.15 n__isPalListKind(activate(V2))), 587.84/148.15 activate(V1), 587.84/148.15 activate(V2)), 587.84/148.15 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.15 isPalListKind^#(activate(V1)), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2)) 587.84/148.15 , 4: U41^#(tt(), V1, V2) -> 587.84/148.15 c_9(U42^#(isList(activate(V1)), activate(V2)), 587.84/148.15 isList^#(activate(V1)), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2)) 587.84/148.15 , 5: U51^#(tt(), V1, V2) -> 587.84/148.15 c_11(U52^#(isNeList(activate(V1)), activate(V2)), 587.84/148.15 isNeList^#(activate(V1)), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2)) 587.84/148.15 , 6: U21^#(tt(), V1, V2) -> 587.84/148.15 c_12(U22^#(isList(activate(V1)), activate(V2)), 587.84/148.15 isList^#(activate(V1)), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2)) 587.84/148.15 , 7: U22^#(tt(), V2) -> 587.84/148.15 c_13(isList^#(activate(V2)), activate^#(V2)) 587.84/148.15 , 8: isList^#(V) -> 587.84/148.15 c_14(U11^#(isPalListKind(activate(V)), activate(V)), 587.84/148.15 isPalListKind^#(activate(V)), 587.84/148.15 activate^#(V), 587.84/148.15 activate^#(V)) 587.84/148.15 , 9: isList^#(n____(V1, V2)) -> 587.84/148.15 c_15(U21^#(and(isPalListKind(activate(V1)), 587.84/148.15 n__isPalListKind(activate(V2))), 587.84/148.15 activate(V1), 587.84/148.15 activate(V2)), 587.84/148.15 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.15 isPalListKind^#(activate(V1)), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2)) 587.84/148.15 , 10: U42^#(tt(), V2) -> 587.84/148.15 c_16(isNeList^#(activate(V2)), activate^#(V2)) 587.84/148.15 , 11: U52^#(tt(), V2) -> 587.84/148.15 c_17(isList^#(activate(V2)), activate^#(V2)) 587.84/148.15 , 12: isPal^#(V) -> 587.84/148.15 c_21(U71^#(isPalListKind(activate(V)), activate(V)), 587.84/148.15 isPalListKind^#(activate(V)), 587.84/148.15 activate^#(V), 587.84/148.15 activate^#(V)) 587.84/148.15 , 13: U61^#(tt(), V) -> c_18(activate^#(V)) 587.84/148.15 , 14: U71^#(tt(), V) -> c_19(isNePal^#(activate(V)), activate^#(V)) 587.84/148.15 , 15: isNePal^#(V) -> 587.84/148.15 c_20(U61^#(isPalListKind(activate(V)), activate(V)), 587.84/148.15 isPalListKind^#(activate(V)), 587.84/148.15 activate^#(V), 587.84/148.15 activate^#(V)) } 587.84/148.15 587.84/148.15 We are left with following problem, upon which TcT provides the 587.84/148.15 certificate YES(O(1),O(n^1)). 587.84/148.15 587.84/148.15 Strict DPs: 587.84/148.15 { U11^#(tt(), V) -> c_1(isNeList^#(activate(V)), activate^#(V)) 587.84/148.15 , isNeList^#(n____(V1, V2)) -> 587.84/148.15 c_3(U41^#(and(isPalListKind(activate(V1)), 587.84/148.15 n__isPalListKind(activate(V2))), 587.84/148.15 activate(V1), 587.84/148.15 activate(V2)), 587.84/148.15 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.15 isPalListKind^#(activate(V1)), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2)) 587.84/148.15 , isNeList^#(n____(V1, V2)) -> 587.84/148.15 c_4(U51^#(and(isPalListKind(activate(V1)), 587.84/148.15 n__isPalListKind(activate(V2))), 587.84/148.15 activate(V1), 587.84/148.15 activate(V2)), 587.84/148.15 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.15 isPalListKind^#(activate(V1)), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2)) 587.84/148.15 , U41^#(tt(), V1, V2) -> 587.84/148.15 c_9(U42^#(isList(activate(V1)), activate(V2)), 587.84/148.15 isList^#(activate(V1)), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2)) 587.84/148.15 , U51^#(tt(), V1, V2) -> 587.84/148.15 c_11(U52^#(isNeList(activate(V1)), activate(V2)), 587.84/148.15 isNeList^#(activate(V1)), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2)) 587.84/148.15 , U21^#(tt(), V1, V2) -> 587.84/148.15 c_12(U22^#(isList(activate(V1)), activate(V2)), 587.84/148.15 isList^#(activate(V1)), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2)) 587.84/148.15 , U22^#(tt(), V2) -> c_13(isList^#(activate(V2)), activate^#(V2)) 587.84/148.15 , isList^#(V) -> 587.84/148.15 c_14(U11^#(isPalListKind(activate(V)), activate(V)), 587.84/148.15 isPalListKind^#(activate(V)), 587.84/148.15 activate^#(V), 587.84/148.15 activate^#(V)) 587.84/148.15 , isList^#(n____(V1, V2)) -> 587.84/148.15 c_15(U21^#(and(isPalListKind(activate(V1)), 587.84/148.15 n__isPalListKind(activate(V2))), 587.84/148.15 activate(V1), 587.84/148.15 activate(V2)), 587.84/148.15 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.15 isPalListKind^#(activate(V1)), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2)) 587.84/148.15 , U42^#(tt(), V2) -> c_16(isNeList^#(activate(V2)), activate^#(V2)) 587.84/148.15 , U52^#(tt(), V2) -> c_17(isList^#(activate(V2)), activate^#(V2)) } 587.84/148.15 Weak DPs: 587.84/148.15 { U61^#(tt(), V) -> c_18(activate^#(V)) 587.84/148.15 , U71^#(tt(), V) -> c_19(isNePal^#(activate(V)), activate^#(V)) 587.84/148.15 , isNePal^#(V) -> 587.84/148.15 c_20(U61^#(isPalListKind(activate(V)), activate(V)), 587.84/148.15 isPalListKind^#(activate(V)), 587.84/148.15 activate^#(V), 587.84/148.15 activate^#(V)) 587.84/148.15 , isPal^#(V) -> 587.84/148.15 c_21(U71^#(isPalListKind(activate(V)), activate(V)), 587.84/148.15 isPalListKind^#(activate(V)), 587.84/148.15 activate^#(V), 587.84/148.15 activate^#(V)) } 587.84/148.15 Weak Trs: 587.84/148.15 { __(X1, X2) -> n____(X1, X2) 587.84/148.15 , nil() -> n__nil() 587.84/148.15 , U11(tt(), V) -> U12(isNeList(activate(V))) 587.84/148.15 , U12(tt()) -> tt() 587.84/148.15 , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) 587.84/148.15 , isNeList(n____(V1, V2)) -> 587.84/148.15 U41(and(isPalListKind(activate(V1)), 587.84/148.15 n__isPalListKind(activate(V2))), 587.84/148.15 activate(V1), 587.84/148.15 activate(V2)) 587.84/148.15 , isNeList(n____(V1, V2)) -> 587.84/148.15 U51(and(isPalListKind(activate(V1)), 587.84/148.15 n__isPalListKind(activate(V2))), 587.84/148.15 activate(V1), 587.84/148.15 activate(V2)) 587.84/148.15 , activate(X) -> X 587.84/148.15 , activate(n__nil()) -> nil() 587.84/148.15 , activate(n____(X1, X2)) -> __(X1, X2) 587.84/148.15 , activate(n__isPalListKind(X)) -> isPalListKind(X) 587.84/148.15 , activate(n__and(X1, X2)) -> and(X1, X2) 587.84/148.15 , activate(n__a()) -> a() 587.84/148.15 , activate(n__e()) -> e() 587.84/148.15 , activate(n__i()) -> i() 587.84/148.15 , activate(n__o()) -> o() 587.84/148.15 , activate(n__u()) -> u() 587.84/148.15 , U21(tt(), V1, V2) -> U22(isList(activate(V1)), activate(V2)) 587.84/148.15 , U22(tt(), V2) -> U23(isList(activate(V2))) 587.84/148.15 , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) 587.84/148.15 , isList(n__nil()) -> tt() 587.84/148.15 , isList(n____(V1, V2)) -> 587.84/148.15 U21(and(isPalListKind(activate(V1)), 587.84/148.15 n__isPalListKind(activate(V2))), 587.84/148.15 activate(V1), 587.84/148.15 activate(V2)) 587.84/148.15 , U23(tt()) -> tt() 587.84/148.15 , U31(tt(), V) -> U32(isQid(activate(V))) 587.84/148.15 , U32(tt()) -> tt() 587.84/148.15 , isQid(n__a()) -> tt() 587.84/148.15 , isQid(n__e()) -> tt() 587.84/148.15 , isQid(n__i()) -> tt() 587.84/148.15 , isQid(n__o()) -> tt() 587.84/148.15 , isQid(n__u()) -> tt() 587.84/148.15 , U41(tt(), V1, V2) -> U42(isList(activate(V1)), activate(V2)) 587.84/148.15 , U42(tt(), V2) -> U43(isNeList(activate(V2))) 587.84/148.15 , U43(tt()) -> tt() 587.84/148.15 , U51(tt(), V1, V2) -> U52(isNeList(activate(V1)), activate(V2)) 587.84/148.15 , U52(tt(), V2) -> U53(isList(activate(V2))) 587.84/148.15 , U53(tt()) -> tt() 587.84/148.15 , and(X1, X2) -> n__and(X1, X2) 587.84/148.15 , and(tt(), X) -> activate(X) 587.84/148.15 , isPalListKind(X) -> n__isPalListKind(X) 587.84/148.15 , isPalListKind(n__nil()) -> tt() 587.84/148.15 , isPalListKind(n____(V1, V2)) -> 587.84/148.15 and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.84/148.15 , isPalListKind(n__a()) -> tt() 587.84/148.15 , isPalListKind(n__e()) -> tt() 587.84/148.15 , isPalListKind(n__i()) -> tt() 587.84/148.15 , isPalListKind(n__o()) -> tt() 587.84/148.15 , isPalListKind(n__u()) -> tt() 587.84/148.15 , a() -> n__a() 587.84/148.15 , e() -> n__e() 587.84/148.15 , i() -> n__i() 587.84/148.15 , o() -> n__o() 587.84/148.15 , u() -> n__u() } 587.84/148.15 Obligation: 587.84/148.15 innermost runtime complexity 587.84/148.15 Answer: 587.84/148.15 YES(O(1),O(n^1)) 587.84/148.15 587.84/148.15 The following weak DPs constitute a sub-graph of the DG that is 587.84/148.15 closed under successors. The DPs are removed. 587.84/148.15 587.84/148.15 { U61^#(tt(), V) -> c_18(activate^#(V)) 587.84/148.15 , U71^#(tt(), V) -> c_19(isNePal^#(activate(V)), activate^#(V)) 587.84/148.15 , isNePal^#(V) -> 587.84/148.15 c_20(U61^#(isPalListKind(activate(V)), activate(V)), 587.84/148.15 isPalListKind^#(activate(V)), 587.84/148.15 activate^#(V), 587.84/148.15 activate^#(V)) 587.84/148.15 , isPal^#(V) -> 587.84/148.15 c_21(U71^#(isPalListKind(activate(V)), activate(V)), 587.84/148.15 isPalListKind^#(activate(V)), 587.84/148.15 activate^#(V), 587.84/148.15 activate^#(V)) } 587.84/148.15 587.84/148.15 We are left with following problem, upon which TcT provides the 587.84/148.15 certificate YES(O(1),O(n^1)). 587.84/148.15 587.84/148.15 Strict DPs: 587.84/148.15 { U11^#(tt(), V) -> c_1(isNeList^#(activate(V)), activate^#(V)) 587.84/148.15 , isNeList^#(n____(V1, V2)) -> 587.84/148.15 c_3(U41^#(and(isPalListKind(activate(V1)), 587.84/148.15 n__isPalListKind(activate(V2))), 587.84/148.15 activate(V1), 587.84/148.15 activate(V2)), 587.84/148.15 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.15 isPalListKind^#(activate(V1)), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2)) 587.84/148.15 , isNeList^#(n____(V1, V2)) -> 587.84/148.15 c_4(U51^#(and(isPalListKind(activate(V1)), 587.84/148.15 n__isPalListKind(activate(V2))), 587.84/148.15 activate(V1), 587.84/148.15 activate(V2)), 587.84/148.15 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.15 isPalListKind^#(activate(V1)), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2)) 587.84/148.15 , U41^#(tt(), V1, V2) -> 587.84/148.15 c_9(U42^#(isList(activate(V1)), activate(V2)), 587.84/148.15 isList^#(activate(V1)), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2)) 587.84/148.15 , U51^#(tt(), V1, V2) -> 587.84/148.15 c_11(U52^#(isNeList(activate(V1)), activate(V2)), 587.84/148.15 isNeList^#(activate(V1)), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2)) 587.84/148.15 , U21^#(tt(), V1, V2) -> 587.84/148.15 c_12(U22^#(isList(activate(V1)), activate(V2)), 587.84/148.15 isList^#(activate(V1)), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2)) 587.84/148.15 , U22^#(tt(), V2) -> c_13(isList^#(activate(V2)), activate^#(V2)) 587.84/148.15 , isList^#(V) -> 587.84/148.15 c_14(U11^#(isPalListKind(activate(V)), activate(V)), 587.84/148.15 isPalListKind^#(activate(V)), 587.84/148.15 activate^#(V), 587.84/148.15 activate^#(V)) 587.84/148.15 , isList^#(n____(V1, V2)) -> 587.84/148.15 c_15(U21^#(and(isPalListKind(activate(V1)), 587.84/148.15 n__isPalListKind(activate(V2))), 587.84/148.15 activate(V1), 587.84/148.15 activate(V2)), 587.84/148.15 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.15 isPalListKind^#(activate(V1)), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2)) 587.84/148.15 , U42^#(tt(), V2) -> c_16(isNeList^#(activate(V2)), activate^#(V2)) 587.84/148.15 , U52^#(tt(), V2) -> c_17(isList^#(activate(V2)), activate^#(V2)) } 587.84/148.15 Weak Trs: 587.84/148.15 { __(X1, X2) -> n____(X1, X2) 587.84/148.15 , nil() -> n__nil() 587.84/148.15 , U11(tt(), V) -> U12(isNeList(activate(V))) 587.84/148.15 , U12(tt()) -> tt() 587.84/148.15 , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) 587.84/148.15 , isNeList(n____(V1, V2)) -> 587.84/148.15 U41(and(isPalListKind(activate(V1)), 587.84/148.15 n__isPalListKind(activate(V2))), 587.84/148.15 activate(V1), 587.84/148.15 activate(V2)) 587.84/148.15 , isNeList(n____(V1, V2)) -> 587.84/148.15 U51(and(isPalListKind(activate(V1)), 587.84/148.15 n__isPalListKind(activate(V2))), 587.84/148.15 activate(V1), 587.84/148.15 activate(V2)) 587.84/148.15 , activate(X) -> X 587.84/148.15 , activate(n__nil()) -> nil() 587.84/148.15 , activate(n____(X1, X2)) -> __(X1, X2) 587.84/148.15 , activate(n__isPalListKind(X)) -> isPalListKind(X) 587.84/148.15 , activate(n__and(X1, X2)) -> and(X1, X2) 587.84/148.15 , activate(n__a()) -> a() 587.84/148.15 , activate(n__e()) -> e() 587.84/148.15 , activate(n__i()) -> i() 587.84/148.15 , activate(n__o()) -> o() 587.84/148.15 , activate(n__u()) -> u() 587.84/148.15 , U21(tt(), V1, V2) -> U22(isList(activate(V1)), activate(V2)) 587.84/148.15 , U22(tt(), V2) -> U23(isList(activate(V2))) 587.84/148.15 , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) 587.84/148.15 , isList(n__nil()) -> tt() 587.84/148.15 , isList(n____(V1, V2)) -> 587.84/148.15 U21(and(isPalListKind(activate(V1)), 587.84/148.15 n__isPalListKind(activate(V2))), 587.84/148.15 activate(V1), 587.84/148.15 activate(V2)) 587.84/148.15 , U23(tt()) -> tt() 587.84/148.15 , U31(tt(), V) -> U32(isQid(activate(V))) 587.84/148.15 , U32(tt()) -> tt() 587.84/148.15 , isQid(n__a()) -> tt() 587.84/148.15 , isQid(n__e()) -> tt() 587.84/148.15 , isQid(n__i()) -> tt() 587.84/148.15 , isQid(n__o()) -> tt() 587.84/148.15 , isQid(n__u()) -> tt() 587.84/148.15 , U41(tt(), V1, V2) -> U42(isList(activate(V1)), activate(V2)) 587.84/148.15 , U42(tt(), V2) -> U43(isNeList(activate(V2))) 587.84/148.15 , U43(tt()) -> tt() 587.84/148.15 , U51(tt(), V1, V2) -> U52(isNeList(activate(V1)), activate(V2)) 587.84/148.15 , U52(tt(), V2) -> U53(isList(activate(V2))) 587.84/148.15 , U53(tt()) -> tt() 587.84/148.15 , and(X1, X2) -> n__and(X1, X2) 587.84/148.15 , and(tt(), X) -> activate(X) 587.84/148.15 , isPalListKind(X) -> n__isPalListKind(X) 587.84/148.15 , isPalListKind(n__nil()) -> tt() 587.84/148.15 , isPalListKind(n____(V1, V2)) -> 587.84/148.15 and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.84/148.15 , isPalListKind(n__a()) -> tt() 587.84/148.15 , isPalListKind(n__e()) -> tt() 587.84/148.15 , isPalListKind(n__i()) -> tt() 587.84/148.15 , isPalListKind(n__o()) -> tt() 587.84/148.15 , isPalListKind(n__u()) -> tt() 587.84/148.15 , a() -> n__a() 587.84/148.15 , e() -> n__e() 587.84/148.15 , i() -> n__i() 587.84/148.15 , o() -> n__o() 587.84/148.15 , u() -> n__u() } 587.84/148.15 Obligation: 587.84/148.15 innermost runtime complexity 587.84/148.15 Answer: 587.84/148.15 YES(O(1),O(n^1)) 587.84/148.15 587.84/148.15 Due to missing edges in the dependency-graph, the right-hand sides 587.84/148.15 of following rules could be simplified: 587.84/148.15 587.84/148.15 { U11^#(tt(), V) -> c_1(isNeList^#(activate(V)), activate^#(V)) 587.84/148.15 , isNeList^#(n____(V1, V2)) -> 587.84/148.15 c_3(U41^#(and(isPalListKind(activate(V1)), 587.84/148.15 n__isPalListKind(activate(V2))), 587.84/148.15 activate(V1), 587.84/148.15 activate(V2)), 587.84/148.15 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.15 isPalListKind^#(activate(V1)), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2)) 587.84/148.15 , isNeList^#(n____(V1, V2)) -> 587.84/148.15 c_4(U51^#(and(isPalListKind(activate(V1)), 587.84/148.15 n__isPalListKind(activate(V2))), 587.84/148.15 activate(V1), 587.84/148.15 activate(V2)), 587.84/148.15 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.15 isPalListKind^#(activate(V1)), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2)) 587.84/148.15 , U41^#(tt(), V1, V2) -> 587.84/148.15 c_9(U42^#(isList(activate(V1)), activate(V2)), 587.84/148.15 isList^#(activate(V1)), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2)) 587.84/148.15 , U51^#(tt(), V1, V2) -> 587.84/148.15 c_11(U52^#(isNeList(activate(V1)), activate(V2)), 587.84/148.15 isNeList^#(activate(V1)), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2)) 587.84/148.15 , U21^#(tt(), V1, V2) -> 587.84/148.15 c_12(U22^#(isList(activate(V1)), activate(V2)), 587.84/148.15 isList^#(activate(V1)), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2)) 587.84/148.15 , U22^#(tt(), V2) -> c_13(isList^#(activate(V2)), activate^#(V2)) 587.84/148.15 , isList^#(V) -> 587.84/148.15 c_14(U11^#(isPalListKind(activate(V)), activate(V)), 587.84/148.15 isPalListKind^#(activate(V)), 587.84/148.15 activate^#(V), 587.84/148.15 activate^#(V)) 587.84/148.15 , isList^#(n____(V1, V2)) -> 587.84/148.15 c_15(U21^#(and(isPalListKind(activate(V1)), 587.84/148.15 n__isPalListKind(activate(V2))), 587.84/148.15 activate(V1), 587.84/148.15 activate(V2)), 587.84/148.15 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 587.84/148.15 isPalListKind^#(activate(V1)), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2), 587.84/148.15 activate^#(V1), 587.84/148.15 activate^#(V2)) 587.84/148.15 , U42^#(tt(), V2) -> c_16(isNeList^#(activate(V2)), activate^#(V2)) 587.84/148.15 , U52^#(tt(), V2) -> c_17(isList^#(activate(V2)), activate^#(V2)) } 587.84/148.15 587.84/148.15 We are left with following problem, upon which TcT provides the 587.84/148.15 certificate YES(O(1),O(n^1)). 587.84/148.15 587.84/148.15 Strict DPs: 587.84/148.15 { U11^#(tt(), V) -> c_1(isNeList^#(activate(V))) 587.84/148.15 , isNeList^#(n____(V1, V2)) -> 587.84/148.15 c_2(U41^#(and(isPalListKind(activate(V1)), 587.84/148.15 n__isPalListKind(activate(V2))), 587.84/148.15 activate(V1), 587.84/148.15 activate(V2))) 587.84/148.15 , isNeList^#(n____(V1, V2)) -> 587.84/148.15 c_3(U51^#(and(isPalListKind(activate(V1)), 587.84/148.15 n__isPalListKind(activate(V2))), 587.84/148.15 activate(V1), 587.84/148.15 activate(V2))) 587.84/148.15 , U41^#(tt(), V1, V2) -> 587.84/148.16 c_4(U42^#(isList(activate(V1)), activate(V2)), 587.84/148.16 isList^#(activate(V1))) 587.84/148.16 , U51^#(tt(), V1, V2) -> 587.84/148.16 c_5(U52^#(isNeList(activate(V1)), activate(V2)), 587.84/148.16 isNeList^#(activate(V1))) 587.84/148.16 , U21^#(tt(), V1, V2) -> 587.84/148.16 c_6(U22^#(isList(activate(V1)), activate(V2)), 587.84/148.16 isList^#(activate(V1))) 587.84/148.16 , U22^#(tt(), V2) -> c_7(isList^#(activate(V2))) 587.84/148.16 , isList^#(V) -> 587.84/148.16 c_8(U11^#(isPalListKind(activate(V)), activate(V))) 587.84/148.16 , isList^#(n____(V1, V2)) -> 587.84/148.16 c_9(U21^#(and(isPalListKind(activate(V1)), 587.84/148.16 n__isPalListKind(activate(V2))), 587.84/148.16 activate(V1), 587.84/148.16 activate(V2))) 587.84/148.16 , U42^#(tt(), V2) -> c_10(isNeList^#(activate(V2))) 587.84/148.16 , U52^#(tt(), V2) -> c_11(isList^#(activate(V2))) } 587.84/148.16 Weak Trs: 587.84/148.16 { __(X1, X2) -> n____(X1, X2) 587.84/148.16 , nil() -> n__nil() 587.84/148.16 , U11(tt(), V) -> U12(isNeList(activate(V))) 587.84/148.16 , U12(tt()) -> tt() 587.84/148.16 , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) 587.84/148.16 , isNeList(n____(V1, V2)) -> 587.84/148.16 U41(and(isPalListKind(activate(V1)), 587.84/148.16 n__isPalListKind(activate(V2))), 587.84/148.16 activate(V1), 587.84/148.16 activate(V2)) 587.84/148.16 , isNeList(n____(V1, V2)) -> 587.84/148.16 U51(and(isPalListKind(activate(V1)), 587.84/148.16 n__isPalListKind(activate(V2))), 587.84/148.16 activate(V1), 587.84/148.16 activate(V2)) 587.84/148.16 , activate(X) -> X 587.84/148.16 , activate(n__nil()) -> nil() 587.84/148.16 , activate(n____(X1, X2)) -> __(X1, X2) 587.84/148.16 , activate(n__isPalListKind(X)) -> isPalListKind(X) 587.84/148.16 , activate(n__and(X1, X2)) -> and(X1, X2) 587.84/148.16 , activate(n__a()) -> a() 587.84/148.16 , activate(n__e()) -> e() 587.84/148.16 , activate(n__i()) -> i() 587.84/148.16 , activate(n__o()) -> o() 587.84/148.16 , activate(n__u()) -> u() 587.84/148.16 , U21(tt(), V1, V2) -> U22(isList(activate(V1)), activate(V2)) 587.84/148.16 , U22(tt(), V2) -> U23(isList(activate(V2))) 587.84/148.16 , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) 587.84/148.16 , isList(n__nil()) -> tt() 587.84/148.16 , isList(n____(V1, V2)) -> 587.84/148.16 U21(and(isPalListKind(activate(V1)), 587.84/148.16 n__isPalListKind(activate(V2))), 587.84/148.16 activate(V1), 587.84/148.16 activate(V2)) 587.84/148.16 , U23(tt()) -> tt() 587.84/148.16 , U31(tt(), V) -> U32(isQid(activate(V))) 587.84/148.16 , U32(tt()) -> tt() 587.84/148.16 , isQid(n__a()) -> tt() 587.84/148.16 , isQid(n__e()) -> tt() 587.84/148.16 , isQid(n__i()) -> tt() 587.84/148.16 , isQid(n__o()) -> tt() 587.84/148.16 , isQid(n__u()) -> tt() 587.84/148.16 , U41(tt(), V1, V2) -> U42(isList(activate(V1)), activate(V2)) 587.84/148.16 , U42(tt(), V2) -> U43(isNeList(activate(V2))) 587.84/148.16 , U43(tt()) -> tt() 587.84/148.16 , U51(tt(), V1, V2) -> U52(isNeList(activate(V1)), activate(V2)) 587.84/148.16 , U52(tt(), V2) -> U53(isList(activate(V2))) 587.84/148.16 , U53(tt()) -> tt() 587.84/148.16 , and(X1, X2) -> n__and(X1, X2) 587.84/148.16 , and(tt(), X) -> activate(X) 587.84/148.16 , isPalListKind(X) -> n__isPalListKind(X) 587.84/148.16 , isPalListKind(n__nil()) -> tt() 587.84/148.16 , isPalListKind(n____(V1, V2)) -> 587.84/148.16 and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.84/148.16 , isPalListKind(n__a()) -> tt() 587.84/148.16 , isPalListKind(n__e()) -> tt() 587.84/148.16 , isPalListKind(n__i()) -> tt() 587.84/148.16 , isPalListKind(n__o()) -> tt() 587.84/148.16 , isPalListKind(n__u()) -> tt() 587.84/148.16 , a() -> n__a() 587.84/148.16 , e() -> n__e() 587.84/148.16 , i() -> n__i() 587.84/148.16 , o() -> n__o() 587.84/148.16 , u() -> n__u() } 587.84/148.16 Obligation: 587.84/148.16 innermost runtime complexity 587.84/148.16 Answer: 587.84/148.16 YES(O(1),O(n^1)) 587.84/148.16 587.84/148.16 We use the processor 'matrix interpretation of dimension 1' to 587.84/148.16 orient following rules strictly. 587.84/148.16 587.84/148.16 DPs: 587.84/148.16 { 2: isNeList^#(n____(V1, V2)) -> 587.84/148.16 c_2(U41^#(and(isPalListKind(activate(V1)), 587.84/148.16 n__isPalListKind(activate(V2))), 587.84/148.16 activate(V1), 587.84/148.16 activate(V2))) 587.84/148.16 , 3: isNeList^#(n____(V1, V2)) -> 587.84/148.16 c_3(U51^#(and(isPalListKind(activate(V1)), 587.84/148.16 n__isPalListKind(activate(V2))), 587.84/148.16 activate(V1), 587.84/148.16 activate(V2))) 587.84/148.16 , 5: U51^#(tt(), V1, V2) -> 587.84/148.16 c_5(U52^#(isNeList(activate(V1)), activate(V2)), 587.84/148.16 isNeList^#(activate(V1))) 587.84/148.16 , 9: isList^#(n____(V1, V2)) -> 587.84/148.16 c_9(U21^#(and(isPalListKind(activate(V1)), 587.84/148.16 n__isPalListKind(activate(V2))), 587.84/148.16 activate(V1), 587.84/148.16 activate(V2))) } 587.84/148.16 587.84/148.16 Sub-proof: 587.84/148.16 ---------- 587.84/148.16 The following argument positions are usable: 587.84/148.16 Uargs(c_1) = {1}, Uargs(c_2) = {1}, Uargs(c_3) = {1}, 587.84/148.16 Uargs(c_4) = {1, 2}, Uargs(c_5) = {1, 2}, Uargs(c_6) = {1, 2}, 587.84/148.16 Uargs(c_7) = {1}, Uargs(c_8) = {1}, Uargs(c_9) = {1}, 587.84/148.16 Uargs(c_10) = {1}, Uargs(c_11) = {1} 587.84/148.16 587.84/148.16 TcT has computed the following constructor-based matrix 587.84/148.16 interpretation satisfying not(EDA). 587.84/148.16 587.84/148.16 [__](x1, x2) = [1] x1 + [1] x2 + [1] 587.84/148.16 587.84/148.16 [nil] = [0] 587.84/148.16 587.84/148.16 [U11](x1, x2) = [0] 587.84/148.16 587.84/148.16 [tt] = [0] 587.84/148.16 587.84/148.16 [U12](x1) = [0] 587.84/148.16 587.84/148.16 [isNeList](x1) = [0] 587.84/148.16 587.84/148.16 [activate](x1) = [1] x1 + [0] 587.84/148.16 587.84/148.16 [U21](x1, x2, x3) = [0] 587.84/148.16 587.84/148.16 [U22](x1, x2) = [0] 587.84/148.16 587.84/148.16 [isList](x1) = [0] 587.84/148.16 587.84/148.16 [U23](x1) = [0] 587.84/148.16 587.84/148.16 [U31](x1, x2) = [0] 587.84/148.16 587.84/148.16 [U32](x1) = [0] 587.84/148.16 587.84/148.16 [isQid](x1) = [0] 587.84/148.16 587.84/148.16 [U41](x1, x2, x3) = [0] 587.84/148.16 587.84/148.16 [U42](x1, x2) = [0] 587.84/148.16 587.84/148.16 [U43](x1) = [0] 587.84/148.16 587.84/148.16 [U51](x1, x2, x3) = [0] 587.84/148.16 587.84/148.16 [U52](x1, x2) = [0] 587.84/148.16 587.84/148.16 [U53](x1) = [0] 587.84/148.16 587.84/148.16 [and](x1, x2) = [1] x2 + [0] 587.84/148.16 587.84/148.16 [isPalListKind](x1) = [0] 587.84/148.16 587.84/148.16 [n__nil] = [0] 587.84/148.16 587.84/148.16 [n____](x1, x2) = [1] x1 + [1] x2 + [1] 587.84/148.16 587.84/148.16 [n__isPalListKind](x1) = [0] 587.84/148.16 587.84/148.16 [n__and](x1, x2) = [1] x2 + [0] 587.84/148.16 587.84/148.16 [n__a] = [0] 587.84/148.16 587.84/148.16 [n__e] = [0] 587.84/148.16 587.84/148.16 [n__i] = [0] 587.84/148.16 587.84/148.16 [n__o] = [0] 587.84/148.16 587.84/148.16 [n__u] = [0] 587.84/148.16 587.84/148.16 [a] = [0] 587.84/148.16 587.84/148.16 [e] = [0] 587.84/148.16 587.84/148.16 [i] = [0] 587.84/148.16 587.84/148.16 [o] = [0] 587.84/148.16 587.84/148.16 [u] = [0] 587.84/148.16 587.84/148.16 [U11^#](x1, x2) = [4] x2 + [0] 587.84/148.16 587.84/148.16 [isNeList^#](x1) = [4] x1 + [0] 587.84/148.16 587.84/148.16 [activate^#](x1) = [7] x1 + [0] 587.84/148.16 587.84/148.16 [isPalListKind^#](x1) = [7] x1 + [0] 587.84/148.16 587.84/148.16 [U41^#](x1, x2, x3) = [4] x2 + [4] x3 + [0] 587.84/148.16 587.84/148.16 [and^#](x1, x2) = [7] x1 + [7] x2 + [0] 587.84/148.16 587.84/148.16 [U51^#](x1, x2, x3) = [4] x2 + [4] x3 + [1] 587.84/148.16 587.84/148.16 [U21^#](x1, x2, x3) = [4] x2 + [4] x3 + [0] 587.84/148.16 587.84/148.16 [U22^#](x1, x2) = [4] x2 + [0] 587.84/148.16 587.84/148.16 [isList^#](x1) = [4] x1 + [0] 587.84/148.16 587.84/148.16 [U42^#](x1, x2) = [4] x2 + [0] 587.84/148.16 587.84/148.16 [U52^#](x1, x2) = [4] x2 + [0] 587.84/148.16 587.84/148.16 [U61^#](x1, x2) = [7] x1 + [7] x2 + [0] 587.84/148.16 587.84/148.16 [U71^#](x1, x2) = [7] x1 + [7] x2 + [0] 587.84/148.16 587.84/148.16 [isNePal^#](x1) = [7] x1 + [0] 587.84/148.16 587.84/148.16 [isPal^#](x1) = [7] x1 + [0] 587.84/148.16 587.84/148.16 [c_1](x1, x2) = [7] x1 + [7] x2 + [0] 587.84/148.16 587.84/148.16 [c_3](x1, x2, x3, x4, x5, x6, x7) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [7] x5 + [7] x6 + [7] x7 + [0] 587.84/148.16 587.84/148.16 [c_4](x1, x2, x3, x4, x5, x6, x7) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [7] x5 + [7] x6 + [7] x7 + [0] 587.84/148.16 587.84/148.16 [c_9](x1, x2, x3, x4) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [0] 587.84/148.16 587.84/148.16 [c_11](x1, x2, x3, x4) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [0] 587.84/148.16 587.84/148.16 [c_12](x1, x2, x3, x4) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [0] 587.84/148.16 587.84/148.16 [c_13](x1, x2) = [7] x1 + [7] x2 + [0] 587.84/148.16 587.84/148.16 [c_14](x1, x2, x3, x4) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [0] 587.84/148.16 587.84/148.16 [c_15](x1, x2, x3, x4, x5, x6, x7) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [7] x5 + [7] x6 + [7] x7 + [0] 587.84/148.16 587.84/148.16 [c_16](x1, x2) = [7] x1 + [7] x2 + [0] 587.84/148.16 587.84/148.16 [c_17](x1, x2) = [7] x1 + [7] x2 + [0] 587.84/148.16 587.84/148.16 [c_18](x1) = [7] x1 + [0] 587.84/148.16 587.84/148.16 [c_19](x1, x2) = [7] x1 + [7] x2 + [0] 587.84/148.16 587.84/148.16 [c_20](x1, x2, x3, x4) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [0] 587.84/148.16 587.84/148.16 [c_21](x1, x2, x3, x4) = [7] x1 + [7] x2 + [7] x3 + [7] x4 + [0] 587.84/148.16 587.84/148.16 [c] = [0] 587.84/148.16 587.84/148.16 [c_1](x1) = [1] x1 + [0] 587.84/148.16 587.84/148.16 [c_2](x1) = [1] x1 + [3] 587.84/148.16 587.84/148.16 [c_3](x1) = [1] x1 + [1] 587.84/148.16 587.84/148.16 [c_4](x1, x2) = [1] x1 + [1] x2 + [0] 587.84/148.16 587.84/148.16 [c_5](x1, x2) = [1] x1 + [1] x2 + [0] 587.84/148.16 587.84/148.16 [c_6](x1, x2) = [1] x1 + [1] x2 + [0] 587.84/148.16 587.84/148.16 [c_7](x1) = [1] x1 + [0] 587.84/148.16 587.84/148.16 [c_8](x1) = [1] x1 + [0] 587.84/148.16 587.84/148.16 [c_9](x1) = [1] x1 + [3] 587.84/148.16 587.84/148.16 [c_10](x1) = [1] x1 + [0] 587.84/148.16 587.84/148.16 [c_11](x1) = [1] x1 + [0] 587.84/148.16 587.84/148.16 The order satisfies the following ordering constraints: 587.84/148.16 587.84/148.16 [__(X1, X2)] = [1] X1 + [1] X2 + [1] 587.84/148.16 >= [1] X1 + [1] X2 + [1] 587.84/148.16 = [n____(X1, X2)] 587.84/148.16 587.84/148.16 [nil()] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [n__nil()] 587.84/148.16 587.84/148.16 [U11(tt(), V)] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [U12(isNeList(activate(V)))] 587.84/148.16 587.84/148.16 [U12(tt())] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [tt()] 587.84/148.16 587.84/148.16 [isNeList(V)] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [U31(isPalListKind(activate(V)), activate(V))] 587.84/148.16 587.84/148.16 [isNeList(n____(V1, V2))] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [U41(and(isPalListKind(activate(V1)), 587.84/148.16 n__isPalListKind(activate(V2))), 587.84/148.16 activate(V1), 587.84/148.16 activate(V2))] 587.84/148.16 587.84/148.16 [isNeList(n____(V1, V2))] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [U51(and(isPalListKind(activate(V1)), 587.84/148.16 n__isPalListKind(activate(V2))), 587.84/148.16 activate(V1), 587.84/148.16 activate(V2))] 587.84/148.16 587.84/148.16 [activate(X)] = [1] X + [0] 587.84/148.16 >= [1] X + [0] 587.84/148.16 = [X] 587.84/148.16 587.84/148.16 [activate(n__nil())] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [nil()] 587.84/148.16 587.84/148.16 [activate(n____(X1, X2))] = [1] X1 + [1] X2 + [1] 587.84/148.16 >= [1] X1 + [1] X2 + [1] 587.84/148.16 = [__(X1, X2)] 587.84/148.16 587.84/148.16 [activate(n__isPalListKind(X))] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [isPalListKind(X)] 587.84/148.16 587.84/148.16 [activate(n__and(X1, X2))] = [1] X2 + [0] 587.84/148.16 >= [1] X2 + [0] 587.84/148.16 = [and(X1, X2)] 587.84/148.16 587.84/148.16 [activate(n__a())] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [a()] 587.84/148.16 587.84/148.16 [activate(n__e())] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [e()] 587.84/148.16 587.84/148.16 [activate(n__i())] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [i()] 587.84/148.16 587.84/148.16 [activate(n__o())] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [o()] 587.84/148.16 587.84/148.16 [activate(n__u())] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [u()] 587.84/148.16 587.84/148.16 [U21(tt(), V1, V2)] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [U22(isList(activate(V1)), activate(V2))] 587.84/148.16 587.84/148.16 [U22(tt(), V2)] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [U23(isList(activate(V2)))] 587.84/148.16 587.84/148.16 [isList(V)] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [U11(isPalListKind(activate(V)), activate(V))] 587.84/148.16 587.84/148.16 [isList(n__nil())] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [tt()] 587.84/148.16 587.84/148.16 [isList(n____(V1, V2))] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [U21(and(isPalListKind(activate(V1)), 587.84/148.16 n__isPalListKind(activate(V2))), 587.84/148.16 activate(V1), 587.84/148.16 activate(V2))] 587.84/148.16 587.84/148.16 [U23(tt())] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [tt()] 587.84/148.16 587.84/148.16 [U31(tt(), V)] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [U32(isQid(activate(V)))] 587.84/148.16 587.84/148.16 [U32(tt())] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [tt()] 587.84/148.16 587.84/148.16 [isQid(n__a())] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [tt()] 587.84/148.16 587.84/148.16 [isQid(n__e())] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [tt()] 587.84/148.16 587.84/148.16 [isQid(n__i())] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [tt()] 587.84/148.16 587.84/148.16 [isQid(n__o())] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [tt()] 587.84/148.16 587.84/148.16 [isQid(n__u())] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [tt()] 587.84/148.16 587.84/148.16 [U41(tt(), V1, V2)] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [U42(isList(activate(V1)), activate(V2))] 587.84/148.16 587.84/148.16 [U42(tt(), V2)] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [U43(isNeList(activate(V2)))] 587.84/148.16 587.84/148.16 [U43(tt())] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [tt()] 587.84/148.16 587.84/148.16 [U51(tt(), V1, V2)] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [U52(isNeList(activate(V1)), activate(V2))] 587.84/148.16 587.84/148.16 [U52(tt(), V2)] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [U53(isList(activate(V2)))] 587.84/148.16 587.84/148.16 [U53(tt())] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [tt()] 587.84/148.16 587.84/148.16 [and(X1, X2)] = [1] X2 + [0] 587.84/148.16 >= [1] X2 + [0] 587.84/148.16 = [n__and(X1, X2)] 587.84/148.16 587.84/148.16 [and(tt(), X)] = [1] X + [0] 587.84/148.16 >= [1] X + [0] 587.84/148.16 = [activate(X)] 587.84/148.16 587.84/148.16 [isPalListKind(X)] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [n__isPalListKind(X)] 587.84/148.16 587.84/148.16 [isPalListKind(n__nil())] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [tt()] 587.84/148.16 587.84/148.16 [isPalListKind(n____(V1, V2))] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2)))] 587.84/148.16 587.84/148.16 [isPalListKind(n__a())] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [tt()] 587.84/148.16 587.84/148.16 [isPalListKind(n__e())] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [tt()] 587.84/148.16 587.84/148.16 [isPalListKind(n__i())] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [tt()] 587.84/148.16 587.84/148.16 [isPalListKind(n__o())] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [tt()] 587.84/148.16 587.84/148.16 [isPalListKind(n__u())] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [tt()] 587.84/148.16 587.84/148.16 [a()] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [n__a()] 587.84/148.16 587.84/148.16 [e()] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [n__e()] 587.84/148.16 587.84/148.16 [i()] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [n__i()] 587.84/148.16 587.84/148.16 [o()] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [n__o()] 587.84/148.16 587.84/148.16 [u()] = [0] 587.84/148.16 >= [0] 587.84/148.16 = [n__u()] 587.84/148.16 587.84/148.16 [U11^#(tt(), V)] = [4] V + [0] 587.84/148.16 >= [4] V + [0] 587.84/148.16 = [c_1(isNeList^#(activate(V)))] 587.84/148.16 587.84/148.16 [isNeList^#(n____(V1, V2))] = [4] V1 + [4] V2 + [4] 587.84/148.16 > [4] V1 + [4] V2 + [3] 587.84/148.16 = [c_2(U41^#(and(isPalListKind(activate(V1)), 587.84/148.16 n__isPalListKind(activate(V2))), 587.84/148.16 activate(V1), 587.84/148.16 activate(V2)))] 587.84/148.16 587.84/148.16 [isNeList^#(n____(V1, V2))] = [4] V1 + [4] V2 + [4] 587.84/148.16 > [4] V1 + [4] V2 + [2] 587.84/148.16 = [c_3(U51^#(and(isPalListKind(activate(V1)), 587.84/148.16 n__isPalListKind(activate(V2))), 587.84/148.16 activate(V1), 587.84/148.16 activate(V2)))] 587.84/148.16 587.84/148.16 [U41^#(tt(), V1, V2)] = [4] V1 + [4] V2 + [0] 587.84/148.16 >= [4] V1 + [4] V2 + [0] 587.84/148.16 = [c_4(U42^#(isList(activate(V1)), activate(V2)), 587.84/148.17 isList^#(activate(V1)))] 587.84/148.17 587.84/148.17 [U51^#(tt(), V1, V2)] = [4] V1 + [4] V2 + [1] 587.84/148.17 > [4] V1 + [4] V2 + [0] 587.84/148.17 = [c_5(U52^#(isNeList(activate(V1)), activate(V2)), 587.84/148.17 isNeList^#(activate(V1)))] 587.84/148.17 587.84/148.17 [U21^#(tt(), V1, V2)] = [4] V1 + [4] V2 + [0] 587.84/148.17 >= [4] V1 + [4] V2 + [0] 587.84/148.17 = [c_6(U22^#(isList(activate(V1)), activate(V2)), 587.84/148.17 isList^#(activate(V1)))] 587.84/148.17 587.84/148.17 [U22^#(tt(), V2)] = [4] V2 + [0] 587.84/148.17 >= [4] V2 + [0] 587.84/148.17 = [c_7(isList^#(activate(V2)))] 587.84/148.17 587.84/148.17 [isList^#(V)] = [4] V + [0] 587.84/148.17 >= [4] V + [0] 587.84/148.17 = [c_8(U11^#(isPalListKind(activate(V)), activate(V)))] 587.84/148.17 587.84/148.17 [isList^#(n____(V1, V2))] = [4] V1 + [4] V2 + [4] 587.84/148.17 > [4] V1 + [4] V2 + [3] 587.84/148.17 = [c_9(U21^#(and(isPalListKind(activate(V1)), 587.84/148.17 n__isPalListKind(activate(V2))), 587.84/148.17 activate(V1), 587.84/148.17 activate(V2)))] 587.84/148.17 587.84/148.17 [U42^#(tt(), V2)] = [4] V2 + [0] 587.84/148.17 >= [4] V2 + [0] 587.84/148.17 = [c_10(isNeList^#(activate(V2)))] 587.84/148.17 587.84/148.17 [U52^#(tt(), V2)] = [4] V2 + [0] 587.84/148.17 >= [4] V2 + [0] 587.84/148.17 = [c_11(isList^#(activate(V2)))] 587.84/148.17 587.84/148.17 587.84/148.17 We return to the main proof. Consider the set of all dependency 587.84/148.17 pairs 587.84/148.17 587.84/148.17 : 587.84/148.17 { 1: U11^#(tt(), V) -> c_1(isNeList^#(activate(V))) 587.84/148.17 , 2: isNeList^#(n____(V1, V2)) -> 587.84/148.17 c_2(U41^#(and(isPalListKind(activate(V1)), 587.84/148.17 n__isPalListKind(activate(V2))), 587.84/148.17 activate(V1), 587.84/148.17 activate(V2))) 587.84/148.17 , 3: isNeList^#(n____(V1, V2)) -> 587.84/148.17 c_3(U51^#(and(isPalListKind(activate(V1)), 587.84/148.17 n__isPalListKind(activate(V2))), 587.84/148.17 activate(V1), 587.84/148.17 activate(V2))) 587.84/148.17 , 4: U41^#(tt(), V1, V2) -> 587.84/148.17 c_4(U42^#(isList(activate(V1)), activate(V2)), 587.84/148.17 isList^#(activate(V1))) 587.84/148.17 , 5: U51^#(tt(), V1, V2) -> 587.84/148.17 c_5(U52^#(isNeList(activate(V1)), activate(V2)), 587.84/148.17 isNeList^#(activate(V1))) 587.84/148.17 , 6: U21^#(tt(), V1, V2) -> 587.84/148.17 c_6(U22^#(isList(activate(V1)), activate(V2)), 587.84/148.17 isList^#(activate(V1))) 587.84/148.17 , 7: U22^#(tt(), V2) -> c_7(isList^#(activate(V2))) 587.84/148.17 , 8: isList^#(V) -> 587.84/148.17 c_8(U11^#(isPalListKind(activate(V)), activate(V))) 587.84/148.17 , 9: isList^#(n____(V1, V2)) -> 587.84/148.17 c_9(U21^#(and(isPalListKind(activate(V1)), 587.84/148.17 n__isPalListKind(activate(V2))), 587.84/148.17 activate(V1), 587.84/148.17 activate(V2))) 587.84/148.17 , 10: U42^#(tt(), V2) -> c_10(isNeList^#(activate(V2))) 587.84/148.17 , 11: U52^#(tt(), V2) -> c_11(isList^#(activate(V2))) } 587.84/148.17 587.84/148.17 Processor 'matrix interpretation of dimension 1' induces the 587.84/148.17 complexity certificate YES(?,O(n^1)) on application of dependency 587.84/148.17 pairs {2,3,5,9}. These cover all (indirect) predecessors of 587.84/148.17 dependency pairs {1,2,3,4,5,6,7,8,9,10,11}, their number of 587.84/148.17 application is equally bounded. The dependency pairs are shifted 587.84/148.17 into the weak component. 587.84/148.17 587.84/148.17 We are left with following problem, upon which TcT provides the 587.84/148.17 certificate YES(O(1),O(1)). 587.84/148.17 587.84/148.17 Weak DPs: 587.84/148.17 { U11^#(tt(), V) -> c_1(isNeList^#(activate(V))) 587.84/148.17 , isNeList^#(n____(V1, V2)) -> 587.84/148.17 c_2(U41^#(and(isPalListKind(activate(V1)), 587.84/148.17 n__isPalListKind(activate(V2))), 587.84/148.17 activate(V1), 587.84/148.17 activate(V2))) 587.84/148.17 , isNeList^#(n____(V1, V2)) -> 587.84/148.17 c_3(U51^#(and(isPalListKind(activate(V1)), 587.84/148.17 n__isPalListKind(activate(V2))), 587.84/148.17 activate(V1), 587.84/148.17 activate(V2))) 587.84/148.17 , U41^#(tt(), V1, V2) -> 587.84/148.17 c_4(U42^#(isList(activate(V1)), activate(V2)), 587.84/148.17 isList^#(activate(V1))) 587.84/148.17 , U51^#(tt(), V1, V2) -> 587.84/148.17 c_5(U52^#(isNeList(activate(V1)), activate(V2)), 587.84/148.17 isNeList^#(activate(V1))) 587.84/148.17 , U21^#(tt(), V1, V2) -> 587.84/148.17 c_6(U22^#(isList(activate(V1)), activate(V2)), 587.84/148.17 isList^#(activate(V1))) 587.84/148.17 , U22^#(tt(), V2) -> c_7(isList^#(activate(V2))) 587.84/148.17 , isList^#(V) -> 587.84/148.17 c_8(U11^#(isPalListKind(activate(V)), activate(V))) 587.84/148.17 , isList^#(n____(V1, V2)) -> 587.84/148.17 c_9(U21^#(and(isPalListKind(activate(V1)), 587.84/148.17 n__isPalListKind(activate(V2))), 587.84/148.17 activate(V1), 587.84/148.17 activate(V2))) 587.84/148.17 , U42^#(tt(), V2) -> c_10(isNeList^#(activate(V2))) 587.84/148.17 , U52^#(tt(), V2) -> c_11(isList^#(activate(V2))) } 587.84/148.17 Weak Trs: 587.84/148.17 { __(X1, X2) -> n____(X1, X2) 587.84/148.17 , nil() -> n__nil() 587.84/148.17 , U11(tt(), V) -> U12(isNeList(activate(V))) 587.84/148.17 , U12(tt()) -> tt() 587.84/148.17 , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) 587.84/148.17 , isNeList(n____(V1, V2)) -> 587.84/148.17 U41(and(isPalListKind(activate(V1)), 587.84/148.17 n__isPalListKind(activate(V2))), 587.84/148.17 activate(V1), 587.84/148.17 activate(V2)) 587.84/148.17 , isNeList(n____(V1, V2)) -> 587.84/148.17 U51(and(isPalListKind(activate(V1)), 587.84/148.17 n__isPalListKind(activate(V2))), 587.84/148.17 activate(V1), 587.84/148.17 activate(V2)) 587.84/148.17 , activate(X) -> X 587.84/148.17 , activate(n__nil()) -> nil() 587.84/148.17 , activate(n____(X1, X2)) -> __(X1, X2) 587.84/148.17 , activate(n__isPalListKind(X)) -> isPalListKind(X) 587.84/148.17 , activate(n__and(X1, X2)) -> and(X1, X2) 587.84/148.17 , activate(n__a()) -> a() 587.84/148.17 , activate(n__e()) -> e() 587.84/148.17 , activate(n__i()) -> i() 587.84/148.17 , activate(n__o()) -> o() 587.84/148.17 , activate(n__u()) -> u() 587.84/148.17 , U21(tt(), V1, V2) -> U22(isList(activate(V1)), activate(V2)) 587.84/148.17 , U22(tt(), V2) -> U23(isList(activate(V2))) 587.84/148.17 , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) 587.84/148.17 , isList(n__nil()) -> tt() 587.84/148.17 , isList(n____(V1, V2)) -> 587.84/148.17 U21(and(isPalListKind(activate(V1)), 587.84/148.17 n__isPalListKind(activate(V2))), 587.84/148.17 activate(V1), 587.84/148.17 activate(V2)) 587.84/148.17 , U23(tt()) -> tt() 587.84/148.17 , U31(tt(), V) -> U32(isQid(activate(V))) 587.84/148.17 , U32(tt()) -> tt() 587.84/148.17 , isQid(n__a()) -> tt() 587.84/148.17 , isQid(n__e()) -> tt() 587.84/148.17 , isQid(n__i()) -> tt() 587.84/148.17 , isQid(n__o()) -> tt() 587.84/148.17 , isQid(n__u()) -> tt() 587.84/148.17 , U41(tt(), V1, V2) -> U42(isList(activate(V1)), activate(V2)) 587.84/148.17 , U42(tt(), V2) -> U43(isNeList(activate(V2))) 587.84/148.17 , U43(tt()) -> tt() 587.84/148.17 , U51(tt(), V1, V2) -> U52(isNeList(activate(V1)), activate(V2)) 587.84/148.17 , U52(tt(), V2) -> U53(isList(activate(V2))) 587.84/148.17 , U53(tt()) -> tt() 587.84/148.17 , and(X1, X2) -> n__and(X1, X2) 587.84/148.17 , and(tt(), X) -> activate(X) 587.84/148.17 , isPalListKind(X) -> n__isPalListKind(X) 587.84/148.17 , isPalListKind(n__nil()) -> tt() 587.84/148.17 , isPalListKind(n____(V1, V2)) -> 587.84/148.17 and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.84/148.17 , isPalListKind(n__a()) -> tt() 587.84/148.17 , isPalListKind(n__e()) -> tt() 587.84/148.17 , isPalListKind(n__i()) -> tt() 587.84/148.17 , isPalListKind(n__o()) -> tt() 587.84/148.17 , isPalListKind(n__u()) -> tt() 587.84/148.17 , a() -> n__a() 587.84/148.17 , e() -> n__e() 587.84/148.17 , i() -> n__i() 587.84/148.17 , o() -> n__o() 587.84/148.17 , u() -> n__u() } 587.84/148.17 Obligation: 587.84/148.17 innermost runtime complexity 587.84/148.17 Answer: 587.84/148.17 YES(O(1),O(1)) 587.84/148.17 587.84/148.17 The following weak DPs constitute a sub-graph of the DG that is 587.84/148.17 closed under successors. The DPs are removed. 587.84/148.17 587.84/148.17 { U11^#(tt(), V) -> c_1(isNeList^#(activate(V))) 587.84/148.17 , isNeList^#(n____(V1, V2)) -> 587.84/148.17 c_2(U41^#(and(isPalListKind(activate(V1)), 587.84/148.17 n__isPalListKind(activate(V2))), 587.84/148.17 activate(V1), 587.84/148.17 activate(V2))) 587.84/148.17 , isNeList^#(n____(V1, V2)) -> 587.84/148.17 c_3(U51^#(and(isPalListKind(activate(V1)), 587.84/148.17 n__isPalListKind(activate(V2))), 587.84/148.17 activate(V1), 587.84/148.17 activate(V2))) 587.84/148.17 , U41^#(tt(), V1, V2) -> 587.84/148.17 c_4(U42^#(isList(activate(V1)), activate(V2)), 587.84/148.17 isList^#(activate(V1))) 587.84/148.17 , U51^#(tt(), V1, V2) -> 587.84/148.17 c_5(U52^#(isNeList(activate(V1)), activate(V2)), 587.84/148.17 isNeList^#(activate(V1))) 587.84/148.17 , U21^#(tt(), V1, V2) -> 587.84/148.17 c_6(U22^#(isList(activate(V1)), activate(V2)), 587.84/148.17 isList^#(activate(V1))) 587.84/148.17 , U22^#(tt(), V2) -> c_7(isList^#(activate(V2))) 587.84/148.17 , isList^#(V) -> 587.84/148.17 c_8(U11^#(isPalListKind(activate(V)), activate(V))) 587.84/148.17 , isList^#(n____(V1, V2)) -> 587.84/148.17 c_9(U21^#(and(isPalListKind(activate(V1)), 587.84/148.17 n__isPalListKind(activate(V2))), 587.84/148.17 activate(V1), 587.84/148.17 activate(V2))) 587.84/148.17 , U42^#(tt(), V2) -> c_10(isNeList^#(activate(V2))) 587.84/148.17 , U52^#(tt(), V2) -> c_11(isList^#(activate(V2))) } 587.84/148.17 587.84/148.17 We are left with following problem, upon which TcT provides the 587.84/148.17 certificate YES(O(1),O(1)). 587.84/148.17 587.84/148.17 Weak Trs: 587.84/148.17 { __(X1, X2) -> n____(X1, X2) 587.84/148.17 , nil() -> n__nil() 587.84/148.17 , U11(tt(), V) -> U12(isNeList(activate(V))) 587.84/148.17 , U12(tt()) -> tt() 587.84/148.17 , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) 587.84/148.17 , isNeList(n____(V1, V2)) -> 587.84/148.17 U41(and(isPalListKind(activate(V1)), 587.84/148.17 n__isPalListKind(activate(V2))), 587.84/148.17 activate(V1), 587.84/148.17 activate(V2)) 587.84/148.17 , isNeList(n____(V1, V2)) -> 587.84/148.17 U51(and(isPalListKind(activate(V1)), 587.84/148.17 n__isPalListKind(activate(V2))), 587.84/148.17 activate(V1), 587.84/148.17 activate(V2)) 587.84/148.17 , activate(X) -> X 587.84/148.17 , activate(n__nil()) -> nil() 587.84/148.17 , activate(n____(X1, X2)) -> __(X1, X2) 587.84/148.17 , activate(n__isPalListKind(X)) -> isPalListKind(X) 587.84/148.17 , activate(n__and(X1, X2)) -> and(X1, X2) 587.84/148.17 , activate(n__a()) -> a() 587.84/148.17 , activate(n__e()) -> e() 587.84/148.17 , activate(n__i()) -> i() 587.84/148.17 , activate(n__o()) -> o() 587.84/148.17 , activate(n__u()) -> u() 587.84/148.17 , U21(tt(), V1, V2) -> U22(isList(activate(V1)), activate(V2)) 587.84/148.17 , U22(tt(), V2) -> U23(isList(activate(V2))) 587.84/148.17 , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) 587.84/148.17 , isList(n__nil()) -> tt() 587.84/148.17 , isList(n____(V1, V2)) -> 587.84/148.17 U21(and(isPalListKind(activate(V1)), 587.84/148.17 n__isPalListKind(activate(V2))), 587.84/148.17 activate(V1), 587.84/148.17 activate(V2)) 587.84/148.17 , U23(tt()) -> tt() 587.84/148.17 , U31(tt(), V) -> U32(isQid(activate(V))) 587.84/148.17 , U32(tt()) -> tt() 587.84/148.17 , isQid(n__a()) -> tt() 587.84/148.17 , isQid(n__e()) -> tt() 587.84/148.17 , isQid(n__i()) -> tt() 587.84/148.17 , isQid(n__o()) -> tt() 587.84/148.17 , isQid(n__u()) -> tt() 587.84/148.17 , U41(tt(), V1, V2) -> U42(isList(activate(V1)), activate(V2)) 587.84/148.17 , U42(tt(), V2) -> U43(isNeList(activate(V2))) 587.84/148.17 , U43(tt()) -> tt() 587.84/148.17 , U51(tt(), V1, V2) -> U52(isNeList(activate(V1)), activate(V2)) 587.84/148.17 , U52(tt(), V2) -> U53(isList(activate(V2))) 587.84/148.17 , U53(tt()) -> tt() 587.84/148.17 , and(X1, X2) -> n__and(X1, X2) 587.84/148.17 , and(tt(), X) -> activate(X) 587.84/148.17 , isPalListKind(X) -> n__isPalListKind(X) 587.84/148.17 , isPalListKind(n__nil()) -> tt() 587.84/148.17 , isPalListKind(n____(V1, V2)) -> 587.84/148.17 and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.84/148.17 , isPalListKind(n__a()) -> tt() 587.84/148.17 , isPalListKind(n__e()) -> tt() 587.84/148.17 , isPalListKind(n__i()) -> tt() 587.84/148.17 , isPalListKind(n__o()) -> tt() 587.84/148.17 , isPalListKind(n__u()) -> tt() 587.84/148.17 , a() -> n__a() 587.84/148.17 , e() -> n__e() 587.84/148.17 , i() -> n__i() 587.84/148.17 , o() -> n__o() 587.84/148.17 , u() -> n__u() } 587.84/148.17 Obligation: 587.84/148.17 innermost runtime complexity 587.84/148.17 Answer: 587.84/148.17 YES(O(1),O(1)) 587.84/148.17 587.84/148.17 No rule is usable, rules are removed from the input problem. 587.84/148.17 587.84/148.17 We are left with following problem, upon which TcT provides the 587.84/148.17 certificate YES(O(1),O(1)). 587.84/148.17 587.84/148.17 Rules: Empty 587.84/148.17 Obligation: 587.84/148.17 innermost runtime complexity 587.84/148.17 Answer: 587.84/148.17 YES(O(1),O(1)) 587.84/148.17 587.84/148.17 Empty rules are trivially bounded 587.84/148.17 587.84/148.17 We return to the main proof. 587.84/148.17 587.84/148.17 We are left with following problem, upon which TcT provides the 587.84/148.17 certificate YES(O(1),O(n^1)). 587.84/148.17 587.84/148.17 Strict DPs: 587.84/148.17 { activate^#(n__isPalListKind(X)) -> c_5(isPalListKind^#(X)) 587.84/148.17 , activate^#(n__and(X1, X2)) -> c_6(and^#(X1, X2)) 587.84/148.17 , isPalListKind^#(n____(V1, V2)) -> 587.84/148.17 c_8(and^#(isPalListKind(activate(V1)), 587.84/148.17 n__isPalListKind(activate(V2))), 587.84/148.17 isPalListKind^#(activate(V1)), 587.84/148.17 activate^#(V1), 587.84/148.17 activate^#(V2)) 587.84/148.17 , and^#(tt(), X) -> c_10(activate^#(X)) } 587.84/148.17 Weak DPs: 587.84/148.17 { U11^#(tt(), V) -> isNeList^#(activate(V)) 587.84/148.17 , U11^#(tt(), V) -> activate^#(V) 587.84/148.17 , isNeList^#(V) -> 587.84/148.17 c_2(U31^#(isPalListKind(activate(V)), activate(V)), 587.84/148.17 isPalListKind^#(activate(V)), 587.84/148.17 activate^#(V), 587.84/148.17 activate^#(V)) 587.84/148.17 , isNeList^#(n____(V1, V2)) -> activate^#(V1) 587.84/148.17 , isNeList^#(n____(V1, V2)) -> activate^#(V2) 587.84/148.17 , isNeList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1)) 587.84/148.17 , isNeList^#(n____(V1, V2)) -> 587.84/148.17 U41^#(and(isPalListKind(activate(V1)), 587.84/148.17 n__isPalListKind(activate(V2))), 587.84/148.17 activate(V1), 587.84/148.17 activate(V2)) 587.84/148.17 , isNeList^#(n____(V1, V2)) -> 587.84/148.17 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.84/148.17 , isNeList^#(n____(V1, V2)) -> 587.84/148.17 U51^#(and(isPalListKind(activate(V1)), 587.84/148.17 n__isPalListKind(activate(V2))), 587.84/148.17 activate(V1), 587.84/148.17 activate(V2)) 587.84/148.17 , U31^#(tt(), V) -> c_7(activate^#(V)) 587.84/148.17 , U41^#(tt(), V1, V2) -> activate^#(V1) 587.84/148.17 , U41^#(tt(), V1, V2) -> activate^#(V2) 587.84/148.17 , U41^#(tt(), V1, V2) -> isList^#(activate(V1)) 587.84/148.17 , U41^#(tt(), V1, V2) -> U42^#(isList(activate(V1)), activate(V2)) 587.84/148.17 , U51^#(tt(), V1, V2) -> isNeList^#(activate(V1)) 587.84/148.17 , U51^#(tt(), V1, V2) -> activate^#(V1) 587.84/148.17 , U51^#(tt(), V1, V2) -> activate^#(V2) 587.84/148.17 , U51^#(tt(), V1, V2) -> 587.84/148.17 U52^#(isNeList(activate(V1)), activate(V2)) 587.84/148.17 , U21^#(tt(), V1, V2) -> activate^#(V1) 587.84/148.17 , U21^#(tt(), V1, V2) -> activate^#(V2) 587.84/148.17 , U21^#(tt(), V1, V2) -> U22^#(isList(activate(V1)), activate(V2)) 587.84/148.17 , U21^#(tt(), V1, V2) -> isList^#(activate(V1)) 587.84/148.17 , U22^#(tt(), V2) -> activate^#(V2) 587.84/148.17 , U22^#(tt(), V2) -> isList^#(activate(V2)) 587.84/148.17 , isList^#(V) -> U11^#(isPalListKind(activate(V)), activate(V)) 587.84/148.17 , isList^#(V) -> activate^#(V) 587.84/148.17 , isList^#(V) -> isPalListKind^#(activate(V)) 587.84/148.17 , isList^#(n____(V1, V2)) -> activate^#(V1) 587.84/148.17 , isList^#(n____(V1, V2)) -> activate^#(V2) 587.84/148.17 , isList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1)) 587.84/148.17 , isList^#(n____(V1, V2)) -> 587.84/148.17 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.84/148.17 , isList^#(n____(V1, V2)) -> 587.84/148.17 U21^#(and(isPalListKind(activate(V1)), 587.84/148.17 n__isPalListKind(activate(V2))), 587.84/148.17 activate(V1), 587.84/148.17 activate(V2)) 587.84/148.17 , U42^#(tt(), V2) -> isNeList^#(activate(V2)) 587.84/148.17 , U42^#(tt(), V2) -> activate^#(V2) 587.84/148.17 , U52^#(tt(), V2) -> activate^#(V2) 587.84/148.17 , U52^#(tt(), V2) -> isList^#(activate(V2)) 587.84/148.17 , U61^#(tt(), V) -> activate^#(V) 587.84/148.17 , U71^#(tt(), V) -> activate^#(V) 587.84/148.17 , U71^#(tt(), V) -> isNePal^#(activate(V)) 587.84/148.17 , isNePal^#(V) -> activate^#(V) 587.84/148.17 , isNePal^#(V) -> isPalListKind^#(activate(V)) 587.84/148.17 , isNePal^#(V) -> U61^#(isPalListKind(activate(V)), activate(V)) 587.84/148.17 , isPal^#(V) -> activate^#(V) 587.84/148.17 , isPal^#(V) -> isPalListKind^#(activate(V)) 587.84/148.17 , isPal^#(V) -> U71^#(isPalListKind(activate(V)), activate(V)) } 587.84/148.17 Weak Trs: 587.84/148.17 { __(X1, X2) -> n____(X1, X2) 587.84/148.17 , nil() -> n__nil() 587.84/148.17 , U11(tt(), V) -> U12(isNeList(activate(V))) 587.84/148.17 , U12(tt()) -> tt() 587.84/148.17 , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) 587.84/148.17 , isNeList(n____(V1, V2)) -> 587.84/148.17 U41(and(isPalListKind(activate(V1)), 587.84/148.17 n__isPalListKind(activate(V2))), 587.84/148.17 activate(V1), 587.84/148.17 activate(V2)) 587.84/148.17 , isNeList(n____(V1, V2)) -> 587.84/148.17 U51(and(isPalListKind(activate(V1)), 587.84/148.17 n__isPalListKind(activate(V2))), 587.84/148.17 activate(V1), 587.84/148.17 activate(V2)) 587.84/148.17 , activate(X) -> X 587.84/148.17 , activate(n__nil()) -> nil() 587.84/148.17 , activate(n____(X1, X2)) -> __(X1, X2) 587.84/148.17 , activate(n__isPalListKind(X)) -> isPalListKind(X) 587.84/148.17 , activate(n__and(X1, X2)) -> and(X1, X2) 587.84/148.17 , activate(n__a()) -> a() 587.84/148.17 , activate(n__e()) -> e() 587.84/148.17 , activate(n__i()) -> i() 587.84/148.17 , activate(n__o()) -> o() 587.84/148.17 , activate(n__u()) -> u() 587.84/148.17 , U21(tt(), V1, V2) -> U22(isList(activate(V1)), activate(V2)) 587.84/148.17 , U22(tt(), V2) -> U23(isList(activate(V2))) 587.84/148.17 , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) 587.84/148.17 , isList(n__nil()) -> tt() 587.84/148.17 , isList(n____(V1, V2)) -> 587.84/148.17 U21(and(isPalListKind(activate(V1)), 587.84/148.17 n__isPalListKind(activate(V2))), 587.84/148.17 activate(V1), 587.84/148.17 activate(V2)) 587.84/148.17 , U23(tt()) -> tt() 587.84/148.17 , U31(tt(), V) -> U32(isQid(activate(V))) 587.84/148.17 , U32(tt()) -> tt() 587.84/148.17 , isQid(n__a()) -> tt() 587.84/148.17 , isQid(n__e()) -> tt() 587.84/148.17 , isQid(n__i()) -> tt() 587.84/148.17 , isQid(n__o()) -> tt() 587.84/148.17 , isQid(n__u()) -> tt() 587.84/148.17 , U41(tt(), V1, V2) -> U42(isList(activate(V1)), activate(V2)) 587.84/148.17 , U42(tt(), V2) -> U43(isNeList(activate(V2))) 587.84/148.17 , U43(tt()) -> tt() 587.84/148.17 , U51(tt(), V1, V2) -> U52(isNeList(activate(V1)), activate(V2)) 587.84/148.17 , U52(tt(), V2) -> U53(isList(activate(V2))) 587.84/148.17 , U53(tt()) -> tt() 587.84/148.17 , and(X1, X2) -> n__and(X1, X2) 587.84/148.17 , and(tt(), X) -> activate(X) 587.84/148.17 , isPalListKind(X) -> n__isPalListKind(X) 587.84/148.17 , isPalListKind(n__nil()) -> tt() 587.84/148.17 , isPalListKind(n____(V1, V2)) -> 587.84/148.17 and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.84/148.17 , isPalListKind(n__a()) -> tt() 587.84/148.17 , isPalListKind(n__e()) -> tt() 587.84/148.17 , isPalListKind(n__i()) -> tt() 587.84/148.17 , isPalListKind(n__o()) -> tt() 587.84/148.17 , isPalListKind(n__u()) -> tt() 587.84/148.17 , a() -> n__a() 587.84/148.17 , e() -> n__e() 587.84/148.17 , i() -> n__i() 587.84/148.17 , o() -> n__o() 587.84/148.17 , u() -> n__u() } 587.84/148.17 Obligation: 587.84/148.17 innermost runtime complexity 587.84/148.17 Answer: 587.84/148.17 YES(O(1),O(n^1)) 587.84/148.17 587.84/148.17 We use the processor 'matrix interpretation of dimension 2' to 587.84/148.17 orient following rules strictly. 587.84/148.17 587.84/148.17 DPs: 587.84/148.17 { 2: activate^#(n__and(X1, X2)) -> c_6(and^#(X1, X2)) 587.84/148.17 , 3: isPalListKind^#(n____(V1, V2)) -> 587.84/148.17 c_8(and^#(isPalListKind(activate(V1)), 587.84/148.17 n__isPalListKind(activate(V2))), 587.84/148.17 isPalListKind^#(activate(V1)), 587.84/148.17 activate^#(V1), 587.84/148.17 activate^#(V2)) 587.84/148.17 , 8: isNeList^#(n____(V1, V2)) -> activate^#(V1) 587.84/148.17 , 9: isNeList^#(n____(V1, V2)) -> activate^#(V2) 587.84/148.17 , 10: isNeList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1)) 587.84/148.17 , 11: isNeList^#(n____(V1, V2)) -> 587.84/148.17 U41^#(and(isPalListKind(activate(V1)), 587.84/148.17 n__isPalListKind(activate(V2))), 587.84/148.17 activate(V1), 587.84/148.17 activate(V2)) 587.84/148.17 , 12: isNeList^#(n____(V1, V2)) -> 587.84/148.17 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.84/148.17 , 13: isNeList^#(n____(V1, V2)) -> 587.84/148.17 U51^#(and(isPalListKind(activate(V1)), 587.84/148.17 n__isPalListKind(activate(V2))), 587.84/148.17 activate(V1), 587.84/148.17 activate(V2)) 587.84/148.17 , 32: isList^#(n____(V1, V2)) -> activate^#(V1) 587.84/148.17 , 33: isList^#(n____(V1, V2)) -> activate^#(V2) 587.84/148.17 , 34: isList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1)) 587.84/148.17 , 35: isList^#(n____(V1, V2)) -> 587.84/148.17 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.84/148.17 , 36: isList^#(n____(V1, V2)) -> 587.84/148.17 U21^#(and(isPalListKind(activate(V1)), 587.84/148.17 n__isPalListKind(activate(V2))), 587.84/148.17 activate(V1), 587.84/148.17 activate(V2)) 587.84/148.17 , 42: U71^#(tt(), V) -> activate^#(V) 587.84/148.17 , 43: U71^#(tt(), V) -> isNePal^#(activate(V)) 587.84/148.17 , 47: isPal^#(V) -> activate^#(V) 587.84/148.17 , 48: isPal^#(V) -> isPalListKind^#(activate(V)) 587.84/148.17 , 49: isPal^#(V) -> 587.84/148.17 U71^#(isPalListKind(activate(V)), activate(V)) } 587.84/148.17 Trs: 587.84/148.17 { and(tt(), X) -> activate(X) 587.84/148.17 , isPalListKind(n__o()) -> tt() } 587.84/148.17 587.84/148.17 Sub-proof: 587.84/148.17 ---------- 587.84/148.17 The following argument positions are usable: 587.84/148.17 Uargs(c_2) = {1, 2, 3, 4}, Uargs(c_5) = {1}, Uargs(c_6) = {1}, 587.84/148.17 Uargs(c_7) = {1}, Uargs(c_8) = {1, 2, 3, 4}, Uargs(c_10) = {1} 587.84/148.17 587.84/148.17 TcT has computed the following constructor-based matrix 587.84/148.17 interpretation satisfying not(EDA) and not(IDA(1)). 587.84/148.17 587.84/148.17 [__](x1, x2) = [0 0] x1 + [0 0] x2 + [0] 587.84/148.17 [1 1] [1 1] [4] 587.84/148.17 587.84/148.17 [nil] = [0] 587.84/148.17 [0] 587.84/148.17 587.84/148.17 [U11](x1, x2) = [0] 587.84/148.17 [0] 587.84/148.17 587.84/148.17 [tt] = [0] 587.84/148.17 [0] 587.84/148.17 587.84/148.17 [U12](x1) = [0] 587.84/148.17 [0] 587.84/148.17 587.84/148.17 [isNeList](x1) = [0] 587.84/148.17 [0] 587.84/148.17 587.84/148.17 [activate](x1) = [1 0] x1 + [0] 587.84/148.17 [0 1] [0] 587.84/148.18 587.84/148.18 [U21](x1, x2, x3) = [0] 587.84/148.18 [0] 587.84/148.18 587.84/148.18 [U22](x1, x2) = [0] 587.84/148.18 [0] 587.84/148.18 587.84/148.18 [isList](x1) = [0] 587.84/148.18 [0] 587.84/148.18 587.84/148.18 [U23](x1) = [0] 587.84/148.18 [0] 587.84/148.18 587.84/148.18 [U31](x1, x2) = [0] 587.84/148.18 [0] 587.84/148.18 587.84/148.18 [U32](x1) = [0] 587.84/148.18 [0] 587.84/148.18 587.84/148.18 [isQid](x1) = [0] 587.84/148.18 [0] 587.84/148.18 587.84/148.18 [U41](x1, x2, x3) = [0] 587.84/148.18 [0] 587.84/148.18 587.84/148.18 [U42](x1, x2) = [0] 587.84/148.18 [0] 587.84/148.18 587.84/148.18 [U43](x1) = [0] 587.84/148.18 [0] 587.84/148.18 587.84/148.18 [U51](x1, x2, x3) = [0] 587.84/148.18 [0] 587.84/148.18 587.84/148.18 [U52](x1, x2) = [0] 587.84/148.18 [0] 587.84/148.18 587.84/148.18 [U53](x1) = [0] 587.84/148.18 [0] 587.84/148.18 587.84/148.18 [and](x1, x2) = [1 0] x2 + [4] 587.84/148.18 [0 1] [0] 587.84/148.18 587.84/148.18 [isPalListKind](x1) = [0 1] x1 + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 587.84/148.18 [n__nil] = [0] 587.84/148.18 [0] 587.84/148.18 587.84/148.18 [n____](x1, x2) = [0 0] x1 + [0 0] x2 + [0] 587.84/148.18 [1 1] [1 1] [4] 587.84/148.18 587.84/148.18 [n__isPalListKind](x1) = [0 1] x1 + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 587.84/148.18 [n__and](x1, x2) = [1 0] x2 + [4] 587.84/148.18 [0 1] [0] 587.84/148.18 587.84/148.18 [n__a] = [0] 587.84/148.18 [0] 587.84/148.18 587.84/148.18 [n__e] = [0] 587.84/148.18 [0] 587.84/148.18 587.84/148.18 [n__i] = [0] 587.84/148.18 [0] 587.84/148.18 587.84/148.18 [n__o] = [0] 587.84/148.18 [4] 587.84/148.18 587.84/148.18 [n__u] = [0] 587.84/148.18 [0] 587.84/148.18 587.84/148.18 [a] = [0] 587.84/148.18 [0] 587.84/148.18 587.84/148.18 [e] = [0] 587.84/148.18 [0] 587.84/148.18 587.84/148.18 [i] = [0] 587.84/148.18 [0] 587.84/148.18 587.84/148.18 [o] = [0] 587.84/148.18 [4] 587.84/148.18 587.84/148.18 [u] = [0] 587.84/148.18 [0] 587.84/148.18 587.84/148.18 [U11^#](x1, x2) = [3 3] x2 + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 587.84/148.18 [isNeList^#](x1) = [3 3] x1 + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 587.84/148.18 [activate^#](x1) = [1 0] x1 + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 587.84/148.18 [U31^#](x1, x2) = [1 0] x2 + [0] 587.84/148.18 [4 0] [4] 587.84/148.18 587.84/148.18 [isPalListKind^#](x1) = [0 1] x1 + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 587.84/148.18 [U41^#](x1, x2, x3) = [3 3] x2 + [3 3] x3 + [0] 587.84/148.18 [0 0] [0 0] [0] 587.84/148.18 587.84/148.18 [and^#](x1, x2) = [1 0] x2 + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 587.84/148.18 [U51^#](x1, x2, x3) = [3 3] x2 + [3 3] x3 + [0] 587.84/148.18 [0 0] [0 0] [0] 587.84/148.18 587.84/148.18 [U21^#](x1, x2, x3) = [3 3] x2 + [3 3] x3 + [0] 587.84/148.18 [0 0] [0 0] [0] 587.84/148.18 587.84/148.18 [U22^#](x1, x2) = [3 3] x2 + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 587.84/148.18 [isList^#](x1) = [3 3] x1 + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 587.84/148.18 [U42^#](x1, x2) = [3 3] x2 + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 587.84/148.18 [U52^#](x1, x2) = [3 3] x2 + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 587.84/148.18 [U61^#](x1, x2) = [1 0] x2 + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 587.84/148.18 [U71^#](x1, x2) = [4 1] x2 + [4] 587.84/148.18 [0 0] [0] 587.84/148.18 587.84/148.18 [isNePal^#](x1) = [4 1] x1 + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 587.84/148.18 [isPal^#](x1) = [7 7] x1 + [7] 587.84/148.18 [7 7] [7] 587.84/148.18 587.84/148.18 [c_2](x1, x2, x3, x4) = [1 0] x1 + [1 0] x2 + [1 0] x3 + [1 587.84/148.18 0] x4 + [0] 587.84/148.18 [0 0] [0 0] [0 0] [0 587.84/148.18 0] [0] 587.84/148.18 587.84/148.18 [c_5](x1) = [1 0] x1 + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 587.84/148.18 [c_6](x1) = [1 0] x1 + [1] 587.84/148.18 [0 0] [0] 587.84/148.18 587.84/148.18 [c_7](x1) = [1 0] x1 + [0] 587.84/148.18 [0 0] [3] 587.84/148.18 587.84/148.18 [c_8](x1, x2, x3, x4) = [1 0] x1 + [1 0] x2 + [1 0] x3 + [1 587.84/148.18 0] x4 + [3] 587.84/148.18 [0 0] [0 0] [0 0] [0 587.84/148.18 0] [0] 587.84/148.18 587.84/148.18 [c_10](x1) = [1 0] x1 + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 587.84/148.18 The order satisfies the following ordering constraints: 587.84/148.18 587.84/148.18 [__(X1, X2)] = [0 0] X1 + [0 0] X2 + [0] 587.84/148.18 [1 1] [1 1] [4] 587.84/148.18 >= [0 0] X1 + [0 0] X2 + [0] 587.84/148.18 [1 1] [1 1] [4] 587.84/148.18 = [n____(X1, X2)] 587.84/148.18 587.84/148.18 [nil()] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [n__nil()] 587.84/148.18 587.84/148.18 [U11(tt(), V)] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [U12(isNeList(activate(V)))] 587.84/148.18 587.84/148.18 [U12(tt())] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [tt()] 587.84/148.18 587.84/148.18 [isNeList(V)] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [U31(isPalListKind(activate(V)), activate(V))] 587.84/148.18 587.84/148.18 [isNeList(n____(V1, V2))] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [U41(and(isPalListKind(activate(V1)), 587.84/148.18 n__isPalListKind(activate(V2))), 587.84/148.18 activate(V1), 587.84/148.18 activate(V2))] 587.84/148.18 587.84/148.18 [isNeList(n____(V1, V2))] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [U51(and(isPalListKind(activate(V1)), 587.84/148.18 n__isPalListKind(activate(V2))), 587.84/148.18 activate(V1), 587.84/148.18 activate(V2))] 587.84/148.18 587.84/148.18 [activate(X)] = [1 0] X + [0] 587.84/148.18 [0 1] [0] 587.84/148.18 >= [1 0] X + [0] 587.84/148.18 [0 1] [0] 587.84/148.18 = [X] 587.84/148.18 587.84/148.18 [activate(n__nil())] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [nil()] 587.84/148.18 587.84/148.18 [activate(n____(X1, X2))] = [0 0] X1 + [0 0] X2 + [0] 587.84/148.18 [1 1] [1 1] [4] 587.84/148.18 >= [0 0] X1 + [0 0] X2 + [0] 587.84/148.18 [1 1] [1 1] [4] 587.84/148.18 = [__(X1, X2)] 587.84/148.18 587.84/148.18 [activate(n__isPalListKind(X))] = [0 1] X + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 >= [0 1] X + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 = [isPalListKind(X)] 587.84/148.18 587.84/148.18 [activate(n__and(X1, X2))] = [1 0] X2 + [4] 587.84/148.18 [0 1] [0] 587.84/148.18 >= [1 0] X2 + [4] 587.84/148.18 [0 1] [0] 587.84/148.18 = [and(X1, X2)] 587.84/148.18 587.84/148.18 [activate(n__a())] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [a()] 587.84/148.18 587.84/148.18 [activate(n__e())] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [e()] 587.84/148.18 587.84/148.18 [activate(n__i())] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [i()] 587.84/148.18 587.84/148.18 [activate(n__o())] = [0] 587.84/148.18 [4] 587.84/148.18 >= [0] 587.84/148.18 [4] 587.84/148.18 = [o()] 587.84/148.18 587.84/148.18 [activate(n__u())] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [u()] 587.84/148.18 587.84/148.18 [U21(tt(), V1, V2)] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [U22(isList(activate(V1)), activate(V2))] 587.84/148.18 587.84/148.18 [U22(tt(), V2)] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [U23(isList(activate(V2)))] 587.84/148.18 587.84/148.18 [isList(V)] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [U11(isPalListKind(activate(V)), activate(V))] 587.84/148.18 587.84/148.18 [isList(n__nil())] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [tt()] 587.84/148.18 587.84/148.18 [isList(n____(V1, V2))] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [U21(and(isPalListKind(activate(V1)), 587.84/148.18 n__isPalListKind(activate(V2))), 587.84/148.18 activate(V1), 587.84/148.18 activate(V2))] 587.84/148.18 587.84/148.18 [U23(tt())] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [tt()] 587.84/148.18 587.84/148.18 [U31(tt(), V)] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [U32(isQid(activate(V)))] 587.84/148.18 587.84/148.18 [U32(tt())] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [tt()] 587.84/148.18 587.84/148.18 [isQid(n__a())] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [tt()] 587.84/148.18 587.84/148.18 [isQid(n__e())] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [tt()] 587.84/148.18 587.84/148.18 [isQid(n__i())] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [tt()] 587.84/148.18 587.84/148.18 [isQid(n__o())] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [tt()] 587.84/148.18 587.84/148.18 [isQid(n__u())] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [tt()] 587.84/148.18 587.84/148.18 [U41(tt(), V1, V2)] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [U42(isList(activate(V1)), activate(V2))] 587.84/148.18 587.84/148.18 [U42(tt(), V2)] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [U43(isNeList(activate(V2)))] 587.84/148.18 587.84/148.18 [U43(tt())] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [tt()] 587.84/148.18 587.84/148.18 [U51(tt(), V1, V2)] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [U52(isNeList(activate(V1)), activate(V2))] 587.84/148.18 587.84/148.18 [U52(tt(), V2)] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [U53(isList(activate(V2)))] 587.84/148.18 587.84/148.18 [U53(tt())] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [tt()] 587.84/148.18 587.84/148.18 [and(X1, X2)] = [1 0] X2 + [4] 587.84/148.18 [0 1] [0] 587.84/148.18 >= [1 0] X2 + [4] 587.84/148.18 [0 1] [0] 587.84/148.18 = [n__and(X1, X2)] 587.84/148.18 587.84/148.18 [and(tt(), X)] = [1 0] X + [4] 587.84/148.18 [0 1] [0] 587.84/148.18 > [1 0] X + [0] 587.84/148.18 [0 1] [0] 587.84/148.18 = [activate(X)] 587.84/148.18 587.84/148.18 [isPalListKind(X)] = [0 1] X + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 >= [0 1] X + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 = [n__isPalListKind(X)] 587.84/148.18 587.84/148.18 [isPalListKind(n__nil())] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [tt()] 587.84/148.18 587.84/148.18 [isPalListKind(n____(V1, V2))] = [1 1] V1 + [1 1] V2 + [4] 587.84/148.18 [0 0] [0 0] [0] 587.84/148.18 >= [0 1] V2 + [4] 587.84/148.18 [0 0] [0] 587.84/148.18 = [and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2)))] 587.84/148.18 587.84/148.18 [isPalListKind(n__a())] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [tt()] 587.84/148.18 587.84/148.18 [isPalListKind(n__e())] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [tt()] 587.84/148.18 587.84/148.18 [isPalListKind(n__i())] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [tt()] 587.84/148.18 587.84/148.18 [isPalListKind(n__o())] = [4] 587.84/148.18 [0] 587.84/148.18 > [0] 587.84/148.18 [0] 587.84/148.18 = [tt()] 587.84/148.18 587.84/148.18 [isPalListKind(n__u())] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [tt()] 587.84/148.18 587.84/148.18 [a()] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [n__a()] 587.84/148.18 587.84/148.18 [e()] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [n__e()] 587.84/148.18 587.84/148.18 [i()] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [n__i()] 587.84/148.18 587.84/148.18 [o()] = [0] 587.84/148.18 [4] 587.84/148.18 >= [0] 587.84/148.18 [4] 587.84/148.18 = [n__o()] 587.84/148.18 587.84/148.18 [u()] = [0] 587.84/148.18 [0] 587.84/148.18 >= [0] 587.84/148.18 [0] 587.84/148.18 = [n__u()] 587.84/148.18 587.84/148.18 [U11^#(tt(), V)] = [3 3] V + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 >= [3 3] V + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 = [isNeList^#(activate(V))] 587.84/148.18 587.84/148.18 [U11^#(tt(), V)] = [3 3] V + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 >= [1 0] V + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 = [activate^#(V)] 587.84/148.18 587.84/148.18 [isNeList^#(V)] = [3 3] V + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 >= [3 1] V + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 = [c_2(U31^#(isPalListKind(activate(V)), activate(V)), 587.84/148.18 isPalListKind^#(activate(V)), 587.84/148.18 activate^#(V), 587.84/148.18 activate^#(V))] 587.84/148.18 587.84/148.18 [isNeList^#(n____(V1, V2))] = [3 3] V1 + [3 3] V2 + [12] 587.84/148.18 [0 0] [0 0] [0] 587.84/148.18 > [1 0] V1 + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 = [activate^#(V1)] 587.84/148.18 587.84/148.18 [isNeList^#(n____(V1, V2))] = [3 3] V1 + [3 3] V2 + [12] 587.84/148.18 [0 0] [0 0] [0] 587.84/148.18 > [1 0] V2 + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 = [activate^#(V2)] 587.84/148.18 587.84/148.18 [isNeList^#(n____(V1, V2))] = [3 3] V1 + [3 3] V2 + [12] 587.84/148.18 [0 0] [0 0] [0] 587.84/148.18 > [0 1] V1 + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 = [isPalListKind^#(activate(V1))] 587.84/148.18 587.84/148.18 [isNeList^#(n____(V1, V2))] = [3 3] V1 + [3 3] V2 + [12] 587.84/148.18 [0 0] [0 0] [0] 587.84/148.18 > [3 3] V1 + [3 3] V2 + [0] 587.84/148.18 [0 0] [0 0] [0] 587.84/148.18 = [U41^#(and(isPalListKind(activate(V1)), 587.84/148.18 n__isPalListKind(activate(V2))), 587.84/148.18 activate(V1), 587.84/148.18 activate(V2))] 587.84/148.18 587.84/148.18 [isNeList^#(n____(V1, V2))] = [3 3] V1 + [3 3] V2 + [12] 587.84/148.18 [0 0] [0 0] [0] 587.84/148.18 > [0 1] V2 + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 = [and^#(isPalListKind(activate(V1)), 587.84/148.18 n__isPalListKind(activate(V2)))] 587.84/148.18 587.84/148.18 [isNeList^#(n____(V1, V2))] = [3 3] V1 + [3 3] V2 + [12] 587.84/148.18 [0 0] [0 0] [0] 587.84/148.18 > [3 3] V1 + [3 3] V2 + [0] 587.84/148.18 [0 0] [0 0] [0] 587.84/148.18 = [U51^#(and(isPalListKind(activate(V1)), 587.84/148.18 n__isPalListKind(activate(V2))), 587.84/148.18 activate(V1), 587.84/148.18 activate(V2))] 587.84/148.18 587.84/148.18 [activate^#(n__isPalListKind(X))] = [0 1] X + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 >= [0 1] X + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 = [c_5(isPalListKind^#(X))] 587.84/148.18 587.84/148.18 [activate^#(n__and(X1, X2))] = [1 0] X2 + [4] 587.84/148.18 [0 0] [0] 587.84/148.18 > [1 0] X2 + [1] 587.84/148.18 [0 0] [0] 587.84/148.18 = [c_6(and^#(X1, X2))] 587.84/148.18 587.84/148.18 [U31^#(tt(), V)] = [1 0] V + [0] 587.84/148.18 [4 0] [4] 587.84/148.18 >= [1 0] V + [0] 587.84/148.18 [0 0] [3] 587.84/148.18 = [c_7(activate^#(V))] 587.84/148.18 587.84/148.18 [isPalListKind^#(n____(V1, V2))] = [1 1] V1 + [1 1] V2 + [4] 587.84/148.18 [0 0] [0 0] [0] 587.84/148.18 > [1 1] V1 + [1 1] V2 + [3] 587.84/148.18 [0 0] [0 0] [0] 587.84/148.18 = [c_8(and^#(isPalListKind(activate(V1)), 587.84/148.18 n__isPalListKind(activate(V2))), 587.84/148.18 isPalListKind^#(activate(V1)), 587.84/148.18 activate^#(V1), 587.84/148.18 activate^#(V2))] 587.84/148.18 587.84/148.18 [U41^#(tt(), V1, V2)] = [3 3] V1 + [3 3] V2 + [0] 587.84/148.18 [0 0] [0 0] [0] 587.84/148.18 >= [1 0] V1 + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 = [activate^#(V1)] 587.84/148.18 587.84/148.18 [U41^#(tt(), V1, V2)] = [3 3] V1 + [3 3] V2 + [0] 587.84/148.18 [0 0] [0 0] [0] 587.84/148.18 >= [1 0] V2 + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 = [activate^#(V2)] 587.84/148.18 587.84/148.18 [U41^#(tt(), V1, V2)] = [3 3] V1 + [3 3] V2 + [0] 587.84/148.18 [0 0] [0 0] [0] 587.84/148.18 >= [3 3] V1 + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 = [isList^#(activate(V1))] 587.84/148.18 587.84/148.18 [U41^#(tt(), V1, V2)] = [3 3] V1 + [3 3] V2 + [0] 587.84/148.18 [0 0] [0 0] [0] 587.84/148.18 >= [3 3] V2 + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 = [U42^#(isList(activate(V1)), activate(V2))] 587.84/148.18 587.84/148.18 [and^#(tt(), X)] = [1 0] X + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 >= [1 0] X + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 = [c_10(activate^#(X))] 587.84/148.18 587.84/148.18 [U51^#(tt(), V1, V2)] = [3 3] V1 + [3 3] V2 + [0] 587.84/148.18 [0 0] [0 0] [0] 587.84/148.18 >= [3 3] V1 + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 = [isNeList^#(activate(V1))] 587.84/148.18 587.84/148.18 [U51^#(tt(), V1, V2)] = [3 3] V1 + [3 3] V2 + [0] 587.84/148.18 [0 0] [0 0] [0] 587.84/148.18 >= [1 0] V1 + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 = [activate^#(V1)] 587.84/148.18 587.84/148.18 [U51^#(tt(), V1, V2)] = [3 3] V1 + [3 3] V2 + [0] 587.84/148.18 [0 0] [0 0] [0] 587.84/148.18 >= [1 0] V2 + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 = [activate^#(V2)] 587.84/148.18 587.84/148.18 [U51^#(tt(), V1, V2)] = [3 3] V1 + [3 3] V2 + [0] 587.84/148.18 [0 0] [0 0] [0] 587.84/148.18 >= [3 3] V2 + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 = [U52^#(isNeList(activate(V1)), activate(V2))] 587.84/148.18 587.84/148.18 [U21^#(tt(), V1, V2)] = [3 3] V1 + [3 3] V2 + [0] 587.84/148.18 [0 0] [0 0] [0] 587.84/148.18 >= [1 0] V1 + [0] 587.84/148.18 [0 0] [0] 587.84/148.18 = [activate^#(V1)] 587.84/148.18 587.84/148.18 [U21^#(tt(), V1, V2)] = [3 3] V1 + [3 3] V2 + [0] 587.84/148.18 [0 0] [0 0] [0] 587.84/148.18 >= [1 0] V2 + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 = [activate^#(V2)] 587.84/148.19 587.84/148.19 [U21^#(tt(), V1, V2)] = [3 3] V1 + [3 3] V2 + [0] 587.84/148.19 [0 0] [0 0] [0] 587.84/148.19 >= [3 3] V2 + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 = [U22^#(isList(activate(V1)), activate(V2))] 587.84/148.19 587.84/148.19 [U21^#(tt(), V1, V2)] = [3 3] V1 + [3 3] V2 + [0] 587.84/148.19 [0 0] [0 0] [0] 587.84/148.19 >= [3 3] V1 + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 = [isList^#(activate(V1))] 587.84/148.19 587.84/148.19 [U22^#(tt(), V2)] = [3 3] V2 + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 >= [1 0] V2 + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 = [activate^#(V2)] 587.84/148.19 587.84/148.19 [U22^#(tt(), V2)] = [3 3] V2 + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 >= [3 3] V2 + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 = [isList^#(activate(V2))] 587.84/148.19 587.84/148.19 [isList^#(V)] = [3 3] V + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 >= [3 3] V + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 = [U11^#(isPalListKind(activate(V)), activate(V))] 587.84/148.19 587.84/148.19 [isList^#(V)] = [3 3] V + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 >= [1 0] V + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 = [activate^#(V)] 587.84/148.19 587.84/148.19 [isList^#(V)] = [3 3] V + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 >= [0 1] V + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 = [isPalListKind^#(activate(V))] 587.84/148.19 587.84/148.19 [isList^#(n____(V1, V2))] = [3 3] V1 + [3 3] V2 + [12] 587.84/148.19 [0 0] [0 0] [0] 587.84/148.19 > [1 0] V1 + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 = [activate^#(V1)] 587.84/148.19 587.84/148.19 [isList^#(n____(V1, V2))] = [3 3] V1 + [3 3] V2 + [12] 587.84/148.19 [0 0] [0 0] [0] 587.84/148.19 > [1 0] V2 + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 = [activate^#(V2)] 587.84/148.19 587.84/148.19 [isList^#(n____(V1, V2))] = [3 3] V1 + [3 3] V2 + [12] 587.84/148.19 [0 0] [0 0] [0] 587.84/148.19 > [0 1] V1 + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 = [isPalListKind^#(activate(V1))] 587.84/148.19 587.84/148.19 [isList^#(n____(V1, V2))] = [3 3] V1 + [3 3] V2 + [12] 587.84/148.19 [0 0] [0 0] [0] 587.84/148.19 > [0 1] V2 + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 = [and^#(isPalListKind(activate(V1)), 587.84/148.19 n__isPalListKind(activate(V2)))] 587.84/148.19 587.84/148.19 [isList^#(n____(V1, V2))] = [3 3] V1 + [3 3] V2 + [12] 587.84/148.19 [0 0] [0 0] [0] 587.84/148.19 > [3 3] V1 + [3 3] V2 + [0] 587.84/148.19 [0 0] [0 0] [0] 587.84/148.19 = [U21^#(and(isPalListKind(activate(V1)), 587.84/148.19 n__isPalListKind(activate(V2))), 587.84/148.19 activate(V1), 587.84/148.19 activate(V2))] 587.84/148.19 587.84/148.19 [U42^#(tt(), V2)] = [3 3] V2 + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 >= [3 3] V2 + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 = [isNeList^#(activate(V2))] 587.84/148.19 587.84/148.19 [U42^#(tt(), V2)] = [3 3] V2 + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 >= [1 0] V2 + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 = [activate^#(V2)] 587.84/148.19 587.84/148.19 [U52^#(tt(), V2)] = [3 3] V2 + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 >= [1 0] V2 + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 = [activate^#(V2)] 587.84/148.19 587.84/148.19 [U52^#(tt(), V2)] = [3 3] V2 + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 >= [3 3] V2 + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 = [isList^#(activate(V2))] 587.84/148.19 587.84/148.19 [U61^#(tt(), V)] = [1 0] V + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 >= [1 0] V + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 = [activate^#(V)] 587.84/148.19 587.84/148.19 [U71^#(tt(), V)] = [4 1] V + [4] 587.84/148.19 [0 0] [0] 587.84/148.19 > [1 0] V + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 = [activate^#(V)] 587.84/148.19 587.84/148.19 [U71^#(tt(), V)] = [4 1] V + [4] 587.84/148.19 [0 0] [0] 587.84/148.19 > [4 1] V + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 = [isNePal^#(activate(V))] 587.84/148.19 587.84/148.19 [isNePal^#(V)] = [4 1] V + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 >= [1 0] V + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 = [activate^#(V)] 587.84/148.19 587.84/148.19 [isNePal^#(V)] = [4 1] V + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 >= [0 1] V + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 = [isPalListKind^#(activate(V))] 587.84/148.19 587.84/148.19 [isNePal^#(V)] = [4 1] V + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 >= [1 0] V + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 = [U61^#(isPalListKind(activate(V)), activate(V))] 587.84/148.19 587.84/148.19 [isPal^#(V)] = [7 7] V + [7] 587.84/148.19 [7 7] [7] 587.84/148.19 > [1 0] V + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 = [activate^#(V)] 587.84/148.19 587.84/148.19 [isPal^#(V)] = [7 7] V + [7] 587.84/148.19 [7 7] [7] 587.84/148.19 > [0 1] V + [0] 587.84/148.19 [0 0] [0] 587.84/148.19 = [isPalListKind^#(activate(V))] 587.84/148.19 587.84/148.19 [isPal^#(V)] = [7 7] V + [7] 587.84/148.19 [7 7] [7] 587.84/148.19 > [4 1] V + [4] 587.84/148.19 [0 0] [0] 587.84/148.19 = [U71^#(isPalListKind(activate(V)), activate(V))] 587.84/148.19 587.84/148.19 587.84/148.19 We return to the main proof. Consider the set of all dependency 587.84/148.19 pairs 587.84/148.19 587.84/148.19 : 587.84/148.19 { 1: activate^#(n__isPalListKind(X)) -> c_5(isPalListKind^#(X)) 587.84/148.19 , 2: activate^#(n__and(X1, X2)) -> c_6(and^#(X1, X2)) 587.84/148.19 , 3: isPalListKind^#(n____(V1, V2)) -> 587.84/148.19 c_8(and^#(isPalListKind(activate(V1)), 587.84/148.19 n__isPalListKind(activate(V2))), 587.84/148.19 isPalListKind^#(activate(V1)), 587.84/148.19 activate^#(V1), 587.84/148.19 activate^#(V2)) 587.84/148.19 , 4: and^#(tt(), X) -> c_10(activate^#(X)) 587.84/148.19 , 5: U11^#(tt(), V) -> isNeList^#(activate(V)) 587.84/148.19 , 6: U11^#(tt(), V) -> activate^#(V) 587.84/148.19 , 7: isNeList^#(V) -> 587.84/148.19 c_2(U31^#(isPalListKind(activate(V)), activate(V)), 587.84/148.19 isPalListKind^#(activate(V)), 587.84/148.19 activate^#(V), 587.84/148.19 activate^#(V)) 587.84/148.19 , 8: isNeList^#(n____(V1, V2)) -> activate^#(V1) 587.84/148.19 , 9: isNeList^#(n____(V1, V2)) -> activate^#(V2) 587.84/148.19 , 10: isNeList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1)) 587.84/148.19 , 11: isNeList^#(n____(V1, V2)) -> 587.84/148.19 U41^#(and(isPalListKind(activate(V1)), 587.84/148.19 n__isPalListKind(activate(V2))), 587.84/148.19 activate(V1), 587.84/148.19 activate(V2)) 587.84/148.19 , 12: isNeList^#(n____(V1, V2)) -> 587.84/148.19 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.84/148.19 , 13: isNeList^#(n____(V1, V2)) -> 587.84/148.19 U51^#(and(isPalListKind(activate(V1)), 587.84/148.19 n__isPalListKind(activate(V2))), 587.84/148.19 activate(V1), 587.84/148.19 activate(V2)) 587.84/148.19 , 14: U31^#(tt(), V) -> c_7(activate^#(V)) 587.84/148.19 , 15: U41^#(tt(), V1, V2) -> activate^#(V1) 587.84/148.19 , 16: U41^#(tt(), V1, V2) -> activate^#(V2) 587.84/148.19 , 17: U41^#(tt(), V1, V2) -> isList^#(activate(V1)) 587.84/148.19 , 18: U41^#(tt(), V1, V2) -> 587.84/148.19 U42^#(isList(activate(V1)), activate(V2)) 587.84/148.19 , 19: U51^#(tt(), V1, V2) -> isNeList^#(activate(V1)) 587.84/148.19 , 20: U51^#(tt(), V1, V2) -> activate^#(V1) 587.84/148.19 , 21: U51^#(tt(), V1, V2) -> activate^#(V2) 587.84/148.19 , 22: U51^#(tt(), V1, V2) -> 587.84/148.19 U52^#(isNeList(activate(V1)), activate(V2)) 587.84/148.19 , 23: U21^#(tt(), V1, V2) -> activate^#(V1) 587.84/148.19 , 24: U21^#(tt(), V1, V2) -> activate^#(V2) 587.84/148.19 , 25: U21^#(tt(), V1, V2) -> 587.84/148.19 U22^#(isList(activate(V1)), activate(V2)) 587.84/148.19 , 26: U21^#(tt(), V1, V2) -> isList^#(activate(V1)) 587.84/148.19 , 27: U22^#(tt(), V2) -> activate^#(V2) 587.84/148.19 , 28: U22^#(tt(), V2) -> isList^#(activate(V2)) 587.84/148.19 , 29: isList^#(V) -> U11^#(isPalListKind(activate(V)), activate(V)) 587.84/148.19 , 30: isList^#(V) -> activate^#(V) 587.84/148.19 , 31: isList^#(V) -> isPalListKind^#(activate(V)) 587.84/148.19 , 32: isList^#(n____(V1, V2)) -> activate^#(V1) 587.84/148.19 , 33: isList^#(n____(V1, V2)) -> activate^#(V2) 587.84/148.19 , 34: isList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1)) 587.84/148.19 , 35: isList^#(n____(V1, V2)) -> 587.84/148.19 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.84/148.19 , 36: isList^#(n____(V1, V2)) -> 587.84/148.19 U21^#(and(isPalListKind(activate(V1)), 587.84/148.19 n__isPalListKind(activate(V2))), 587.84/148.19 activate(V1), 587.84/148.19 activate(V2)) 587.84/148.19 , 37: U42^#(tt(), V2) -> isNeList^#(activate(V2)) 587.84/148.19 , 38: U42^#(tt(), V2) -> activate^#(V2) 587.84/148.19 , 39: U52^#(tt(), V2) -> activate^#(V2) 587.84/148.19 , 40: U52^#(tt(), V2) -> isList^#(activate(V2)) 587.84/148.19 , 41: U61^#(tt(), V) -> activate^#(V) 587.84/148.19 , 42: U71^#(tt(), V) -> activate^#(V) 587.84/148.19 , 43: U71^#(tt(), V) -> isNePal^#(activate(V)) 587.84/148.19 , 44: isNePal^#(V) -> activate^#(V) 587.84/148.19 , 45: isNePal^#(V) -> isPalListKind^#(activate(V)) 587.84/148.19 , 46: isNePal^#(V) -> 587.84/148.19 U61^#(isPalListKind(activate(V)), activate(V)) 587.84/148.19 , 47: isPal^#(V) -> activate^#(V) 587.84/148.19 , 48: isPal^#(V) -> isPalListKind^#(activate(V)) 587.84/148.19 , 49: isPal^#(V) -> 587.84/148.19 U71^#(isPalListKind(activate(V)), activate(V)) } 587.84/148.19 587.84/148.19 Processor 'matrix interpretation of dimension 2' induces the 587.84/148.19 complexity certificate YES(?,O(n^1)) on application of dependency 587.84/148.19 pairs {2,3,8,9,10,11,12,13,32,33,34,35,36,42,43,47,48,49}. These 587.84/148.19 cover all (indirect) predecessors of dependency pairs 587.84/148.19 {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}, 587.84/148.19 their number of application is equally bounded. The dependency 587.84/148.19 pairs are shifted into the weak component. 587.84/148.19 587.84/148.19 We are left with following problem, upon which TcT provides the 587.84/148.19 certificate YES(O(1),O(1)). 587.84/148.19 587.84/148.19 Weak DPs: 587.84/148.19 { U11^#(tt(), V) -> isNeList^#(activate(V)) 587.84/148.19 , U11^#(tt(), V) -> activate^#(V) 587.84/148.19 , isNeList^#(V) -> 587.84/148.19 c_2(U31^#(isPalListKind(activate(V)), activate(V)), 587.84/148.19 isPalListKind^#(activate(V)), 587.84/148.19 activate^#(V), 587.84/148.19 activate^#(V)) 587.84/148.19 , isNeList^#(n____(V1, V2)) -> activate^#(V1) 587.84/148.19 , isNeList^#(n____(V1, V2)) -> activate^#(V2) 587.84/148.19 , isNeList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1)) 587.84/148.19 , isNeList^#(n____(V1, V2)) -> 587.84/148.19 U41^#(and(isPalListKind(activate(V1)), 587.84/148.19 n__isPalListKind(activate(V2))), 587.84/148.19 activate(V1), 587.84/148.19 activate(V2)) 587.84/148.19 , isNeList^#(n____(V1, V2)) -> 587.84/148.19 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.84/148.19 , isNeList^#(n____(V1, V2)) -> 587.84/148.19 U51^#(and(isPalListKind(activate(V1)), 587.84/148.19 n__isPalListKind(activate(V2))), 587.84/148.19 activate(V1), 587.84/148.19 activate(V2)) 587.84/148.19 , activate^#(n__isPalListKind(X)) -> c_5(isPalListKind^#(X)) 587.84/148.19 , activate^#(n__and(X1, X2)) -> c_6(and^#(X1, X2)) 587.84/148.19 , U31^#(tt(), V) -> c_7(activate^#(V)) 587.84/148.19 , isPalListKind^#(n____(V1, V2)) -> 587.84/148.19 c_8(and^#(isPalListKind(activate(V1)), 587.84/148.19 n__isPalListKind(activate(V2))), 587.84/148.19 isPalListKind^#(activate(V1)), 587.84/148.19 activate^#(V1), 587.84/148.19 activate^#(V2)) 587.84/148.19 , U41^#(tt(), V1, V2) -> activate^#(V1) 587.84/148.19 , U41^#(tt(), V1, V2) -> activate^#(V2) 587.84/148.19 , U41^#(tt(), V1, V2) -> isList^#(activate(V1)) 587.84/148.19 , U41^#(tt(), V1, V2) -> U42^#(isList(activate(V1)), activate(V2)) 587.84/148.19 , and^#(tt(), X) -> c_10(activate^#(X)) 587.84/148.19 , U51^#(tt(), V1, V2) -> isNeList^#(activate(V1)) 587.84/148.19 , U51^#(tt(), V1, V2) -> activate^#(V1) 587.84/148.19 , U51^#(tt(), V1, V2) -> activate^#(V2) 587.84/148.19 , U51^#(tt(), V1, V2) -> 587.84/148.19 U52^#(isNeList(activate(V1)), activate(V2)) 587.84/148.19 , U21^#(tt(), V1, V2) -> activate^#(V1) 587.84/148.19 , U21^#(tt(), V1, V2) -> activate^#(V2) 587.84/148.19 , U21^#(tt(), V1, V2) -> U22^#(isList(activate(V1)), activate(V2)) 587.84/148.19 , U21^#(tt(), V1, V2) -> isList^#(activate(V1)) 587.84/148.19 , U22^#(tt(), V2) -> activate^#(V2) 587.84/148.19 , U22^#(tt(), V2) -> isList^#(activate(V2)) 587.84/148.19 , isList^#(V) -> U11^#(isPalListKind(activate(V)), activate(V)) 587.84/148.19 , isList^#(V) -> activate^#(V) 587.84/148.19 , isList^#(V) -> isPalListKind^#(activate(V)) 587.84/148.19 , isList^#(n____(V1, V2)) -> activate^#(V1) 587.84/148.19 , isList^#(n____(V1, V2)) -> activate^#(V2) 587.84/148.19 , isList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1)) 587.84/148.19 , isList^#(n____(V1, V2)) -> 587.84/148.19 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.84/148.20 , isList^#(n____(V1, V2)) -> 587.84/148.20 U21^#(and(isPalListKind(activate(V1)), 587.84/148.20 n__isPalListKind(activate(V2))), 587.84/148.20 activate(V1), 587.84/148.20 activate(V2)) 587.84/148.20 , U42^#(tt(), V2) -> isNeList^#(activate(V2)) 587.84/148.20 , U42^#(tt(), V2) -> activate^#(V2) 587.84/148.20 , U52^#(tt(), V2) -> activate^#(V2) 587.84/148.20 , U52^#(tt(), V2) -> isList^#(activate(V2)) 587.84/148.20 , U61^#(tt(), V) -> activate^#(V) 587.84/148.20 , U71^#(tt(), V) -> activate^#(V) 587.84/148.20 , U71^#(tt(), V) -> isNePal^#(activate(V)) 587.84/148.20 , isNePal^#(V) -> activate^#(V) 587.84/148.20 , isNePal^#(V) -> isPalListKind^#(activate(V)) 587.84/148.20 , isNePal^#(V) -> U61^#(isPalListKind(activate(V)), activate(V)) 587.84/148.20 , isPal^#(V) -> activate^#(V) 587.84/148.20 , isPal^#(V) -> isPalListKind^#(activate(V)) 587.84/148.20 , isPal^#(V) -> U71^#(isPalListKind(activate(V)), activate(V)) } 587.84/148.20 Weak Trs: 587.84/148.20 { __(X1, X2) -> n____(X1, X2) 587.84/148.20 , nil() -> n__nil() 587.84/148.20 , U11(tt(), V) -> U12(isNeList(activate(V))) 587.84/148.20 , U12(tt()) -> tt() 587.84/148.20 , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) 587.84/148.20 , isNeList(n____(V1, V2)) -> 587.84/148.20 U41(and(isPalListKind(activate(V1)), 587.84/148.20 n__isPalListKind(activate(V2))), 587.84/148.20 activate(V1), 587.84/148.20 activate(V2)) 587.84/148.20 , isNeList(n____(V1, V2)) -> 587.84/148.20 U51(and(isPalListKind(activate(V1)), 587.84/148.20 n__isPalListKind(activate(V2))), 587.84/148.20 activate(V1), 587.84/148.20 activate(V2)) 587.84/148.20 , activate(X) -> X 587.84/148.20 , activate(n__nil()) -> nil() 587.84/148.20 , activate(n____(X1, X2)) -> __(X1, X2) 587.84/148.20 , activate(n__isPalListKind(X)) -> isPalListKind(X) 587.84/148.20 , activate(n__and(X1, X2)) -> and(X1, X2) 587.84/148.20 , activate(n__a()) -> a() 587.84/148.20 , activate(n__e()) -> e() 587.84/148.20 , activate(n__i()) -> i() 587.84/148.20 , activate(n__o()) -> o() 587.84/148.20 , activate(n__u()) -> u() 587.84/148.20 , U21(tt(), V1, V2) -> U22(isList(activate(V1)), activate(V2)) 587.84/148.20 , U22(tt(), V2) -> U23(isList(activate(V2))) 587.84/148.20 , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) 587.84/148.20 , isList(n__nil()) -> tt() 587.84/148.20 , isList(n____(V1, V2)) -> 587.84/148.20 U21(and(isPalListKind(activate(V1)), 587.84/148.20 n__isPalListKind(activate(V2))), 587.84/148.20 activate(V1), 587.84/148.20 activate(V2)) 587.84/148.20 , U23(tt()) -> tt() 587.84/148.20 , U31(tt(), V) -> U32(isQid(activate(V))) 587.84/148.20 , U32(tt()) -> tt() 587.84/148.20 , isQid(n__a()) -> tt() 587.84/148.20 , isQid(n__e()) -> tt() 587.84/148.20 , isQid(n__i()) -> tt() 587.84/148.20 , isQid(n__o()) -> tt() 587.84/148.20 , isQid(n__u()) -> tt() 587.84/148.20 , U41(tt(), V1, V2) -> U42(isList(activate(V1)), activate(V2)) 587.84/148.20 , U42(tt(), V2) -> U43(isNeList(activate(V2))) 587.84/148.20 , U43(tt()) -> tt() 587.84/148.20 , U51(tt(), V1, V2) -> U52(isNeList(activate(V1)), activate(V2)) 587.84/148.20 , U52(tt(), V2) -> U53(isList(activate(V2))) 587.84/148.20 , U53(tt()) -> tt() 587.84/148.20 , and(X1, X2) -> n__and(X1, X2) 587.84/148.20 , and(tt(), X) -> activate(X) 587.84/148.20 , isPalListKind(X) -> n__isPalListKind(X) 587.84/148.20 , isPalListKind(n__nil()) -> tt() 587.84/148.20 , isPalListKind(n____(V1, V2)) -> 587.84/148.20 and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.84/148.20 , isPalListKind(n__a()) -> tt() 587.84/148.20 , isPalListKind(n__e()) -> tt() 587.84/148.20 , isPalListKind(n__i()) -> tt() 587.84/148.20 , isPalListKind(n__o()) -> tt() 587.84/148.20 , isPalListKind(n__u()) -> tt() 587.84/148.20 , a() -> n__a() 587.84/148.20 , e() -> n__e() 587.84/148.20 , i() -> n__i() 587.84/148.20 , o() -> n__o() 587.84/148.20 , u() -> n__u() } 587.84/148.20 Obligation: 587.84/148.20 innermost runtime complexity 587.84/148.20 Answer: 587.84/148.20 YES(O(1),O(1)) 587.84/148.20 587.84/148.20 The following weak DPs constitute a sub-graph of the DG that is 587.84/148.20 closed under successors. The DPs are removed. 587.84/148.20 587.84/148.20 { U11^#(tt(), V) -> isNeList^#(activate(V)) 587.84/148.20 , U11^#(tt(), V) -> activate^#(V) 587.84/148.20 , isNeList^#(V) -> 587.84/148.20 c_2(U31^#(isPalListKind(activate(V)), activate(V)), 587.84/148.20 isPalListKind^#(activate(V)), 587.84/148.20 activate^#(V), 587.84/148.20 activate^#(V)) 587.84/148.20 , isNeList^#(n____(V1, V2)) -> activate^#(V1) 587.84/148.20 , isNeList^#(n____(V1, V2)) -> activate^#(V2) 587.84/148.20 , isNeList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1)) 587.84/148.20 , isNeList^#(n____(V1, V2)) -> 587.84/148.20 U41^#(and(isPalListKind(activate(V1)), 587.84/148.20 n__isPalListKind(activate(V2))), 587.84/148.20 activate(V1), 587.84/148.20 activate(V2)) 587.84/148.20 , isNeList^#(n____(V1, V2)) -> 587.84/148.20 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 587.84/148.20 , isNeList^#(n____(V1, V2)) -> 587.84/148.20 U51^#(and(isPalListKind(activate(V1)), 587.84/148.20 n__isPalListKind(activate(V2))), 587.84/148.20 activate(V1), 587.84/148.20 activate(V2)) 587.84/148.20 , activate^#(n__isPalListKind(X)) -> c_5(isPalListKind^#(X)) 587.84/148.20 , activate^#(n__and(X1, X2)) -> c_6(and^#(X1, X2)) 587.84/148.20 , U31^#(tt(), V) -> c_7(activate^#(V)) 587.84/148.20 , isPalListKind^#(n____(V1, V2)) -> 587.84/148.20 c_8(and^#(isPalListKind(activate(V1)), 587.84/148.20 n__isPalListKind(activate(V2))), 587.84/148.20 isPalListKind^#(activate(V1)), 587.84/148.20 activate^#(V1), 587.84/148.20 activate^#(V2)) 587.84/148.20 , U41^#(tt(), V1, V2) -> activate^#(V1) 587.84/148.20 , U41^#(tt(), V1, V2) -> activate^#(V2) 587.84/148.20 , U41^#(tt(), V1, V2) -> isList^#(activate(V1)) 587.84/148.20 , U41^#(tt(), V1, V2) -> U42^#(isList(activate(V1)), activate(V2)) 587.84/148.20 , and^#(tt(), X) -> c_10(activate^#(X)) 587.84/148.20 , U51^#(tt(), V1, V2) -> isNeList^#(activate(V1)) 587.84/148.20 , U51^#(tt(), V1, V2) -> activate^#(V1) 587.84/148.20 , U51^#(tt(), V1, V2) -> activate^#(V2) 588.09/148.20 , U51^#(tt(), V1, V2) -> 588.09/148.20 U52^#(isNeList(activate(V1)), activate(V2)) 588.09/148.20 , U21^#(tt(), V1, V2) -> activate^#(V1) 588.09/148.20 , U21^#(tt(), V1, V2) -> activate^#(V2) 588.09/148.20 , U21^#(tt(), V1, V2) -> U22^#(isList(activate(V1)), activate(V2)) 588.09/148.20 , U21^#(tt(), V1, V2) -> isList^#(activate(V1)) 588.09/148.20 , U22^#(tt(), V2) -> activate^#(V2) 588.09/148.20 , U22^#(tt(), V2) -> isList^#(activate(V2)) 588.09/148.20 , isList^#(V) -> U11^#(isPalListKind(activate(V)), activate(V)) 588.09/148.20 , isList^#(V) -> activate^#(V) 588.09/148.20 , isList^#(V) -> isPalListKind^#(activate(V)) 588.09/148.20 , isList^#(n____(V1, V2)) -> activate^#(V1) 588.09/148.20 , isList^#(n____(V1, V2)) -> activate^#(V2) 588.09/148.20 , isList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1)) 588.09/148.20 , isList^#(n____(V1, V2)) -> 588.09/148.20 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 588.09/148.20 , isList^#(n____(V1, V2)) -> 588.09/148.20 U21^#(and(isPalListKind(activate(V1)), 588.09/148.20 n__isPalListKind(activate(V2))), 588.09/148.20 activate(V1), 588.09/148.20 activate(V2)) 588.09/148.20 , U42^#(tt(), V2) -> isNeList^#(activate(V2)) 588.09/148.20 , U42^#(tt(), V2) -> activate^#(V2) 588.09/148.20 , U52^#(tt(), V2) -> activate^#(V2) 588.09/148.20 , U52^#(tt(), V2) -> isList^#(activate(V2)) 588.09/148.20 , U61^#(tt(), V) -> activate^#(V) 588.09/148.20 , U71^#(tt(), V) -> activate^#(V) 588.09/148.20 , U71^#(tt(), V) -> isNePal^#(activate(V)) 588.09/148.20 , isNePal^#(V) -> activate^#(V) 588.09/148.20 , isNePal^#(V) -> isPalListKind^#(activate(V)) 588.09/148.20 , isNePal^#(V) -> U61^#(isPalListKind(activate(V)), activate(V)) 588.09/148.20 , isPal^#(V) -> activate^#(V) 588.09/148.20 , isPal^#(V) -> isPalListKind^#(activate(V)) 588.09/148.20 , isPal^#(V) -> U71^#(isPalListKind(activate(V)), activate(V)) } 588.09/148.20 588.09/148.20 We are left with following problem, upon which TcT provides the 588.09/148.20 certificate YES(O(1),O(1)). 588.09/148.20 588.09/148.20 Weak Trs: 588.09/148.20 { __(X1, X2) -> n____(X1, X2) 588.09/148.20 , nil() -> n__nil() 588.09/148.20 , U11(tt(), V) -> U12(isNeList(activate(V))) 588.09/148.20 , U12(tt()) -> tt() 588.09/148.20 , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) 588.09/148.20 , isNeList(n____(V1, V2)) -> 588.09/148.20 U41(and(isPalListKind(activate(V1)), 588.09/148.20 n__isPalListKind(activate(V2))), 588.09/148.20 activate(V1), 588.09/148.20 activate(V2)) 588.09/148.20 , isNeList(n____(V1, V2)) -> 588.09/148.20 U51(and(isPalListKind(activate(V1)), 588.09/148.20 n__isPalListKind(activate(V2))), 588.09/148.20 activate(V1), 588.09/148.20 activate(V2)) 588.09/148.20 , activate(X) -> X 588.09/148.20 , activate(n__nil()) -> nil() 588.09/148.20 , activate(n____(X1, X2)) -> __(X1, X2) 588.09/148.20 , activate(n__isPalListKind(X)) -> isPalListKind(X) 588.09/148.20 , activate(n__and(X1, X2)) -> and(X1, X2) 588.09/148.20 , activate(n__a()) -> a() 588.09/148.20 , activate(n__e()) -> e() 588.09/148.20 , activate(n__i()) -> i() 588.09/148.20 , activate(n__o()) -> o() 588.09/148.20 , activate(n__u()) -> u() 588.09/148.20 , U21(tt(), V1, V2) -> U22(isList(activate(V1)), activate(V2)) 588.09/148.20 , U22(tt(), V2) -> U23(isList(activate(V2))) 588.09/148.20 , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) 588.09/148.20 , isList(n__nil()) -> tt() 588.09/148.20 , isList(n____(V1, V2)) -> 588.09/148.20 U21(and(isPalListKind(activate(V1)), 588.09/148.20 n__isPalListKind(activate(V2))), 588.09/148.20 activate(V1), 588.09/148.20 activate(V2)) 588.09/148.20 , U23(tt()) -> tt() 588.09/148.20 , U31(tt(), V) -> U32(isQid(activate(V))) 588.09/148.20 , U32(tt()) -> tt() 588.09/148.20 , isQid(n__a()) -> tt() 588.09/148.20 , isQid(n__e()) -> tt() 588.09/148.20 , isQid(n__i()) -> tt() 588.09/148.20 , isQid(n__o()) -> tt() 588.09/148.20 , isQid(n__u()) -> tt() 588.09/148.20 , U41(tt(), V1, V2) -> U42(isList(activate(V1)), activate(V2)) 588.09/148.20 , U42(tt(), V2) -> U43(isNeList(activate(V2))) 588.09/148.20 , U43(tt()) -> tt() 588.09/148.20 , U51(tt(), V1, V2) -> U52(isNeList(activate(V1)), activate(V2)) 588.09/148.20 , U52(tt(), V2) -> U53(isList(activate(V2))) 588.09/148.20 , U53(tt()) -> tt() 588.09/148.20 , and(X1, X2) -> n__and(X1, X2) 588.09/148.20 , and(tt(), X) -> activate(X) 588.09/148.20 , isPalListKind(X) -> n__isPalListKind(X) 588.09/148.20 , isPalListKind(n__nil()) -> tt() 588.09/148.20 , isPalListKind(n____(V1, V2)) -> 588.09/148.20 and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 588.09/148.20 , isPalListKind(n__a()) -> tt() 588.09/148.20 , isPalListKind(n__e()) -> tt() 588.09/148.20 , isPalListKind(n__i()) -> tt() 588.09/148.20 , isPalListKind(n__o()) -> tt() 588.09/148.20 , isPalListKind(n__u()) -> tt() 588.09/148.20 , a() -> n__a() 588.09/148.20 , e() -> n__e() 588.09/148.20 , i() -> n__i() 588.09/148.20 , o() -> n__o() 588.09/148.20 , u() -> n__u() } 588.09/148.20 Obligation: 588.09/148.20 innermost runtime complexity 588.09/148.20 Answer: 588.09/148.20 YES(O(1),O(1)) 588.09/148.20 588.09/148.20 No rule is usable, rules are removed from the input problem. 588.09/148.20 588.09/148.20 We are left with following problem, upon which TcT provides the 588.09/148.20 certificate YES(O(1),O(1)). 588.09/148.20 588.09/148.20 Rules: Empty 588.09/148.20 Obligation: 588.09/148.20 innermost runtime complexity 588.09/148.20 Answer: 588.09/148.20 YES(O(1),O(1)) 588.09/148.20 588.09/148.20 Empty rules are trivially bounded 588.09/148.20 588.09/148.20 S) We are left with following problem, upon which TcT provides the 588.09/148.20 certificate YES(O(1),O(n^1)). 588.09/148.20 588.09/148.20 Strict DPs: 588.09/148.20 { U11^#(tt(), V) -> c_1(isNeList^#(activate(V)), activate^#(V)) 588.09/148.20 , isNeList^#(V) -> 588.09/148.20 c_2(U31^#(isPalListKind(activate(V)), activate(V)), 588.09/148.20 isPalListKind^#(activate(V)), 588.09/148.20 activate^#(V), 588.09/148.20 activate^#(V)) 588.09/148.20 , isNeList^#(n____(V1, V2)) -> 588.09/148.20 c_3(U41^#(and(isPalListKind(activate(V1)), 588.09/148.20 n__isPalListKind(activate(V2))), 588.09/148.20 activate(V1), 588.09/148.20 activate(V2)), 588.09/148.20 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 588.09/148.20 isPalListKind^#(activate(V1)), 588.09/148.20 activate^#(V1), 588.09/148.20 activate^#(V2), 588.09/148.20 activate^#(V1), 588.09/148.20 activate^#(V2)) 588.09/148.20 , isNeList^#(n____(V1, V2)) -> 588.09/148.20 c_4(U51^#(and(isPalListKind(activate(V1)), 588.09/148.20 n__isPalListKind(activate(V2))), 588.09/148.20 activate(V1), 588.09/148.20 activate(V2)), 588.09/148.20 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 588.09/148.20 isPalListKind^#(activate(V1)), 588.09/148.20 activate^#(V1), 588.09/148.20 activate^#(V2), 588.09/148.20 activate^#(V1), 588.09/148.20 activate^#(V2)) 588.09/148.20 , U31^#(tt(), V) -> c_7(activate^#(V)) 588.09/148.20 , U41^#(tt(), V1, V2) -> 588.09/148.20 c_9(U42^#(isList(activate(V1)), activate(V2)), 588.09/148.20 isList^#(activate(V1)), 588.09/148.20 activate^#(V1), 588.09/148.20 activate^#(V2)) 588.09/148.20 , U51^#(tt(), V1, V2) -> 588.09/148.20 c_11(U52^#(isNeList(activate(V1)), activate(V2)), 588.09/148.20 isNeList^#(activate(V1)), 588.09/148.20 activate^#(V1), 588.09/148.20 activate^#(V2)) 588.09/148.20 , U21^#(tt(), V1, V2) -> 588.09/148.20 c_12(U22^#(isList(activate(V1)), activate(V2)), 588.09/148.20 isList^#(activate(V1)), 588.09/148.20 activate^#(V1), 588.09/148.20 activate^#(V2)) 588.09/148.20 , U22^#(tt(), V2) -> c_13(isList^#(activate(V2)), activate^#(V2)) 588.09/148.20 , isList^#(V) -> 588.09/148.20 c_14(U11^#(isPalListKind(activate(V)), activate(V)), 588.09/148.20 isPalListKind^#(activate(V)), 588.09/148.20 activate^#(V), 588.09/148.20 activate^#(V)) 588.09/148.20 , isList^#(n____(V1, V2)) -> 588.09/148.20 c_15(U21^#(and(isPalListKind(activate(V1)), 588.09/148.20 n__isPalListKind(activate(V2))), 588.09/148.20 activate(V1), 588.09/148.20 activate(V2)), 588.09/148.20 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 588.09/148.20 isPalListKind^#(activate(V1)), 588.09/148.20 activate^#(V1), 588.09/148.20 activate^#(V2), 588.09/148.20 activate^#(V1), 588.09/148.20 activate^#(V2)) 588.09/148.20 , U42^#(tt(), V2) -> c_16(isNeList^#(activate(V2)), activate^#(V2)) 588.09/148.20 , U52^#(tt(), V2) -> c_17(isList^#(activate(V2)), activate^#(V2)) } 588.09/148.20 Weak DPs: 588.09/148.20 { activate^#(n__isPalListKind(X)) -> c_5(isPalListKind^#(X)) 588.09/148.20 , activate^#(n__and(X1, X2)) -> c_6(and^#(X1, X2)) 588.09/148.20 , isPalListKind^#(n____(V1, V2)) -> 588.09/148.20 c_8(and^#(isPalListKind(activate(V1)), 588.09/148.20 n__isPalListKind(activate(V2))), 588.09/148.20 isPalListKind^#(activate(V1)), 588.09/148.20 activate^#(V1), 588.09/148.20 activate^#(V2)) 588.09/148.20 , and^#(tt(), X) -> c_10(activate^#(X)) 588.09/148.20 , U61^#(tt(), V) -> c_18(activate^#(V)) 588.09/148.20 , U71^#(tt(), V) -> c_19(isNePal^#(activate(V)), activate^#(V)) 588.09/148.20 , isNePal^#(V) -> 588.09/148.20 c_20(U61^#(isPalListKind(activate(V)), activate(V)), 588.09/148.20 isPalListKind^#(activate(V)), 588.09/148.20 activate^#(V), 588.09/148.20 activate^#(V)) 588.09/148.20 , isPal^#(V) -> 588.09/148.20 c_21(U71^#(isPalListKind(activate(V)), activate(V)), 588.09/148.20 isPalListKind^#(activate(V)), 588.09/148.20 activate^#(V), 588.09/148.20 activate^#(V)) } 588.09/148.20 Weak Trs: 588.09/148.20 { __(X1, X2) -> n____(X1, X2) 588.09/148.20 , nil() -> n__nil() 588.09/148.20 , U11(tt(), V) -> U12(isNeList(activate(V))) 588.09/148.20 , U12(tt()) -> tt() 588.09/148.20 , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) 588.09/148.20 , isNeList(n____(V1, V2)) -> 588.09/148.20 U41(and(isPalListKind(activate(V1)), 588.09/148.20 n__isPalListKind(activate(V2))), 588.09/148.20 activate(V1), 588.09/148.20 activate(V2)) 588.09/148.20 , isNeList(n____(V1, V2)) -> 588.09/148.20 U51(and(isPalListKind(activate(V1)), 588.09/148.20 n__isPalListKind(activate(V2))), 588.09/148.20 activate(V1), 588.09/148.20 activate(V2)) 588.09/148.20 , activate(X) -> X 588.09/148.20 , activate(n__nil()) -> nil() 588.09/148.20 , activate(n____(X1, X2)) -> __(X1, X2) 588.09/148.20 , activate(n__isPalListKind(X)) -> isPalListKind(X) 588.09/148.20 , activate(n__and(X1, X2)) -> and(X1, X2) 588.09/148.20 , activate(n__a()) -> a() 588.09/148.20 , activate(n__e()) -> e() 588.09/148.20 , activate(n__i()) -> i() 588.09/148.20 , activate(n__o()) -> o() 588.09/148.20 , activate(n__u()) -> u() 588.09/148.20 , U21(tt(), V1, V2) -> U22(isList(activate(V1)), activate(V2)) 588.09/148.20 , U22(tt(), V2) -> U23(isList(activate(V2))) 588.09/148.20 , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) 588.09/148.20 , isList(n__nil()) -> tt() 588.09/148.20 , isList(n____(V1, V2)) -> 588.09/148.20 U21(and(isPalListKind(activate(V1)), 588.09/148.20 n__isPalListKind(activate(V2))), 588.09/148.20 activate(V1), 588.09/148.20 activate(V2)) 588.09/148.20 , U23(tt()) -> tt() 588.09/148.20 , U31(tt(), V) -> U32(isQid(activate(V))) 588.09/148.20 , U32(tt()) -> tt() 588.09/148.20 , isQid(n__a()) -> tt() 588.09/148.20 , isQid(n__e()) -> tt() 588.09/148.20 , isQid(n__i()) -> tt() 588.09/148.20 , isQid(n__o()) -> tt() 588.09/148.20 , isQid(n__u()) -> tt() 588.09/148.20 , U41(tt(), V1, V2) -> U42(isList(activate(V1)), activate(V2)) 588.09/148.20 , U42(tt(), V2) -> U43(isNeList(activate(V2))) 588.09/148.20 , U43(tt()) -> tt() 588.09/148.20 , U51(tt(), V1, V2) -> U52(isNeList(activate(V1)), activate(V2)) 588.09/148.20 , U52(tt(), V2) -> U53(isList(activate(V2))) 588.09/148.20 , U53(tt()) -> tt() 588.09/148.20 , and(X1, X2) -> n__and(X1, X2) 588.09/148.20 , and(tt(), X) -> activate(X) 588.09/148.20 , isPalListKind(X) -> n__isPalListKind(X) 588.09/148.20 , isPalListKind(n__nil()) -> tt() 588.09/148.20 , isPalListKind(n____(V1, V2)) -> 588.09/148.20 and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 588.09/148.20 , isPalListKind(n__a()) -> tt() 588.09/148.20 , isPalListKind(n__e()) -> tt() 588.09/148.20 , isPalListKind(n__i()) -> tt() 588.09/148.20 , isPalListKind(n__o()) -> tt() 588.09/148.20 , isPalListKind(n__u()) -> tt() 588.09/148.20 , a() -> n__a() 588.09/148.20 , e() -> n__e() 588.09/148.20 , i() -> n__i() 588.09/148.20 , o() -> n__o() 588.09/148.20 , u() -> n__u() } 588.09/148.20 Obligation: 588.09/148.20 innermost runtime complexity 588.09/148.20 Answer: 588.09/148.20 YES(O(1),O(n^1)) 588.09/148.20 588.09/148.20 We estimate the number of application of {5} by applications of 588.09/148.20 Pre({5}) = {2}. Here rules are labeled as follows: 588.09/148.20 588.09/148.20 DPs: 588.09/148.20 { 1: U11^#(tt(), V) -> c_1(isNeList^#(activate(V)), activate^#(V)) 588.09/148.20 , 2: isNeList^#(V) -> 588.09/148.20 c_2(U31^#(isPalListKind(activate(V)), activate(V)), 588.09/148.20 isPalListKind^#(activate(V)), 588.09/148.20 activate^#(V), 588.09/148.20 activate^#(V)) 588.09/148.20 , 3: isNeList^#(n____(V1, V2)) -> 588.09/148.20 c_3(U41^#(and(isPalListKind(activate(V1)), 588.09/148.20 n__isPalListKind(activate(V2))), 588.09/148.20 activate(V1), 588.09/148.20 activate(V2)), 588.09/148.20 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 588.09/148.20 isPalListKind^#(activate(V1)), 588.09/148.20 activate^#(V1), 588.09/148.20 activate^#(V2), 588.09/148.20 activate^#(V1), 588.09/148.20 activate^#(V2)) 588.09/148.20 , 4: isNeList^#(n____(V1, V2)) -> 588.09/148.20 c_4(U51^#(and(isPalListKind(activate(V1)), 588.09/148.20 n__isPalListKind(activate(V2))), 588.09/148.20 activate(V1), 588.09/148.20 activate(V2)), 588.09/148.20 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 588.09/148.20 isPalListKind^#(activate(V1)), 588.09/148.20 activate^#(V1), 588.09/148.20 activate^#(V2), 588.09/148.20 activate^#(V1), 588.09/148.20 activate^#(V2)) 588.09/148.20 , 5: U31^#(tt(), V) -> c_7(activate^#(V)) 588.09/148.20 , 6: U41^#(tt(), V1, V2) -> 588.09/148.20 c_9(U42^#(isList(activate(V1)), activate(V2)), 588.09/148.20 isList^#(activate(V1)), 588.09/148.20 activate^#(V1), 588.09/148.20 activate^#(V2)) 588.09/148.20 , 7: U51^#(tt(), V1, V2) -> 588.09/148.20 c_11(U52^#(isNeList(activate(V1)), activate(V2)), 588.09/148.20 isNeList^#(activate(V1)), 588.09/148.20 activate^#(V1), 588.09/148.20 activate^#(V2)) 588.09/148.20 , 8: U21^#(tt(), V1, V2) -> 588.09/148.20 c_12(U22^#(isList(activate(V1)), activate(V2)), 588.09/148.20 isList^#(activate(V1)), 588.09/148.20 activate^#(V1), 588.09/148.20 activate^#(V2)) 588.09/148.20 , 9: U22^#(tt(), V2) -> 588.09/148.20 c_13(isList^#(activate(V2)), activate^#(V2)) 588.09/148.20 , 10: isList^#(V) -> 588.09/148.20 c_14(U11^#(isPalListKind(activate(V)), activate(V)), 588.09/148.20 isPalListKind^#(activate(V)), 588.09/148.20 activate^#(V), 588.09/148.20 activate^#(V)) 588.09/148.20 , 11: isList^#(n____(V1, V2)) -> 588.09/148.20 c_15(U21^#(and(isPalListKind(activate(V1)), 588.09/148.20 n__isPalListKind(activate(V2))), 588.09/148.20 activate(V1), 588.09/148.20 activate(V2)), 588.09/148.20 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 588.09/148.20 isPalListKind^#(activate(V1)), 588.09/148.20 activate^#(V1), 588.09/148.20 activate^#(V2), 588.09/148.20 activate^#(V1), 588.09/148.20 activate^#(V2)) 588.09/148.20 , 12: U42^#(tt(), V2) -> 588.09/148.20 c_16(isNeList^#(activate(V2)), activate^#(V2)) 588.09/148.20 , 13: U52^#(tt(), V2) -> 588.09/148.20 c_17(isList^#(activate(V2)), activate^#(V2)) 588.09/148.20 , 14: activate^#(n__isPalListKind(X)) -> c_5(isPalListKind^#(X)) 588.09/148.20 , 15: activate^#(n__and(X1, X2)) -> c_6(and^#(X1, X2)) 588.09/148.20 , 16: isPalListKind^#(n____(V1, V2)) -> 588.09/148.20 c_8(and^#(isPalListKind(activate(V1)), 588.09/148.20 n__isPalListKind(activate(V2))), 588.09/148.20 isPalListKind^#(activate(V1)), 588.09/148.20 activate^#(V1), 588.09/148.20 activate^#(V2)) 588.09/148.20 , 17: and^#(tt(), X) -> c_10(activate^#(X)) 588.09/148.20 , 18: U61^#(tt(), V) -> c_18(activate^#(V)) 588.09/148.20 , 19: U71^#(tt(), V) -> c_19(isNePal^#(activate(V)), activate^#(V)) 588.09/148.20 , 20: isNePal^#(V) -> 588.09/148.20 c_20(U61^#(isPalListKind(activate(V)), activate(V)), 588.09/148.20 isPalListKind^#(activate(V)), 588.09/148.20 activate^#(V), 588.09/148.20 activate^#(V)) 588.09/148.20 , 21: isPal^#(V) -> 588.09/148.20 c_21(U71^#(isPalListKind(activate(V)), activate(V)), 588.09/148.20 isPalListKind^#(activate(V)), 588.09/148.20 activate^#(V), 588.09/148.20 activate^#(V)) } 588.09/148.20 588.09/148.20 We are left with following problem, upon which TcT provides the 588.09/148.20 certificate YES(O(1),O(n^1)). 588.09/148.20 588.09/148.20 Strict DPs: 588.09/148.20 { U11^#(tt(), V) -> c_1(isNeList^#(activate(V)), activate^#(V)) 588.09/148.20 , isNeList^#(V) -> 588.09/148.20 c_2(U31^#(isPalListKind(activate(V)), activate(V)), 588.09/148.20 isPalListKind^#(activate(V)), 588.09/148.20 activate^#(V), 588.09/148.20 activate^#(V)) 588.09/148.20 , isNeList^#(n____(V1, V2)) -> 588.09/148.20 c_3(U41^#(and(isPalListKind(activate(V1)), 588.09/148.20 n__isPalListKind(activate(V2))), 588.09/148.20 activate(V1), 588.09/148.20 activate(V2)), 588.09/148.20 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 588.09/148.20 isPalListKind^#(activate(V1)), 588.09/148.20 activate^#(V1), 588.09/148.20 activate^#(V2), 588.09/148.20 activate^#(V1), 588.09/148.20 activate^#(V2)) 588.09/148.20 , isNeList^#(n____(V1, V2)) -> 588.09/148.20 c_4(U51^#(and(isPalListKind(activate(V1)), 588.09/148.20 n__isPalListKind(activate(V2))), 588.09/148.20 activate(V1), 588.09/148.20 activate(V2)), 588.09/148.20 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 588.09/148.20 isPalListKind^#(activate(V1)), 588.09/148.20 activate^#(V1), 588.09/148.20 activate^#(V2), 588.09/148.20 activate^#(V1), 588.09/148.20 activate^#(V2)) 588.09/148.20 , U41^#(tt(), V1, V2) -> 588.09/148.20 c_9(U42^#(isList(activate(V1)), activate(V2)), 588.09/148.20 isList^#(activate(V1)), 588.09/148.20 activate^#(V1), 588.09/148.20 activate^#(V2)) 588.09/148.20 , U51^#(tt(), V1, V2) -> 588.09/148.20 c_11(U52^#(isNeList(activate(V1)), activate(V2)), 588.09/148.20 isNeList^#(activate(V1)), 588.09/148.20 activate^#(V1), 588.09/148.20 activate^#(V2)) 588.09/148.20 , U21^#(tt(), V1, V2) -> 588.09/148.20 c_12(U22^#(isList(activate(V1)), activate(V2)), 588.09/148.20 isList^#(activate(V1)), 588.09/148.20 activate^#(V1), 588.09/148.20 activate^#(V2)) 588.09/148.20 , U22^#(tt(), V2) -> c_13(isList^#(activate(V2)), activate^#(V2)) 588.09/148.20 , isList^#(V) -> 588.09/148.20 c_14(U11^#(isPalListKind(activate(V)), activate(V)), 588.09/148.20 isPalListKind^#(activate(V)), 588.09/148.20 activate^#(V), 588.09/148.20 activate^#(V)) 588.09/148.20 , isList^#(n____(V1, V2)) -> 588.09/148.20 c_15(U21^#(and(isPalListKind(activate(V1)), 588.09/148.20 n__isPalListKind(activate(V2))), 588.09/148.20 activate(V1), 588.09/148.20 activate(V2)), 588.09/148.20 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 588.09/148.20 isPalListKind^#(activate(V1)), 588.09/148.20 activate^#(V1), 588.09/148.20 activate^#(V2), 588.09/148.20 activate^#(V1), 588.09/148.20 activate^#(V2)) 588.09/148.20 , U42^#(tt(), V2) -> c_16(isNeList^#(activate(V2)), activate^#(V2)) 588.09/148.20 , U52^#(tt(), V2) -> c_17(isList^#(activate(V2)), activate^#(V2)) } 588.09/148.20 Weak DPs: 588.09/148.20 { activate^#(n__isPalListKind(X)) -> c_5(isPalListKind^#(X)) 588.09/148.20 , activate^#(n__and(X1, X2)) -> c_6(and^#(X1, X2)) 588.09/148.20 , U31^#(tt(), V) -> c_7(activate^#(V)) 588.09/148.20 , isPalListKind^#(n____(V1, V2)) -> 588.09/148.20 c_8(and^#(isPalListKind(activate(V1)), 588.09/148.20 n__isPalListKind(activate(V2))), 588.09/148.20 isPalListKind^#(activate(V1)), 588.09/148.20 activate^#(V1), 588.09/148.20 activate^#(V2)) 588.09/148.20 , and^#(tt(), X) -> c_10(activate^#(X)) 588.09/148.20 , U61^#(tt(), V) -> c_18(activate^#(V)) 588.09/148.20 , U71^#(tt(), V) -> c_19(isNePal^#(activate(V)), activate^#(V)) 588.09/148.20 , isNePal^#(V) -> 588.09/148.20 c_20(U61^#(isPalListKind(activate(V)), activate(V)), 588.09/148.20 isPalListKind^#(activate(V)), 588.09/148.20 activate^#(V), 588.09/148.20 activate^#(V)) 588.09/148.20 , isPal^#(V) -> 588.09/148.20 c_21(U71^#(isPalListKind(activate(V)), activate(V)), 588.09/148.20 isPalListKind^#(activate(V)), 588.09/148.20 activate^#(V), 588.09/148.20 activate^#(V)) } 588.09/148.20 Weak Trs: 588.09/148.20 { __(X1, X2) -> n____(X1, X2) 588.09/148.20 , nil() -> n__nil() 588.09/148.20 , U11(tt(), V) -> U12(isNeList(activate(V))) 588.09/148.20 , U12(tt()) -> tt() 588.09/148.20 , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) 588.09/148.21 , isNeList(n____(V1, V2)) -> 588.09/148.21 U41(and(isPalListKind(activate(V1)), 588.09/148.21 n__isPalListKind(activate(V2))), 588.09/148.21 activate(V1), 588.09/148.21 activate(V2)) 588.09/148.21 , isNeList(n____(V1, V2)) -> 588.09/148.21 U51(and(isPalListKind(activate(V1)), 588.09/148.21 n__isPalListKind(activate(V2))), 588.09/148.21 activate(V1), 588.09/148.21 activate(V2)) 588.09/148.21 , activate(X) -> X 588.09/148.21 , activate(n__nil()) -> nil() 588.09/148.21 , activate(n____(X1, X2)) -> __(X1, X2) 588.09/148.21 , activate(n__isPalListKind(X)) -> isPalListKind(X) 588.09/148.21 , activate(n__and(X1, X2)) -> and(X1, X2) 588.09/148.21 , activate(n__a()) -> a() 588.09/148.21 , activate(n__e()) -> e() 588.09/148.21 , activate(n__i()) -> i() 588.09/148.21 , activate(n__o()) -> o() 588.09/148.21 , activate(n__u()) -> u() 588.09/148.21 , U21(tt(), V1, V2) -> U22(isList(activate(V1)), activate(V2)) 588.09/148.21 , U22(tt(), V2) -> U23(isList(activate(V2))) 588.09/148.21 , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) 588.09/148.21 , isList(n__nil()) -> tt() 588.09/148.21 , isList(n____(V1, V2)) -> 588.09/148.21 U21(and(isPalListKind(activate(V1)), 588.09/148.21 n__isPalListKind(activate(V2))), 588.09/148.21 activate(V1), 588.09/148.21 activate(V2)) 588.09/148.21 , U23(tt()) -> tt() 588.09/148.21 , U31(tt(), V) -> U32(isQid(activate(V))) 588.09/148.21 , U32(tt()) -> tt() 588.09/148.21 , isQid(n__a()) -> tt() 588.09/148.21 , isQid(n__e()) -> tt() 588.09/148.21 , isQid(n__i()) -> tt() 588.09/148.21 , isQid(n__o()) -> tt() 588.09/148.21 , isQid(n__u()) -> tt() 588.09/148.21 , U41(tt(), V1, V2) -> U42(isList(activate(V1)), activate(V2)) 588.09/148.21 , U42(tt(), V2) -> U43(isNeList(activate(V2))) 588.09/148.21 , U43(tt()) -> tt() 588.09/148.21 , U51(tt(), V1, V2) -> U52(isNeList(activate(V1)), activate(V2)) 588.09/148.21 , U52(tt(), V2) -> U53(isList(activate(V2))) 588.09/148.21 , U53(tt()) -> tt() 588.09/148.21 , and(X1, X2) -> n__and(X1, X2) 588.09/148.21 , and(tt(), X) -> activate(X) 588.09/148.21 , isPalListKind(X) -> n__isPalListKind(X) 588.09/148.21 , isPalListKind(n__nil()) -> tt() 588.09/148.21 , isPalListKind(n____(V1, V2)) -> 588.09/148.21 and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 588.09/148.21 , isPalListKind(n__a()) -> tt() 588.09/148.21 , isPalListKind(n__e()) -> tt() 588.09/148.21 , isPalListKind(n__i()) -> tt() 588.09/148.21 , isPalListKind(n__o()) -> tt() 588.09/148.21 , isPalListKind(n__u()) -> tt() 588.09/148.21 , a() -> n__a() 588.09/148.21 , e() -> n__e() 588.09/148.21 , i() -> n__i() 588.09/148.21 , o() -> n__o() 588.09/148.21 , u() -> n__u() } 588.09/148.21 Obligation: 588.09/148.21 innermost runtime complexity 588.09/148.21 Answer: 588.09/148.21 YES(O(1),O(n^1)) 588.09/148.21 588.09/148.21 We estimate the number of application of {2} by applications of 588.09/148.21 Pre({2}) = {1,6,11}. Here rules are labeled as follows: 588.09/148.21 588.09/148.21 DPs: 588.09/148.21 { 1: U11^#(tt(), V) -> c_1(isNeList^#(activate(V)), activate^#(V)) 588.09/148.21 , 2: isNeList^#(V) -> 588.09/148.21 c_2(U31^#(isPalListKind(activate(V)), activate(V)), 588.09/148.21 isPalListKind^#(activate(V)), 588.09/148.21 activate^#(V), 588.09/148.21 activate^#(V)) 588.09/148.21 , 3: isNeList^#(n____(V1, V2)) -> 588.09/148.21 c_3(U41^#(and(isPalListKind(activate(V1)), 588.09/148.21 n__isPalListKind(activate(V2))), 588.09/148.21 activate(V1), 588.09/148.21 activate(V2)), 588.09/148.21 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 588.09/148.21 isPalListKind^#(activate(V1)), 588.09/148.21 activate^#(V1), 588.09/148.21 activate^#(V2), 588.09/148.21 activate^#(V1), 588.09/148.21 activate^#(V2)) 588.09/148.21 , 4: isNeList^#(n____(V1, V2)) -> 588.09/148.21 c_4(U51^#(and(isPalListKind(activate(V1)), 588.09/148.21 n__isPalListKind(activate(V2))), 588.09/148.21 activate(V1), 588.09/148.21 activate(V2)), 588.09/148.21 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 588.09/148.21 isPalListKind^#(activate(V1)), 588.09/148.21 activate^#(V1), 588.09/148.21 activate^#(V2), 588.09/148.21 activate^#(V1), 588.09/148.21 activate^#(V2)) 588.09/148.21 , 5: U41^#(tt(), V1, V2) -> 588.09/148.21 c_9(U42^#(isList(activate(V1)), activate(V2)), 588.09/148.21 isList^#(activate(V1)), 588.09/148.21 activate^#(V1), 588.09/148.21 activate^#(V2)) 588.09/148.21 , 6: U51^#(tt(), V1, V2) -> 588.09/148.21 c_11(U52^#(isNeList(activate(V1)), activate(V2)), 588.09/148.21 isNeList^#(activate(V1)), 588.09/148.21 activate^#(V1), 588.09/148.21 activate^#(V2)) 588.09/148.21 , 7: U21^#(tt(), V1, V2) -> 588.09/148.21 c_12(U22^#(isList(activate(V1)), activate(V2)), 588.09/148.21 isList^#(activate(V1)), 588.09/148.21 activate^#(V1), 588.09/148.21 activate^#(V2)) 588.09/148.21 , 8: U22^#(tt(), V2) -> 588.09/148.21 c_13(isList^#(activate(V2)), activate^#(V2)) 588.09/148.21 , 9: isList^#(V) -> 588.09/148.21 c_14(U11^#(isPalListKind(activate(V)), activate(V)), 588.09/148.21 isPalListKind^#(activate(V)), 588.09/148.21 activate^#(V), 588.09/148.21 activate^#(V)) 588.09/148.21 , 10: isList^#(n____(V1, V2)) -> 588.09/148.21 c_15(U21^#(and(isPalListKind(activate(V1)), 588.09/148.21 n__isPalListKind(activate(V2))), 588.09/148.21 activate(V1), 588.09/148.21 activate(V2)), 588.09/148.21 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 588.09/148.21 isPalListKind^#(activate(V1)), 588.09/148.21 activate^#(V1), 588.09/148.21 activate^#(V2), 588.09/148.21 activate^#(V1), 588.09/148.21 activate^#(V2)) 588.09/148.21 , 11: U42^#(tt(), V2) -> 588.09/148.21 c_16(isNeList^#(activate(V2)), activate^#(V2)) 588.09/148.21 , 12: U52^#(tt(), V2) -> 588.09/148.21 c_17(isList^#(activate(V2)), activate^#(V2)) 588.09/148.21 , 13: activate^#(n__isPalListKind(X)) -> c_5(isPalListKind^#(X)) 588.09/148.21 , 14: activate^#(n__and(X1, X2)) -> c_6(and^#(X1, X2)) 588.09/148.21 , 15: U31^#(tt(), V) -> c_7(activate^#(V)) 588.09/148.21 , 16: isPalListKind^#(n____(V1, V2)) -> 588.09/148.21 c_8(and^#(isPalListKind(activate(V1)), 588.09/148.21 n__isPalListKind(activate(V2))), 588.09/148.21 isPalListKind^#(activate(V1)), 588.09/148.21 activate^#(V1), 588.09/148.21 activate^#(V2)) 588.09/148.21 , 17: and^#(tt(), X) -> c_10(activate^#(X)) 588.09/148.21 , 18: U61^#(tt(), V) -> c_18(activate^#(V)) 588.09/148.21 , 19: U71^#(tt(), V) -> c_19(isNePal^#(activate(V)), activate^#(V)) 588.09/148.21 , 20: isNePal^#(V) -> 588.09/148.21 c_20(U61^#(isPalListKind(activate(V)), activate(V)), 588.09/148.21 isPalListKind^#(activate(V)), 588.09/148.21 activate^#(V), 588.09/148.21 activate^#(V)) 588.09/148.21 , 21: isPal^#(V) -> 588.09/148.21 c_21(U71^#(isPalListKind(activate(V)), activate(V)), 588.09/148.21 isPalListKind^#(activate(V)), 588.09/148.21 activate^#(V), 588.09/148.21 activate^#(V)) } 588.09/148.21 588.09/148.21 We are left with following problem, upon which TcT provides the 588.09/148.21 certificate YES(O(1),O(n^1)). 588.09/148.21 588.09/148.21 Strict DPs: 588.09/148.21 { U11^#(tt(), V) -> c_1(isNeList^#(activate(V)), activate^#(V)) 588.09/148.21 , isNeList^#(n____(V1, V2)) -> 588.09/148.21 c_3(U41^#(and(isPalListKind(activate(V1)), 588.09/148.21 n__isPalListKind(activate(V2))), 588.09/148.21 activate(V1), 588.09/148.21 activate(V2)), 588.09/148.21 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 588.09/148.21 isPalListKind^#(activate(V1)), 588.09/148.21 activate^#(V1), 588.09/148.21 activate^#(V2), 588.09/148.21 activate^#(V1), 588.09/148.21 activate^#(V2)) 588.09/148.21 , isNeList^#(n____(V1, V2)) -> 588.09/148.21 c_4(U51^#(and(isPalListKind(activate(V1)), 588.09/148.21 n__isPalListKind(activate(V2))), 588.09/148.21 activate(V1), 588.09/148.21 activate(V2)), 588.09/148.21 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 588.09/148.21 isPalListKind^#(activate(V1)), 588.09/148.21 activate^#(V1), 588.09/148.21 activate^#(V2), 588.09/148.21 activate^#(V1), 588.09/148.21 activate^#(V2)) 588.09/148.21 , U41^#(tt(), V1, V2) -> 588.09/148.21 c_9(U42^#(isList(activate(V1)), activate(V2)), 588.09/148.21 isList^#(activate(V1)), 588.09/148.21 activate^#(V1), 588.09/148.21 activate^#(V2)) 588.09/148.21 , U51^#(tt(), V1, V2) -> 588.09/148.21 c_11(U52^#(isNeList(activate(V1)), activate(V2)), 588.09/148.21 isNeList^#(activate(V1)), 588.09/148.21 activate^#(V1), 588.09/148.21 activate^#(V2)) 588.09/148.21 , U21^#(tt(), V1, V2) -> 588.09/148.21 c_12(U22^#(isList(activate(V1)), activate(V2)), 588.09/148.21 isList^#(activate(V1)), 588.09/148.21 activate^#(V1), 588.09/148.21 activate^#(V2)) 588.09/148.21 , U22^#(tt(), V2) -> c_13(isList^#(activate(V2)), activate^#(V2)) 588.09/148.21 , isList^#(V) -> 588.09/148.21 c_14(U11^#(isPalListKind(activate(V)), activate(V)), 588.09/148.21 isPalListKind^#(activate(V)), 588.09/148.21 activate^#(V), 588.09/148.21 activate^#(V)) 588.09/148.21 , isList^#(n____(V1, V2)) -> 588.09/148.21 c_15(U21^#(and(isPalListKind(activate(V1)), 588.09/148.21 n__isPalListKind(activate(V2))), 588.09/148.21 activate(V1), 588.09/148.21 activate(V2)), 588.09/148.21 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 588.09/148.21 isPalListKind^#(activate(V1)), 588.09/148.21 activate^#(V1), 588.09/148.21 activate^#(V2), 588.09/148.21 activate^#(V1), 588.09/148.21 activate^#(V2)) 588.09/148.21 , U42^#(tt(), V2) -> c_16(isNeList^#(activate(V2)), activate^#(V2)) 588.09/148.21 , U52^#(tt(), V2) -> c_17(isList^#(activate(V2)), activate^#(V2)) } 588.09/148.21 Weak DPs: 588.09/148.21 { isNeList^#(V) -> 588.09/148.21 c_2(U31^#(isPalListKind(activate(V)), activate(V)), 588.09/148.21 isPalListKind^#(activate(V)), 588.09/148.21 activate^#(V), 588.09/148.21 activate^#(V)) 588.09/148.21 , activate^#(n__isPalListKind(X)) -> c_5(isPalListKind^#(X)) 588.09/148.21 , activate^#(n__and(X1, X2)) -> c_6(and^#(X1, X2)) 588.09/148.21 , U31^#(tt(), V) -> c_7(activate^#(V)) 588.09/148.21 , isPalListKind^#(n____(V1, V2)) -> 588.09/148.21 c_8(and^#(isPalListKind(activate(V1)), 588.09/148.21 n__isPalListKind(activate(V2))), 588.09/148.21 isPalListKind^#(activate(V1)), 588.09/148.21 activate^#(V1), 588.09/148.21 activate^#(V2)) 588.09/148.21 , and^#(tt(), X) -> c_10(activate^#(X)) 588.09/148.21 , U61^#(tt(), V) -> c_18(activate^#(V)) 588.09/148.21 , U71^#(tt(), V) -> c_19(isNePal^#(activate(V)), activate^#(V)) 588.09/148.21 , isNePal^#(V) -> 588.09/148.21 c_20(U61^#(isPalListKind(activate(V)), activate(V)), 588.09/148.21 isPalListKind^#(activate(V)), 588.09/148.21 activate^#(V), 588.09/148.21 activate^#(V)) 588.09/148.21 , isPal^#(V) -> 588.09/148.21 c_21(U71^#(isPalListKind(activate(V)), activate(V)), 588.09/148.21 isPalListKind^#(activate(V)), 588.09/148.21 activate^#(V), 588.09/148.21 activate^#(V)) } 588.09/148.21 Weak Trs: 588.09/148.21 { __(X1, X2) -> n____(X1, X2) 588.09/148.21 , nil() -> n__nil() 588.09/148.21 , U11(tt(), V) -> U12(isNeList(activate(V))) 588.09/148.21 , U12(tt()) -> tt() 588.09/148.21 , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) 588.09/148.21 , isNeList(n____(V1, V2)) -> 588.09/148.21 U41(and(isPalListKind(activate(V1)), 588.09/148.21 n__isPalListKind(activate(V2))), 588.09/148.21 activate(V1), 588.09/148.21 activate(V2)) 588.09/148.21 , isNeList(n____(V1, V2)) -> 588.09/148.21 U51(and(isPalListKind(activate(V1)), 588.09/148.21 n__isPalListKind(activate(V2))), 588.09/148.21 activate(V1), 588.09/148.21 activate(V2)) 588.09/148.21 , activate(X) -> X 588.09/148.21 , activate(n__nil()) -> nil() 588.09/148.21 , activate(n____(X1, X2)) -> __(X1, X2) 588.09/148.21 , activate(n__isPalListKind(X)) -> isPalListKind(X) 588.09/148.21 , activate(n__and(X1, X2)) -> and(X1, X2) 588.09/148.21 , activate(n__a()) -> a() 588.09/148.21 , activate(n__e()) -> e() 588.09/148.21 , activate(n__i()) -> i() 588.09/148.21 , activate(n__o()) -> o() 588.09/148.21 , activate(n__u()) -> u() 588.09/148.21 , U21(tt(), V1, V2) -> U22(isList(activate(V1)), activate(V2)) 588.09/148.21 , U22(tt(), V2) -> U23(isList(activate(V2))) 588.09/148.21 , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) 588.09/148.21 , isList(n__nil()) -> tt() 588.09/148.21 , isList(n____(V1, V2)) -> 588.09/148.21 U21(and(isPalListKind(activate(V1)), 588.09/148.21 n__isPalListKind(activate(V2))), 588.09/148.21 activate(V1), 588.09/148.21 activate(V2)) 588.09/148.21 , U23(tt()) -> tt() 588.09/148.21 , U31(tt(), V) -> U32(isQid(activate(V))) 588.09/148.21 , U32(tt()) -> tt() 588.09/148.21 , isQid(n__a()) -> tt() 588.09/148.21 , isQid(n__e()) -> tt() 588.09/148.21 , isQid(n__i()) -> tt() 588.09/148.21 , isQid(n__o()) -> tt() 588.09/148.21 , isQid(n__u()) -> tt() 588.09/148.21 , U41(tt(), V1, V2) -> U42(isList(activate(V1)), activate(V2)) 588.09/148.21 , U42(tt(), V2) -> U43(isNeList(activate(V2))) 588.09/148.21 , U43(tt()) -> tt() 588.09/148.21 , U51(tt(), V1, V2) -> U52(isNeList(activate(V1)), activate(V2)) 588.09/148.21 , U52(tt(), V2) -> U53(isList(activate(V2))) 588.09/148.21 , U53(tt()) -> tt() 588.09/148.21 , and(X1, X2) -> n__and(X1, X2) 588.09/148.21 , and(tt(), X) -> activate(X) 588.09/148.21 , isPalListKind(X) -> n__isPalListKind(X) 588.09/148.21 , isPalListKind(n__nil()) -> tt() 588.09/148.21 , isPalListKind(n____(V1, V2)) -> 588.09/148.21 and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 588.09/148.21 , isPalListKind(n__a()) -> tt() 588.09/148.21 , isPalListKind(n__e()) -> tt() 588.09/148.21 , isPalListKind(n__i()) -> tt() 588.09/148.21 , isPalListKind(n__o()) -> tt() 588.09/148.21 , isPalListKind(n__u()) -> tt() 588.09/148.21 , a() -> n__a() 588.09/148.21 , e() -> n__e() 588.09/148.21 , i() -> n__i() 588.09/148.21 , o() -> n__o() 588.09/148.21 , u() -> n__u() } 588.09/148.21 Obligation: 588.09/148.21 innermost runtime complexity 588.09/148.21 Answer: 588.09/148.21 YES(O(1),O(n^1)) 588.09/148.21 588.09/148.21 The following weak DPs constitute a sub-graph of the DG that is 588.09/148.21 closed under successors. The DPs are removed. 588.09/148.21 588.09/148.21 { isNeList^#(V) -> 588.09/148.21 c_2(U31^#(isPalListKind(activate(V)), activate(V)), 588.09/148.21 isPalListKind^#(activate(V)), 588.09/148.21 activate^#(V), 588.09/148.21 activate^#(V)) 588.09/148.21 , activate^#(n__isPalListKind(X)) -> c_5(isPalListKind^#(X)) 588.09/148.21 , activate^#(n__and(X1, X2)) -> c_6(and^#(X1, X2)) 588.09/148.21 , U31^#(tt(), V) -> c_7(activate^#(V)) 588.09/148.21 , isPalListKind^#(n____(V1, V2)) -> 588.09/148.21 c_8(and^#(isPalListKind(activate(V1)), 588.09/148.21 n__isPalListKind(activate(V2))), 588.09/148.21 isPalListKind^#(activate(V1)), 588.09/148.21 activate^#(V1), 588.09/148.21 activate^#(V2)) 588.09/148.21 , and^#(tt(), X) -> c_10(activate^#(X)) 588.09/148.21 , U61^#(tt(), V) -> c_18(activate^#(V)) 588.09/148.21 , U71^#(tt(), V) -> c_19(isNePal^#(activate(V)), activate^#(V)) 588.09/148.21 , isNePal^#(V) -> 588.09/148.21 c_20(U61^#(isPalListKind(activate(V)), activate(V)), 588.09/148.21 isPalListKind^#(activate(V)), 588.09/148.21 activate^#(V), 588.09/148.21 activate^#(V)) 588.09/148.21 , isPal^#(V) -> 588.09/148.21 c_21(U71^#(isPalListKind(activate(V)), activate(V)), 588.09/148.21 isPalListKind^#(activate(V)), 588.09/148.21 activate^#(V), 588.09/148.21 activate^#(V)) } 588.09/148.21 588.09/148.21 We are left with following problem, upon which TcT provides the 588.09/148.21 certificate YES(O(1),O(n^1)). 588.09/148.21 588.09/148.21 Strict DPs: 588.09/148.21 { U11^#(tt(), V) -> c_1(isNeList^#(activate(V)), activate^#(V)) 588.09/148.21 , isNeList^#(n____(V1, V2)) -> 588.09/148.21 c_3(U41^#(and(isPalListKind(activate(V1)), 588.09/148.21 n__isPalListKind(activate(V2))), 588.09/148.21 activate(V1), 588.09/148.21 activate(V2)), 588.09/148.21 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 588.09/148.21 isPalListKind^#(activate(V1)), 588.09/148.21 activate^#(V1), 588.09/148.21 activate^#(V2), 588.09/148.21 activate^#(V1), 588.09/148.21 activate^#(V2)) 588.09/148.21 , isNeList^#(n____(V1, V2)) -> 588.09/148.21 c_4(U51^#(and(isPalListKind(activate(V1)), 588.09/148.21 n__isPalListKind(activate(V2))), 588.09/148.21 activate(V1), 588.09/148.21 activate(V2)), 588.09/148.21 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 588.09/148.21 isPalListKind^#(activate(V1)), 588.09/148.21 activate^#(V1), 588.09/148.21 activate^#(V2), 588.09/148.21 activate^#(V1), 588.09/148.21 activate^#(V2)) 588.09/148.21 , U41^#(tt(), V1, V2) -> 588.09/148.21 c_9(U42^#(isList(activate(V1)), activate(V2)), 588.09/148.21 isList^#(activate(V1)), 588.09/148.21 activate^#(V1), 588.09/148.21 activate^#(V2)) 588.09/148.21 , U51^#(tt(), V1, V2) -> 588.09/148.21 c_11(U52^#(isNeList(activate(V1)), activate(V2)), 588.09/148.21 isNeList^#(activate(V1)), 588.09/148.21 activate^#(V1), 588.09/148.21 activate^#(V2)) 588.09/148.21 , U21^#(tt(), V1, V2) -> 588.09/148.21 c_12(U22^#(isList(activate(V1)), activate(V2)), 588.09/148.21 isList^#(activate(V1)), 588.09/148.21 activate^#(V1), 588.09/148.21 activate^#(V2)) 588.09/148.21 , U22^#(tt(), V2) -> c_13(isList^#(activate(V2)), activate^#(V2)) 588.09/148.21 , isList^#(V) -> 588.09/148.21 c_14(U11^#(isPalListKind(activate(V)), activate(V)), 588.09/148.21 isPalListKind^#(activate(V)), 588.09/148.21 activate^#(V), 588.09/148.21 activate^#(V)) 588.09/148.21 , isList^#(n____(V1, V2)) -> 588.09/148.21 c_15(U21^#(and(isPalListKind(activate(V1)), 588.09/148.21 n__isPalListKind(activate(V2))), 588.09/148.21 activate(V1), 588.09/148.21 activate(V2)), 588.09/148.21 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 588.09/148.21 isPalListKind^#(activate(V1)), 588.09/148.21 activate^#(V1), 588.09/148.21 activate^#(V2), 588.09/148.21 activate^#(V1), 588.09/148.21 activate^#(V2)) 588.09/148.21 , U42^#(tt(), V2) -> c_16(isNeList^#(activate(V2)), activate^#(V2)) 588.09/148.21 , U52^#(tt(), V2) -> c_17(isList^#(activate(V2)), activate^#(V2)) } 588.09/148.21 Weak Trs: 588.09/148.21 { __(X1, X2) -> n____(X1, X2) 588.09/148.21 , nil() -> n__nil() 588.09/148.21 , U11(tt(), V) -> U12(isNeList(activate(V))) 588.09/148.21 , U12(tt()) -> tt() 588.09/148.21 , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) 588.09/148.21 , isNeList(n____(V1, V2)) -> 588.09/148.21 U41(and(isPalListKind(activate(V1)), 588.09/148.21 n__isPalListKind(activate(V2))), 588.09/148.21 activate(V1), 588.09/148.21 activate(V2)) 588.09/148.21 , isNeList(n____(V1, V2)) -> 588.09/148.21 U51(and(isPalListKind(activate(V1)), 588.09/148.21 n__isPalListKind(activate(V2))), 588.09/148.21 activate(V1), 588.09/148.21 activate(V2)) 588.09/148.21 , activate(X) -> X 588.09/148.21 , activate(n__nil()) -> nil() 588.09/148.21 , activate(n____(X1, X2)) -> __(X1, X2) 588.09/148.21 , activate(n__isPalListKind(X)) -> isPalListKind(X) 588.09/148.21 , activate(n__and(X1, X2)) -> and(X1, X2) 588.09/148.21 , activate(n__a()) -> a() 588.09/148.21 , activate(n__e()) -> e() 588.09/148.21 , activate(n__i()) -> i() 588.09/148.21 , activate(n__o()) -> o() 588.09/148.21 , activate(n__u()) -> u() 588.09/148.21 , U21(tt(), V1, V2) -> U22(isList(activate(V1)), activate(V2)) 588.09/148.21 , U22(tt(), V2) -> U23(isList(activate(V2))) 588.09/148.21 , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) 588.09/148.21 , isList(n__nil()) -> tt() 588.09/148.21 , isList(n____(V1, V2)) -> 588.09/148.21 U21(and(isPalListKind(activate(V1)), 588.09/148.22 n__isPalListKind(activate(V2))), 588.09/148.22 activate(V1), 588.09/148.22 activate(V2)) 588.09/148.22 , U23(tt()) -> tt() 588.09/148.22 , U31(tt(), V) -> U32(isQid(activate(V))) 588.09/148.22 , U32(tt()) -> tt() 588.09/148.22 , isQid(n__a()) -> tt() 588.09/148.22 , isQid(n__e()) -> tt() 588.09/148.22 , isQid(n__i()) -> tt() 588.09/148.22 , isQid(n__o()) -> tt() 588.09/148.22 , isQid(n__u()) -> tt() 588.09/148.22 , U41(tt(), V1, V2) -> U42(isList(activate(V1)), activate(V2)) 588.09/148.22 , U42(tt(), V2) -> U43(isNeList(activate(V2))) 588.09/148.22 , U43(tt()) -> tt() 588.09/148.22 , U51(tt(), V1, V2) -> U52(isNeList(activate(V1)), activate(V2)) 588.09/148.22 , U52(tt(), V2) -> U53(isList(activate(V2))) 588.09/148.22 , U53(tt()) -> tt() 588.09/148.22 , and(X1, X2) -> n__and(X1, X2) 588.09/148.22 , and(tt(), X) -> activate(X) 588.09/148.22 , isPalListKind(X) -> n__isPalListKind(X) 588.09/148.22 , isPalListKind(n__nil()) -> tt() 588.09/148.22 , isPalListKind(n____(V1, V2)) -> 588.09/148.22 and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 588.09/148.22 , isPalListKind(n__a()) -> tt() 588.09/148.22 , isPalListKind(n__e()) -> tt() 588.09/148.22 , isPalListKind(n__i()) -> tt() 588.09/148.22 , isPalListKind(n__o()) -> tt() 588.09/148.22 , isPalListKind(n__u()) -> tt() 588.09/148.22 , a() -> n__a() 588.09/148.22 , e() -> n__e() 588.09/148.22 , i() -> n__i() 588.09/148.22 , o() -> n__o() 588.09/148.22 , u() -> n__u() } 588.09/148.22 Obligation: 588.09/148.22 innermost runtime complexity 588.09/148.22 Answer: 588.09/148.22 YES(O(1),O(n^1)) 588.09/148.22 588.09/148.22 Due to missing edges in the dependency-graph, the right-hand sides 588.09/148.22 of following rules could be simplified: 588.09/148.22 588.09/148.22 { U11^#(tt(), V) -> c_1(isNeList^#(activate(V)), activate^#(V)) 588.09/148.22 , isNeList^#(n____(V1, V2)) -> 588.09/148.22 c_3(U41^#(and(isPalListKind(activate(V1)), 588.09/148.22 n__isPalListKind(activate(V2))), 588.09/148.22 activate(V1), 588.09/148.22 activate(V2)), 588.09/148.22 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 588.09/148.22 isPalListKind^#(activate(V1)), 588.09/148.22 activate^#(V1), 588.09/148.22 activate^#(V2), 588.09/148.22 activate^#(V1), 588.09/148.22 activate^#(V2)) 588.09/148.22 , isNeList^#(n____(V1, V2)) -> 588.09/148.22 c_4(U51^#(and(isPalListKind(activate(V1)), 588.09/148.22 n__isPalListKind(activate(V2))), 588.09/148.22 activate(V1), 588.09/148.22 activate(V2)), 588.09/148.22 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 588.09/148.22 isPalListKind^#(activate(V1)), 588.09/148.22 activate^#(V1), 588.09/148.22 activate^#(V2), 588.09/148.22 activate^#(V1), 588.09/148.22 activate^#(V2)) 588.09/148.22 , U41^#(tt(), V1, V2) -> 588.09/148.22 c_9(U42^#(isList(activate(V1)), activate(V2)), 588.09/148.22 isList^#(activate(V1)), 588.09/148.22 activate^#(V1), 588.09/148.22 activate^#(V2)) 588.09/148.22 , U51^#(tt(), V1, V2) -> 588.09/148.22 c_11(U52^#(isNeList(activate(V1)), activate(V2)), 588.09/148.22 isNeList^#(activate(V1)), 588.09/148.22 activate^#(V1), 588.09/148.22 activate^#(V2)) 588.09/148.22 , U21^#(tt(), V1, V2) -> 588.09/148.22 c_12(U22^#(isList(activate(V1)), activate(V2)), 588.09/148.22 isList^#(activate(V1)), 588.09/148.22 activate^#(V1), 588.09/148.22 activate^#(V2)) 588.09/148.22 , U22^#(tt(), V2) -> c_13(isList^#(activate(V2)), activate^#(V2)) 588.09/148.22 , isList^#(V) -> 588.09/148.22 c_14(U11^#(isPalListKind(activate(V)), activate(V)), 588.09/148.22 isPalListKind^#(activate(V)), 588.09/148.22 activate^#(V), 588.09/148.22 activate^#(V)) 588.09/148.22 , isList^#(n____(V1, V2)) -> 588.09/148.22 c_15(U21^#(and(isPalListKind(activate(V1)), 588.09/148.22 n__isPalListKind(activate(V2))), 588.09/148.22 activate(V1), 588.09/148.22 activate(V2)), 588.09/148.22 and^#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), 588.09/148.22 isPalListKind^#(activate(V1)), 588.09/148.22 activate^#(V1), 588.09/148.22 activate^#(V2), 588.09/148.22 activate^#(V1), 588.09/148.22 activate^#(V2)) 588.09/148.22 , U42^#(tt(), V2) -> c_16(isNeList^#(activate(V2)), activate^#(V2)) 588.09/148.22 , U52^#(tt(), V2) -> c_17(isList^#(activate(V2)), activate^#(V2)) } 588.09/148.22 588.09/148.22 We are left with following problem, upon which TcT provides the 588.09/148.22 certificate YES(O(1),O(n^1)). 588.09/148.22 588.09/148.22 Strict DPs: 588.09/148.22 { U11^#(tt(), V) -> c_1(isNeList^#(activate(V))) 588.09/148.22 , isNeList^#(n____(V1, V2)) -> 588.09/148.22 c_2(U41^#(and(isPalListKind(activate(V1)), 588.09/148.22 n__isPalListKind(activate(V2))), 588.09/148.22 activate(V1), 588.09/148.22 activate(V2))) 588.09/148.22 , isNeList^#(n____(V1, V2)) -> 588.09/148.22 c_3(U51^#(and(isPalListKind(activate(V1)), 588.09/148.22 n__isPalListKind(activate(V2))), 588.09/148.22 activate(V1), 588.09/148.22 activate(V2))) 588.09/148.22 , U41^#(tt(), V1, V2) -> 588.09/148.22 c_4(U42^#(isList(activate(V1)), activate(V2)), 588.09/148.22 isList^#(activate(V1))) 588.09/148.22 , U51^#(tt(), V1, V2) -> 588.09/148.22 c_5(U52^#(isNeList(activate(V1)), activate(V2)), 588.09/148.22 isNeList^#(activate(V1))) 588.09/148.22 , U21^#(tt(), V1, V2) -> 588.09/148.22 c_6(U22^#(isList(activate(V1)), activate(V2)), 588.09/148.22 isList^#(activate(V1))) 588.09/148.22 , U22^#(tt(), V2) -> c_7(isList^#(activate(V2))) 588.09/148.22 , isList^#(V) -> 588.09/148.22 c_8(U11^#(isPalListKind(activate(V)), activate(V))) 588.09/148.22 , isList^#(n____(V1, V2)) -> 588.09/148.22 c_9(U21^#(and(isPalListKind(activate(V1)), 588.09/148.22 n__isPalListKind(activate(V2))), 588.09/148.22 activate(V1), 588.09/148.22 activate(V2))) 588.09/148.22 , U42^#(tt(), V2) -> c_10(isNeList^#(activate(V2))) 588.09/148.22 , U52^#(tt(), V2) -> c_11(isList^#(activate(V2))) } 588.09/148.22 Weak Trs: 588.09/148.22 { __(X1, X2) -> n____(X1, X2) 588.09/148.22 , nil() -> n__nil() 588.09/148.22 , U11(tt(), V) -> U12(isNeList(activate(V))) 588.09/148.22 , U12(tt()) -> tt() 588.09/148.22 , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) 588.09/148.22 , isNeList(n____(V1, V2)) -> 588.09/148.22 U41(and(isPalListKind(activate(V1)), 588.09/148.22 n__isPalListKind(activate(V2))), 588.09/148.22 activate(V1), 588.09/148.22 activate(V2)) 588.09/148.22 , isNeList(n____(V1, V2)) -> 588.09/148.22 U51(and(isPalListKind(activate(V1)), 588.09/148.22 n__isPalListKind(activate(V2))), 588.09/148.22 activate(V1), 588.09/148.22 activate(V2)) 588.09/148.22 , activate(X) -> X 588.09/148.22 , activate(n__nil()) -> nil() 588.09/148.22 , activate(n____(X1, X2)) -> __(X1, X2) 588.09/148.22 , activate(n__isPalListKind(X)) -> isPalListKind(X) 588.09/148.22 , activate(n__and(X1, X2)) -> and(X1, X2) 588.09/148.22 , activate(n__a()) -> a() 588.09/148.22 , activate(n__e()) -> e() 588.09/148.22 , activate(n__i()) -> i() 588.09/148.22 , activate(n__o()) -> o() 588.09/148.22 , activate(n__u()) -> u() 588.09/148.22 , U21(tt(), V1, V2) -> U22(isList(activate(V1)), activate(V2)) 588.09/148.22 , U22(tt(), V2) -> U23(isList(activate(V2))) 588.09/148.22 , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) 588.09/148.22 , isList(n__nil()) -> tt() 588.09/148.22 , isList(n____(V1, V2)) -> 588.09/148.22 U21(and(isPalListKind(activate(V1)), 588.09/148.22 n__isPalListKind(activate(V2))), 588.09/148.22 activate(V1), 588.09/148.22 activate(V2)) 588.09/148.22 , U23(tt()) -> tt() 588.09/148.22 , U31(tt(), V) -> U32(isQid(activate(V))) 588.09/148.22 , U32(tt()) -> tt() 588.09/148.22 , isQid(n__a()) -> tt() 588.09/148.22 , isQid(n__e()) -> tt() 588.09/148.22 , isQid(n__i()) -> tt() 588.09/148.22 , isQid(n__o()) -> tt() 588.09/148.22 , isQid(n__u()) -> tt() 588.09/148.22 , U41(tt(), V1, V2) -> U42(isList(activate(V1)), activate(V2)) 588.09/148.22 , U42(tt(), V2) -> U43(isNeList(activate(V2))) 588.09/148.22 , U43(tt()) -> tt() 588.09/148.22 , U51(tt(), V1, V2) -> U52(isNeList(activate(V1)), activate(V2)) 588.09/148.22 , U52(tt(), V2) -> U53(isList(activate(V2))) 588.09/148.22 , U53(tt()) -> tt() 588.09/148.22 , and(X1, X2) -> n__and(X1, X2) 588.09/148.22 , and(tt(), X) -> activate(X) 588.09/148.22 , isPalListKind(X) -> n__isPalListKind(X) 588.09/148.22 , isPalListKind(n__nil()) -> tt() 588.09/148.22 , isPalListKind(n____(V1, V2)) -> 588.09/148.22 and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 588.09/148.22 , isPalListKind(n__a()) -> tt() 588.09/148.22 , isPalListKind(n__e()) -> tt() 588.09/148.22 , isPalListKind(n__i()) -> tt() 588.09/148.22 , isPalListKind(n__o()) -> tt() 588.09/148.22 , isPalListKind(n__u()) -> tt() 588.09/148.22 , a() -> n__a() 588.09/148.22 , e() -> n__e() 588.09/148.22 , i() -> n__i() 588.09/148.22 , o() -> n__o() 588.09/148.22 , u() -> n__u() } 588.09/148.22 Obligation: 588.09/148.22 innermost runtime complexity 588.09/148.22 Answer: 588.09/148.22 YES(O(1),O(n^1)) 588.09/148.22 588.09/148.22 We use the processor 'matrix interpretation of dimension 1' to 588.09/148.22 orient following rules strictly. 588.09/148.22 588.09/148.22 DPs: 588.09/148.22 { 2: isNeList^#(n____(V1, V2)) -> 588.09/148.22 c_2(U41^#(and(isPalListKind(activate(V1)), 588.09/148.22 n__isPalListKind(activate(V2))), 588.09/148.22 activate(V1), 588.09/148.22 activate(V2))) 588.09/148.22 , 3: isNeList^#(n____(V1, V2)) -> 588.09/148.22 c_3(U51^#(and(isPalListKind(activate(V1)), 588.09/148.22 n__isPalListKind(activate(V2))), 588.09/148.22 activate(V1), 588.09/148.22 activate(V2))) 588.09/148.22 , 9: isList^#(n____(V1, V2)) -> 588.09/148.22 c_9(U21^#(and(isPalListKind(activate(V1)), 588.09/148.22 n__isPalListKind(activate(V2))), 588.09/148.22 activate(V1), 588.09/148.22 activate(V2))) } 588.09/148.22 588.09/148.22 Sub-proof: 588.09/148.22 ---------- 588.09/148.22 The following argument positions are usable: 588.09/148.22 Uargs(c_1) = {1}, Uargs(c_2) = {1}, Uargs(c_3) = {1}, 588.09/148.22 Uargs(c_4) = {1, 2}, Uargs(c_5) = {1, 2}, Uargs(c_6) = {1, 2}, 588.09/148.22 Uargs(c_7) = {1}, Uargs(c_8) = {1}, Uargs(c_9) = {1}, 588.09/148.22 Uargs(c_10) = {1}, Uargs(c_11) = {1} 588.09/148.22 588.09/148.22 TcT has computed the following constructor-based matrix 588.09/148.22 interpretation satisfying not(EDA). 588.09/148.22 588.09/148.22 [__](x1, x2) = [1] x1 + [1] x2 + [2] 588.09/148.22 588.09/148.22 [nil] = [0] 588.09/148.22 588.09/148.22 [U11](x1, x2) = [0] 588.09/148.22 588.09/148.22 [tt] = [0] 588.09/148.22 588.09/148.22 [U12](x1) = [0] 588.09/148.22 588.09/148.22 [isNeList](x1) = [0] 588.09/148.22 588.09/148.22 [activate](x1) = [1] x1 + [0] 588.09/148.22 588.09/148.22 [U21](x1, x2, x3) = [0] 588.09/148.22 588.09/148.22 [U22](x1, x2) = [0] 588.09/148.22 588.09/148.22 [isList](x1) = [0] 588.09/148.22 588.09/148.22 [U23](x1) = [0] 588.09/148.22 588.09/148.22 [U31](x1, x2) = [0] 588.09/148.22 588.09/148.22 [U32](x1) = [0] 588.09/148.22 588.09/148.22 [isQid](x1) = [0] 588.09/148.22 588.09/148.22 [U41](x1, x2, x3) = [0] 588.09/148.22 588.09/148.22 [U42](x1, x2) = [0] 588.09/148.22 588.09/148.22 [U43](x1) = [0] 588.09/148.22 588.09/148.22 [U51](x1, x2, x3) = [0] 588.09/148.22 588.09/148.22 [U52](x1, x2) = [0] 588.09/148.22 588.09/148.22 [U53](x1) = [0] 588.09/148.22 588.09/148.22 [and](x1, x2) = [1] x2 + [0] 588.09/148.22 588.09/148.22 [isPalListKind](x1) = [0] 588.09/148.22 588.09/148.22 [n__nil] = [0] 588.09/148.22 588.09/148.22 [n____](x1, x2) = [1] x1 + [1] x2 + [2] 588.09/148.22 588.09/148.22 [n__isPalListKind](x1) = [0] 588.09/148.22 588.09/148.22 [n__and](x1, x2) = [1] x2 + [0] 588.09/148.22 588.09/148.22 [n__a] = [0] 588.09/148.22 588.09/148.22 [n__e] = [0] 588.09/148.22 588.09/148.22 [n__i] = [0] 588.09/148.22 588.09/148.22 [n__o] = [0] 588.09/148.22 588.09/148.22 [n__u] = [0] 588.09/148.22 588.09/148.22 [a] = [0] 588.09/148.22 588.09/148.22 [e] = [0] 588.09/148.22 588.09/148.22 [i] = [0] 588.09/148.22 588.09/148.22 [o] = [0] 588.09/148.22 588.09/148.22 [u] = [0] 588.09/148.22 588.09/148.22 [U11^#](x1, x2) = [2] x2 + [0] 588.09/148.22 588.09/148.22 [isNeList^#](x1) = [2] x1 + [0] 588.09/148.22 588.09/148.22 [U41^#](x1, x2, x3) = [2] x2 + [2] x3 + [0] 588.09/148.22 588.09/148.22 [U51^#](x1, x2, x3) = [2] x2 + [2] x3 + [0] 588.09/148.22 588.09/148.22 [U21^#](x1, x2, x3) = [2] x2 + [2] x3 + [0] 588.09/148.22 588.09/148.22 [U22^#](x1, x2) = [2] x2 + [0] 588.09/148.22 588.09/148.22 [isList^#](x1) = [2] x1 + [0] 588.09/148.22 588.09/148.22 [U42^#](x1, x2) = [2] x2 + [0] 588.09/148.22 588.09/148.22 [U52^#](x1, x2) = [2] x2 + [0] 588.09/148.22 588.09/148.22 [c_1](x1) = [1] x1 + [0] 588.09/148.22 588.09/148.22 [c_2](x1) = [1] x1 + [1] 588.09/148.22 588.09/148.22 [c_3](x1) = [1] x1 + [3] 588.09/148.22 588.09/148.22 [c_4](x1, x2) = [1] x1 + [1] x2 + [0] 588.09/148.22 588.09/148.22 [c_5](x1, x2) = [1] x1 + [1] x2 + [0] 588.09/148.22 588.09/148.22 [c_6](x1, x2) = [1] x1 + [1] x2 + [0] 588.09/148.22 588.09/148.22 [c_7](x1) = [1] x1 + [0] 588.09/148.22 588.09/148.22 [c_8](x1) = [1] x1 + [0] 588.09/148.22 588.09/148.22 [c_9](x1) = [1] x1 + [3] 588.09/148.22 588.09/148.22 [c_10](x1) = [1] x1 + [0] 588.09/148.22 588.09/148.22 [c_11](x1) = [1] x1 + [0] 588.09/148.22 588.09/148.22 The order satisfies the following ordering constraints: 588.09/148.22 588.09/148.22 [__(X1, X2)] = [1] X1 + [1] X2 + [2] 588.09/148.22 >= [1] X1 + [1] X2 + [2] 588.09/148.22 = [n____(X1, X2)] 588.09/148.22 588.09/148.22 [nil()] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [n__nil()] 588.09/148.22 588.09/148.22 [U11(tt(), V)] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [U12(isNeList(activate(V)))] 588.09/148.22 588.09/148.22 [U12(tt())] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [tt()] 588.09/148.22 588.09/148.22 [isNeList(V)] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [U31(isPalListKind(activate(V)), activate(V))] 588.09/148.22 588.09/148.22 [isNeList(n____(V1, V2))] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [U41(and(isPalListKind(activate(V1)), 588.09/148.22 n__isPalListKind(activate(V2))), 588.09/148.22 activate(V1), 588.09/148.22 activate(V2))] 588.09/148.22 588.09/148.22 [isNeList(n____(V1, V2))] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [U51(and(isPalListKind(activate(V1)), 588.09/148.22 n__isPalListKind(activate(V2))), 588.09/148.22 activate(V1), 588.09/148.22 activate(V2))] 588.09/148.22 588.09/148.22 [activate(X)] = [1] X + [0] 588.09/148.22 >= [1] X + [0] 588.09/148.22 = [X] 588.09/148.22 588.09/148.22 [activate(n__nil())] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [nil()] 588.09/148.22 588.09/148.22 [activate(n____(X1, X2))] = [1] X1 + [1] X2 + [2] 588.09/148.22 >= [1] X1 + [1] X2 + [2] 588.09/148.22 = [__(X1, X2)] 588.09/148.22 588.09/148.22 [activate(n__isPalListKind(X))] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [isPalListKind(X)] 588.09/148.22 588.09/148.22 [activate(n__and(X1, X2))] = [1] X2 + [0] 588.09/148.22 >= [1] X2 + [0] 588.09/148.22 = [and(X1, X2)] 588.09/148.22 588.09/148.22 [activate(n__a())] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [a()] 588.09/148.22 588.09/148.22 [activate(n__e())] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [e()] 588.09/148.22 588.09/148.22 [activate(n__i())] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [i()] 588.09/148.22 588.09/148.22 [activate(n__o())] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [o()] 588.09/148.22 588.09/148.22 [activate(n__u())] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [u()] 588.09/148.22 588.09/148.22 [U21(tt(), V1, V2)] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [U22(isList(activate(V1)), activate(V2))] 588.09/148.22 588.09/148.22 [U22(tt(), V2)] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [U23(isList(activate(V2)))] 588.09/148.22 588.09/148.22 [isList(V)] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [U11(isPalListKind(activate(V)), activate(V))] 588.09/148.22 588.09/148.22 [isList(n__nil())] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [tt()] 588.09/148.22 588.09/148.22 [isList(n____(V1, V2))] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [U21(and(isPalListKind(activate(V1)), 588.09/148.22 n__isPalListKind(activate(V2))), 588.09/148.22 activate(V1), 588.09/148.22 activate(V2))] 588.09/148.22 588.09/148.22 [U23(tt())] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [tt()] 588.09/148.22 588.09/148.22 [U31(tt(), V)] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [U32(isQid(activate(V)))] 588.09/148.22 588.09/148.22 [U32(tt())] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [tt()] 588.09/148.22 588.09/148.22 [isQid(n__a())] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [tt()] 588.09/148.22 588.09/148.22 [isQid(n__e())] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [tt()] 588.09/148.22 588.09/148.22 [isQid(n__i())] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [tt()] 588.09/148.22 588.09/148.22 [isQid(n__o())] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [tt()] 588.09/148.22 588.09/148.22 [isQid(n__u())] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [tt()] 588.09/148.22 588.09/148.22 [U41(tt(), V1, V2)] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [U42(isList(activate(V1)), activate(V2))] 588.09/148.22 588.09/148.22 [U42(tt(), V2)] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [U43(isNeList(activate(V2)))] 588.09/148.22 588.09/148.22 [U43(tt())] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [tt()] 588.09/148.22 588.09/148.22 [U51(tt(), V1, V2)] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [U52(isNeList(activate(V1)), activate(V2))] 588.09/148.22 588.09/148.22 [U52(tt(), V2)] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [U53(isList(activate(V2)))] 588.09/148.22 588.09/148.22 [U53(tt())] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [tt()] 588.09/148.22 588.09/148.22 [and(X1, X2)] = [1] X2 + [0] 588.09/148.22 >= [1] X2 + [0] 588.09/148.22 = [n__and(X1, X2)] 588.09/148.22 588.09/148.22 [and(tt(), X)] = [1] X + [0] 588.09/148.22 >= [1] X + [0] 588.09/148.22 = [activate(X)] 588.09/148.22 588.09/148.22 [isPalListKind(X)] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [n__isPalListKind(X)] 588.09/148.22 588.09/148.22 [isPalListKind(n__nil())] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [tt()] 588.09/148.22 588.09/148.22 [isPalListKind(n____(V1, V2))] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2)))] 588.09/148.22 588.09/148.22 [isPalListKind(n__a())] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [tt()] 588.09/148.22 588.09/148.22 [isPalListKind(n__e())] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [tt()] 588.09/148.22 588.09/148.22 [isPalListKind(n__i())] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [tt()] 588.09/148.22 588.09/148.22 [isPalListKind(n__o())] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [tt()] 588.09/148.22 588.09/148.22 [isPalListKind(n__u())] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [tt()] 588.09/148.22 588.09/148.22 [a()] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [n__a()] 588.09/148.22 588.09/148.22 [e()] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [n__e()] 588.09/148.22 588.09/148.22 [i()] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [n__i()] 588.09/148.22 588.09/148.22 [o()] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [n__o()] 588.09/148.22 588.09/148.22 [u()] = [0] 588.09/148.22 >= [0] 588.09/148.22 = [n__u()] 588.09/148.22 588.09/148.22 [U11^#(tt(), V)] = [2] V + [0] 588.09/148.22 >= [2] V + [0] 588.09/148.22 = [c_1(isNeList^#(activate(V)))] 588.09/148.22 588.09/148.22 [isNeList^#(n____(V1, V2))] = [2] V1 + [2] V2 + [4] 588.09/148.22 > [2] V1 + [2] V2 + [1] 588.09/148.22 = [c_2(U41^#(and(isPalListKind(activate(V1)), 588.09/148.22 n__isPalListKind(activate(V2))), 588.09/148.22 activate(V1), 588.09/148.22 activate(V2)))] 588.09/148.22 588.09/148.22 [isNeList^#(n____(V1, V2))] = [2] V1 + [2] V2 + [4] 588.09/148.22 > [2] V1 + [2] V2 + [3] 588.09/148.22 = [c_3(U51^#(and(isPalListKind(activate(V1)), 588.09/148.22 n__isPalListKind(activate(V2))), 588.09/148.22 activate(V1), 588.09/148.22 activate(V2)))] 588.09/148.22 588.09/148.22 [U41^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [0] 588.09/148.22 >= [2] V1 + [2] V2 + [0] 588.09/148.22 = [c_4(U42^#(isList(activate(V1)), activate(V2)), 588.09/148.22 isList^#(activate(V1)))] 588.09/148.23 588.09/148.23 [U51^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [0] 588.09/148.23 >= [2] V1 + [2] V2 + [0] 588.09/148.23 = [c_5(U52^#(isNeList(activate(V1)), activate(V2)), 588.09/148.23 isNeList^#(activate(V1)))] 588.09/148.23 588.09/148.23 [U21^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [0] 588.09/148.23 >= [2] V1 + [2] V2 + [0] 588.09/148.23 = [c_6(U22^#(isList(activate(V1)), activate(V2)), 588.09/148.23 isList^#(activate(V1)))] 588.09/148.23 588.09/148.23 [U22^#(tt(), V2)] = [2] V2 + [0] 588.09/148.23 >= [2] V2 + [0] 588.09/148.23 = [c_7(isList^#(activate(V2)))] 588.09/148.23 588.09/148.23 [isList^#(V)] = [2] V + [0] 588.09/148.23 >= [2] V + [0] 588.09/148.23 = [c_8(U11^#(isPalListKind(activate(V)), activate(V)))] 588.09/148.23 588.09/148.23 [isList^#(n____(V1, V2))] = [2] V1 + [2] V2 + [4] 588.09/148.23 > [2] V1 + [2] V2 + [3] 588.09/148.23 = [c_9(U21^#(and(isPalListKind(activate(V1)), 588.09/148.23 n__isPalListKind(activate(V2))), 588.09/148.23 activate(V1), 588.09/148.23 activate(V2)))] 588.09/148.23 588.09/148.23 [U42^#(tt(), V2)] = [2] V2 + [0] 588.09/148.23 >= [2] V2 + [0] 588.09/148.23 = [c_10(isNeList^#(activate(V2)))] 588.09/148.23 588.09/148.23 [U52^#(tt(), V2)] = [2] V2 + [0] 588.09/148.23 >= [2] V2 + [0] 588.09/148.23 = [c_11(isList^#(activate(V2)))] 588.09/148.23 588.09/148.23 588.09/148.23 We return to the main proof. Consider the set of all dependency 588.09/148.23 pairs 588.09/148.23 588.09/148.23 : 588.09/148.23 { 1: U11^#(tt(), V) -> c_1(isNeList^#(activate(V))) 588.09/148.23 , 2: isNeList^#(n____(V1, V2)) -> 588.09/148.23 c_2(U41^#(and(isPalListKind(activate(V1)), 588.09/148.23 n__isPalListKind(activate(V2))), 588.09/148.23 activate(V1), 588.09/148.23 activate(V2))) 588.09/148.23 , 3: isNeList^#(n____(V1, V2)) -> 588.09/148.23 c_3(U51^#(and(isPalListKind(activate(V1)), 588.09/148.23 n__isPalListKind(activate(V2))), 588.09/148.23 activate(V1), 588.09/148.23 activate(V2))) 588.09/148.23 , 4: U41^#(tt(), V1, V2) -> 588.09/148.23 c_4(U42^#(isList(activate(V1)), activate(V2)), 588.09/148.23 isList^#(activate(V1))) 588.09/148.23 , 5: U51^#(tt(), V1, V2) -> 588.09/148.23 c_5(U52^#(isNeList(activate(V1)), activate(V2)), 588.09/148.23 isNeList^#(activate(V1))) 588.09/148.23 , 6: U21^#(tt(), V1, V2) -> 588.09/148.23 c_6(U22^#(isList(activate(V1)), activate(V2)), 588.09/148.23 isList^#(activate(V1))) 588.09/148.23 , 7: U22^#(tt(), V2) -> c_7(isList^#(activate(V2))) 588.09/148.23 , 8: isList^#(V) -> 588.09/148.23 c_8(U11^#(isPalListKind(activate(V)), activate(V))) 588.09/148.23 , 9: isList^#(n____(V1, V2)) -> 588.09/148.23 c_9(U21^#(and(isPalListKind(activate(V1)), 588.09/148.23 n__isPalListKind(activate(V2))), 588.09/148.23 activate(V1), 588.09/148.23 activate(V2))) 588.09/148.23 , 10: U42^#(tt(), V2) -> c_10(isNeList^#(activate(V2))) 588.09/148.23 , 11: U52^#(tt(), V2) -> c_11(isList^#(activate(V2))) } 588.09/148.23 588.09/148.23 Processor 'matrix interpretation of dimension 1' induces the 588.09/148.23 complexity certificate YES(?,O(n^1)) on application of dependency 588.09/148.23 pairs {2,3,9}. These cover all (indirect) predecessors of 588.09/148.23 dependency pairs {1,2,3,4,5,6,7,8,9,10,11}, their number of 588.09/148.23 application is equally bounded. The dependency pairs are shifted 588.09/148.23 into the weak component. 588.09/148.23 588.09/148.23 We are left with following problem, upon which TcT provides the 588.09/148.23 certificate YES(O(1),O(1)). 588.09/148.23 588.09/148.23 Weak DPs: 588.09/148.23 { U11^#(tt(), V) -> c_1(isNeList^#(activate(V))) 588.09/148.23 , isNeList^#(n____(V1, V2)) -> 588.09/148.23 c_2(U41^#(and(isPalListKind(activate(V1)), 588.09/148.23 n__isPalListKind(activate(V2))), 588.09/148.23 activate(V1), 588.09/148.23 activate(V2))) 588.09/148.23 , isNeList^#(n____(V1, V2)) -> 588.09/148.23 c_3(U51^#(and(isPalListKind(activate(V1)), 588.09/148.23 n__isPalListKind(activate(V2))), 588.09/148.23 activate(V1), 588.09/148.23 activate(V2))) 588.09/148.23 , U41^#(tt(), V1, V2) -> 588.09/148.23 c_4(U42^#(isList(activate(V1)), activate(V2)), 588.09/148.23 isList^#(activate(V1))) 588.09/148.23 , U51^#(tt(), V1, V2) -> 588.09/148.23 c_5(U52^#(isNeList(activate(V1)), activate(V2)), 588.09/148.23 isNeList^#(activate(V1))) 588.09/148.23 , U21^#(tt(), V1, V2) -> 588.09/148.23 c_6(U22^#(isList(activate(V1)), activate(V2)), 588.09/148.23 isList^#(activate(V1))) 588.09/148.23 , U22^#(tt(), V2) -> c_7(isList^#(activate(V2))) 588.09/148.23 , isList^#(V) -> 588.09/148.23 c_8(U11^#(isPalListKind(activate(V)), activate(V))) 588.09/148.23 , isList^#(n____(V1, V2)) -> 588.09/148.23 c_9(U21^#(and(isPalListKind(activate(V1)), 588.09/148.23 n__isPalListKind(activate(V2))), 588.09/148.23 activate(V1), 588.09/148.23 activate(V2))) 588.09/148.23 , U42^#(tt(), V2) -> c_10(isNeList^#(activate(V2))) 588.09/148.23 , U52^#(tt(), V2) -> c_11(isList^#(activate(V2))) } 588.09/148.23 Weak Trs: 588.09/148.23 { __(X1, X2) -> n____(X1, X2) 588.09/148.23 , nil() -> n__nil() 588.09/148.23 , U11(tt(), V) -> U12(isNeList(activate(V))) 588.09/148.23 , U12(tt()) -> tt() 588.09/148.23 , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) 588.09/148.23 , isNeList(n____(V1, V2)) -> 588.09/148.23 U41(and(isPalListKind(activate(V1)), 588.09/148.23 n__isPalListKind(activate(V2))), 588.09/148.23 activate(V1), 588.09/148.23 activate(V2)) 588.09/148.23 , isNeList(n____(V1, V2)) -> 588.09/148.23 U51(and(isPalListKind(activate(V1)), 588.09/148.23 n__isPalListKind(activate(V2))), 588.09/148.23 activate(V1), 588.09/148.23 activate(V2)) 588.09/148.23 , activate(X) -> X 588.09/148.23 , activate(n__nil()) -> nil() 588.09/148.23 , activate(n____(X1, X2)) -> __(X1, X2) 588.09/148.23 , activate(n__isPalListKind(X)) -> isPalListKind(X) 588.09/148.23 , activate(n__and(X1, X2)) -> and(X1, X2) 588.09/148.23 , activate(n__a()) -> a() 588.09/148.23 , activate(n__e()) -> e() 588.09/148.23 , activate(n__i()) -> i() 588.09/148.23 , activate(n__o()) -> o() 588.09/148.23 , activate(n__u()) -> u() 588.09/148.23 , U21(tt(), V1, V2) -> U22(isList(activate(V1)), activate(V2)) 588.09/148.23 , U22(tt(), V2) -> U23(isList(activate(V2))) 588.09/148.23 , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) 588.09/148.23 , isList(n__nil()) -> tt() 588.09/148.23 , isList(n____(V1, V2)) -> 588.09/148.23 U21(and(isPalListKind(activate(V1)), 588.09/148.23 n__isPalListKind(activate(V2))), 588.09/148.23 activate(V1), 588.09/148.23 activate(V2)) 588.09/148.23 , U23(tt()) -> tt() 588.09/148.23 , U31(tt(), V) -> U32(isQid(activate(V))) 588.09/148.23 , U32(tt()) -> tt() 588.09/148.23 , isQid(n__a()) -> tt() 588.09/148.23 , isQid(n__e()) -> tt() 588.09/148.23 , isQid(n__i()) -> tt() 588.09/148.23 , isQid(n__o()) -> tt() 588.09/148.23 , isQid(n__u()) -> tt() 588.09/148.23 , U41(tt(), V1, V2) -> U42(isList(activate(V1)), activate(V2)) 588.09/148.23 , U42(tt(), V2) -> U43(isNeList(activate(V2))) 588.09/148.23 , U43(tt()) -> tt() 588.09/148.23 , U51(tt(), V1, V2) -> U52(isNeList(activate(V1)), activate(V2)) 588.09/148.23 , U52(tt(), V2) -> U53(isList(activate(V2))) 588.09/148.23 , U53(tt()) -> tt() 588.09/148.23 , and(X1, X2) -> n__and(X1, X2) 588.09/148.23 , and(tt(), X) -> activate(X) 588.09/148.23 , isPalListKind(X) -> n__isPalListKind(X) 588.09/148.23 , isPalListKind(n__nil()) -> tt() 588.09/148.23 , isPalListKind(n____(V1, V2)) -> 588.09/148.23 and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 588.09/148.23 , isPalListKind(n__a()) -> tt() 588.09/148.23 , isPalListKind(n__e()) -> tt() 588.09/148.23 , isPalListKind(n__i()) -> tt() 588.09/148.23 , isPalListKind(n__o()) -> tt() 588.09/148.23 , isPalListKind(n__u()) -> tt() 588.09/148.23 , a() -> n__a() 588.09/148.23 , e() -> n__e() 588.09/148.23 , i() -> n__i() 588.09/148.23 , o() -> n__o() 588.09/148.23 , u() -> n__u() } 588.09/148.23 Obligation: 588.09/148.23 innermost runtime complexity 588.09/148.23 Answer: 588.09/148.23 YES(O(1),O(1)) 588.09/148.23 588.09/148.23 The following weak DPs constitute a sub-graph of the DG that is 588.09/148.23 closed under successors. The DPs are removed. 588.09/148.23 588.09/148.23 { U11^#(tt(), V) -> c_1(isNeList^#(activate(V))) 588.09/148.23 , isNeList^#(n____(V1, V2)) -> 588.09/148.23 c_2(U41^#(and(isPalListKind(activate(V1)), 588.09/148.23 n__isPalListKind(activate(V2))), 588.09/148.23 activate(V1), 588.09/148.23 activate(V2))) 588.09/148.23 , isNeList^#(n____(V1, V2)) -> 588.09/148.23 c_3(U51^#(and(isPalListKind(activate(V1)), 588.09/148.23 n__isPalListKind(activate(V2))), 588.09/148.23 activate(V1), 588.09/148.23 activate(V2))) 588.09/148.23 , U41^#(tt(), V1, V2) -> 588.09/148.23 c_4(U42^#(isList(activate(V1)), activate(V2)), 588.09/148.23 isList^#(activate(V1))) 588.09/148.23 , U51^#(tt(), V1, V2) -> 588.09/148.23 c_5(U52^#(isNeList(activate(V1)), activate(V2)), 588.09/148.23 isNeList^#(activate(V1))) 588.09/148.23 , U21^#(tt(), V1, V2) -> 588.09/148.23 c_6(U22^#(isList(activate(V1)), activate(V2)), 588.09/148.23 isList^#(activate(V1))) 588.09/148.23 , U22^#(tt(), V2) -> c_7(isList^#(activate(V2))) 588.09/148.23 , isList^#(V) -> 588.09/148.23 c_8(U11^#(isPalListKind(activate(V)), activate(V))) 588.09/148.23 , isList^#(n____(V1, V2)) -> 588.09/148.23 c_9(U21^#(and(isPalListKind(activate(V1)), 588.09/148.23 n__isPalListKind(activate(V2))), 588.09/148.23 activate(V1), 588.09/148.23 activate(V2))) 588.09/148.23 , U42^#(tt(), V2) -> c_10(isNeList^#(activate(V2))) 588.09/148.23 , U52^#(tt(), V2) -> c_11(isList^#(activate(V2))) } 588.09/148.23 588.09/148.23 We are left with following problem, upon which TcT provides the 588.09/148.23 certificate YES(O(1),O(1)). 588.09/148.23 588.09/148.23 Weak Trs: 588.09/148.23 { __(X1, X2) -> n____(X1, X2) 588.09/148.23 , nil() -> n__nil() 588.09/148.23 , U11(tt(), V) -> U12(isNeList(activate(V))) 588.09/148.23 , U12(tt()) -> tt() 588.09/148.23 , isNeList(V) -> U31(isPalListKind(activate(V)), activate(V)) 588.09/148.23 , isNeList(n____(V1, V2)) -> 588.09/148.23 U41(and(isPalListKind(activate(V1)), 588.09/148.23 n__isPalListKind(activate(V2))), 588.09/148.23 activate(V1), 588.09/148.23 activate(V2)) 588.09/148.23 , isNeList(n____(V1, V2)) -> 588.09/148.23 U51(and(isPalListKind(activate(V1)), 588.09/148.23 n__isPalListKind(activate(V2))), 588.09/148.23 activate(V1), 588.09/148.23 activate(V2)) 588.09/148.23 , activate(X) -> X 588.09/148.23 , activate(n__nil()) -> nil() 588.09/148.23 , activate(n____(X1, X2)) -> __(X1, X2) 588.09/148.23 , activate(n__isPalListKind(X)) -> isPalListKind(X) 588.09/148.23 , activate(n__and(X1, X2)) -> and(X1, X2) 588.09/148.23 , activate(n__a()) -> a() 588.09/148.23 , activate(n__e()) -> e() 588.09/148.23 , activate(n__i()) -> i() 588.09/148.23 , activate(n__o()) -> o() 588.09/148.23 , activate(n__u()) -> u() 588.09/148.23 , U21(tt(), V1, V2) -> U22(isList(activate(V1)), activate(V2)) 588.09/148.23 , U22(tt(), V2) -> U23(isList(activate(V2))) 588.09/148.23 , isList(V) -> U11(isPalListKind(activate(V)), activate(V)) 588.09/148.23 , isList(n__nil()) -> tt() 588.09/148.23 , isList(n____(V1, V2)) -> 588.09/148.23 U21(and(isPalListKind(activate(V1)), 588.09/148.23 n__isPalListKind(activate(V2))), 588.09/148.23 activate(V1), 588.09/148.23 activate(V2)) 588.09/148.23 , U23(tt()) -> tt() 588.09/148.23 , U31(tt(), V) -> U32(isQid(activate(V))) 588.09/148.23 , U32(tt()) -> tt() 588.09/148.23 , isQid(n__a()) -> tt() 588.09/148.23 , isQid(n__e()) -> tt() 588.09/148.23 , isQid(n__i()) -> tt() 588.09/148.23 , isQid(n__o()) -> tt() 588.09/148.23 , isQid(n__u()) -> tt() 588.09/148.23 , U41(tt(), V1, V2) -> U42(isList(activate(V1)), activate(V2)) 588.09/148.23 , U42(tt(), V2) -> U43(isNeList(activate(V2))) 588.09/148.23 , U43(tt()) -> tt() 588.09/148.23 , U51(tt(), V1, V2) -> U52(isNeList(activate(V1)), activate(V2)) 588.09/148.23 , U52(tt(), V2) -> U53(isList(activate(V2))) 588.09/148.23 , U53(tt()) -> tt() 588.09/148.23 , and(X1, X2) -> n__and(X1, X2) 588.09/148.23 , and(tt(), X) -> activate(X) 588.09/148.23 , isPalListKind(X) -> n__isPalListKind(X) 588.09/148.23 , isPalListKind(n__nil()) -> tt() 588.09/148.23 , isPalListKind(n____(V1, V2)) -> 588.09/148.23 and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))) 588.09/148.23 , isPalListKind(n__a()) -> tt() 588.09/148.23 , isPalListKind(n__e()) -> tt() 588.09/148.23 , isPalListKind(n__i()) -> tt() 588.09/148.23 , isPalListKind(n__o()) -> tt() 588.09/148.23 , isPalListKind(n__u()) -> tt() 588.09/148.23 , a() -> n__a() 588.09/148.23 , e() -> n__e() 588.09/148.23 , i() -> n__i() 588.09/148.23 , o() -> n__o() 588.09/148.23 , u() -> n__u() } 588.09/148.23 Obligation: 588.09/148.23 innermost runtime complexity 588.09/148.23 Answer: 588.09/148.23 YES(O(1),O(1)) 588.09/148.23 588.09/148.23 No rule is usable, rules are removed from the input problem. 588.09/148.23 588.09/148.23 We are left with following problem, upon which TcT provides the 588.09/148.23 certificate YES(O(1),O(1)). 588.09/148.23 588.09/148.23 Rules: Empty 588.09/148.23 Obligation: 588.09/148.23 innermost runtime complexity 588.09/148.23 Answer: 588.09/148.23 YES(O(1),O(1)) 588.09/148.23 588.09/148.23 Empty rules are trivially bounded 588.09/148.23 588.09/148.23 588.09/148.23 Hurray, we answered YES(O(1),O(n^2)) 588.44/148.59 EOF