We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^2)).
Strict Trs:
{ __(X1, X2) -> n____(X1, X2)
, __(X, nil()) -> X
, __(__(X, Y), Z) -> __(X, __(Y, Z))
, __(nil(), X) -> X
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, U71(tt(), I, P) -> U72(isPalListKind(activate(I)), activate(P))
, U72(tt(), P) -> U73(isPal(activate(P)), activate(P))
, U73(tt(), P) -> U74(isPalListKind(activate(P)))
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U74(tt()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, isNePal(n____(I, __(P, I))) ->
U71(isQid(activate(I)), activate(I), activate(P))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^2))
Arguments of following rules are not normal-forms:
{ __(X, nil()) -> X
, __(__(X, Y), Z) -> __(X, __(Y, Z))
, __(nil(), X) -> X
, isNePal(n____(I, __(P, I))) ->
U71(isQid(activate(I)), activate(I), activate(P)) }
All above mentioned rules can be savely removed.
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^2)).
Strict Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, U71(tt(), I, P) -> U72(isPalListKind(activate(I)), activate(P))
, U72(tt(), P) -> U73(isPal(activate(P)), activate(P))
, U73(tt(), P) -> U74(isPalListKind(activate(P)))
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U74(tt()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^2))
We add the following dependency tuples:
Strict DPs:
{ __^#(X1, X2) -> c_1()
, nil^#() -> c_2()
, U11^#(tt(), V) ->
c_3(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U12^#(tt(), V) ->
c_4(U13^#(isNeList(activate(V))),
isNeList^#(activate(V)),
activate^#(V))
, isPalListKind^#(n__nil()) -> c_5()
, isPalListKind^#(n____(V1, V2)) ->
c_6(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, isPalListKind^#(n__a()) -> c_7()
, isPalListKind^#(n__e()) -> c_8()
, isPalListKind^#(n__i()) -> c_9()
, isPalListKind^#(n__o()) -> c_10()
, isPalListKind^#(n__u()) -> c_11()
, activate^#(X) -> c_12()
, activate^#(n__nil()) -> c_13(nil^#())
, activate^#(n____(X1, X2)) -> c_14(__^#(X1, X2))
, activate^#(n__a()) -> c_15(a^#())
, activate^#(n__e()) -> c_16(e^#())
, activate^#(n__i()) -> c_17(i^#())
, activate^#(n__o()) -> c_18(o^#())
, activate^#(n__u()) -> c_19(u^#())
, U13^#(tt()) -> c_20()
, isNeList^#(V) ->
c_21(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, isNeList^#(n____(V1, V2)) ->
c_22(U41^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, isNeList^#(n____(V1, V2)) ->
c_23(U51^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U91^#(tt(), V2) ->
c_66(U92^#(isPalListKind(activate(V2))),
isPalListKind^#(activate(V2)),
activate^#(V2))
, a^#() -> c_68()
, e^#() -> c_69()
, i^#() -> c_70()
, o^#() -> c_71()
, u^#() -> c_72()
, U31^#(tt(), V) ->
c_33(U32^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U41^#(tt(), V1, V2) ->
c_41(U42^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U51^#(tt(), V1, V2) ->
c_47(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U21^#(tt(), V1, V2) ->
c_24(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U22^#(tt(), V1, V2) ->
c_25(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U23^#(tt(), V1, V2) ->
c_26(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U24^#(tt(), V1, V2) ->
c_27(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, U25^#(tt(), V2) ->
c_28(U26^#(isList(activate(V2))),
isList^#(activate(V2)),
activate^#(V2))
, isList^#(V) ->
c_29(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, isList^#(n__nil()) -> c_30()
, isList^#(n____(V1, V2)) ->
c_31(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U26^#(tt()) -> c_32()
, U32^#(tt(), V) ->
c_34(U33^#(isQid(activate(V))),
isQid^#(activate(V)),
activate^#(V))
, U33^#(tt()) -> c_35()
, isQid^#(n__a()) -> c_36()
, isQid^#(n__e()) -> c_37()
, isQid^#(n__i()) -> c_38()
, isQid^#(n__o()) -> c_39()
, isQid^#(n__u()) -> c_40()
, U42^#(tt(), V1, V2) ->
c_42(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U43^#(tt(), V1, V2) ->
c_43(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U44^#(tt(), V1, V2) ->
c_44(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, U45^#(tt(), V2) ->
c_45(U46^#(isNeList(activate(V2))),
isNeList^#(activate(V2)),
activate^#(V2))
, U46^#(tt()) -> c_46()
, U52^#(tt(), V1, V2) ->
c_48(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U53^#(tt(), V1, V2) ->
c_49(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U54^#(tt(), V1, V2) ->
c_50(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, U55^#(tt(), V2) ->
c_51(U56^#(isList(activate(V2))),
isList^#(activate(V2)),
activate^#(V2))
, U56^#(tt()) -> c_52()
, U61^#(tt(), V) ->
c_53(U62^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U62^#(tt(), V) ->
c_54(U63^#(isQid(activate(V))),
isQid^#(activate(V)),
activate^#(V))
, U63^#(tt()) -> c_55()
, U71^#(tt(), I, P) ->
c_56(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)),
activate^#(I),
activate^#(P))
, U72^#(tt(), P) ->
c_57(U73^#(isPal(activate(P)), activate(P)),
isPal^#(activate(P)),
activate^#(P),
activate^#(P))
, U73^#(tt(), P) ->
c_58(U74^#(isPalListKind(activate(P))),
isPalListKind^#(activate(P)),
activate^#(P))
, isPal^#(V) ->
c_59(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, isPal^#(n__nil()) -> c_60()
, U74^#(tt()) -> c_61()
, U81^#(tt(), V) ->
c_62(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U82^#(tt(), V) ->
c_63(U83^#(isNePal(activate(V))),
isNePal^#(activate(V)),
activate^#(V))
, U83^#(tt()) -> c_64()
, isNePal^#(V) ->
c_65(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U92^#(tt()) -> c_67() }
and mark the set of starting terms.
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^2)).
Strict DPs:
{ __^#(X1, X2) -> c_1()
, nil^#() -> c_2()
, U11^#(tt(), V) ->
c_3(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U12^#(tt(), V) ->
c_4(U13^#(isNeList(activate(V))),
isNeList^#(activate(V)),
activate^#(V))
, isPalListKind^#(n__nil()) -> c_5()
, isPalListKind^#(n____(V1, V2)) ->
c_6(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, isPalListKind^#(n__a()) -> c_7()
, isPalListKind^#(n__e()) -> c_8()
, isPalListKind^#(n__i()) -> c_9()
, isPalListKind^#(n__o()) -> c_10()
, isPalListKind^#(n__u()) -> c_11()
, activate^#(X) -> c_12()
, activate^#(n__nil()) -> c_13(nil^#())
, activate^#(n____(X1, X2)) -> c_14(__^#(X1, X2))
, activate^#(n__a()) -> c_15(a^#())
, activate^#(n__e()) -> c_16(e^#())
, activate^#(n__i()) -> c_17(i^#())
, activate^#(n__o()) -> c_18(o^#())
, activate^#(n__u()) -> c_19(u^#())
, U13^#(tt()) -> c_20()
, isNeList^#(V) ->
c_21(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, isNeList^#(n____(V1, V2)) ->
c_22(U41^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, isNeList^#(n____(V1, V2)) ->
c_23(U51^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U91^#(tt(), V2) ->
c_66(U92^#(isPalListKind(activate(V2))),
isPalListKind^#(activate(V2)),
activate^#(V2))
, a^#() -> c_68()
, e^#() -> c_69()
, i^#() -> c_70()
, o^#() -> c_71()
, u^#() -> c_72()
, U31^#(tt(), V) ->
c_33(U32^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U41^#(tt(), V1, V2) ->
c_41(U42^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U51^#(tt(), V1, V2) ->
c_47(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U21^#(tt(), V1, V2) ->
c_24(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U22^#(tt(), V1, V2) ->
c_25(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U23^#(tt(), V1, V2) ->
c_26(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U24^#(tt(), V1, V2) ->
c_27(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, U25^#(tt(), V2) ->
c_28(U26^#(isList(activate(V2))),
isList^#(activate(V2)),
activate^#(V2))
, isList^#(V) ->
c_29(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, isList^#(n__nil()) -> c_30()
, isList^#(n____(V1, V2)) ->
c_31(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U26^#(tt()) -> c_32()
, U32^#(tt(), V) ->
c_34(U33^#(isQid(activate(V))),
isQid^#(activate(V)),
activate^#(V))
, U33^#(tt()) -> c_35()
, isQid^#(n__a()) -> c_36()
, isQid^#(n__e()) -> c_37()
, isQid^#(n__i()) -> c_38()
, isQid^#(n__o()) -> c_39()
, isQid^#(n__u()) -> c_40()
, U42^#(tt(), V1, V2) ->
c_42(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U43^#(tt(), V1, V2) ->
c_43(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U44^#(tt(), V1, V2) ->
c_44(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, U45^#(tt(), V2) ->
c_45(U46^#(isNeList(activate(V2))),
isNeList^#(activate(V2)),
activate^#(V2))
, U46^#(tt()) -> c_46()
, U52^#(tt(), V1, V2) ->
c_48(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U53^#(tt(), V1, V2) ->
c_49(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U54^#(tt(), V1, V2) ->
c_50(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, U55^#(tt(), V2) ->
c_51(U56^#(isList(activate(V2))),
isList^#(activate(V2)),
activate^#(V2))
, U56^#(tt()) -> c_52()
, U61^#(tt(), V) ->
c_53(U62^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U62^#(tt(), V) ->
c_54(U63^#(isQid(activate(V))),
isQid^#(activate(V)),
activate^#(V))
, U63^#(tt()) -> c_55()
, U71^#(tt(), I, P) ->
c_56(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)),
activate^#(I),
activate^#(P))
, U72^#(tt(), P) ->
c_57(U73^#(isPal(activate(P)), activate(P)),
isPal^#(activate(P)),
activate^#(P),
activate^#(P))
, U73^#(tt(), P) ->
c_58(U74^#(isPalListKind(activate(P))),
isPalListKind^#(activate(P)),
activate^#(P))
, isPal^#(V) ->
c_59(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, isPal^#(n__nil()) -> c_60()
, U74^#(tt()) -> c_61()
, U81^#(tt(), V) ->
c_62(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U82^#(tt(), V) ->
c_63(U83^#(isNePal(activate(V))),
isNePal^#(activate(V)),
activate^#(V))
, U83^#(tt()) -> c_64()
, isNePal^#(V) ->
c_65(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U92^#(tt()) -> c_67() }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, U71(tt(), I, P) -> U72(isPalListKind(activate(I)), activate(P))
, U72(tt(), P) -> U73(isPal(activate(P)), activate(P))
, U73(tt(), P) -> U74(isPalListKind(activate(P)))
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U74(tt()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^2))
We estimate the number of application of
{1,2,5,7,8,9,10,11,12,20,25,26,27,28,29,39,41,43,44,45,46,47,48,53,58,61,66,67,70,72}
by applications of
Pre({1,2,5,7,8,9,10,11,12,20,25,26,27,28,29,39,41,43,44,45,46,47,48,53,58,61,66,67,70,72})
=
{3,4,6,13,14,15,16,17,18,19,21,22,23,24,30,31,32,33,34,35,36,37,38,40,42,49,50,51,52,54,55,56,57,59,60,62,63,64,65,68,69,71}.
Here rules are labeled as follows:
DPs:
{ 1: __^#(X1, X2) -> c_1()
, 2: nil^#() -> c_2()
, 3: U11^#(tt(), V) ->
c_3(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, 4: U12^#(tt(), V) ->
c_4(U13^#(isNeList(activate(V))),
isNeList^#(activate(V)),
activate^#(V))
, 5: isPalListKind^#(n__nil()) -> c_5()
, 6: isPalListKind^#(n____(V1, V2)) ->
c_6(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, 7: isPalListKind^#(n__a()) -> c_7()
, 8: isPalListKind^#(n__e()) -> c_8()
, 9: isPalListKind^#(n__i()) -> c_9()
, 10: isPalListKind^#(n__o()) -> c_10()
, 11: isPalListKind^#(n__u()) -> c_11()
, 12: activate^#(X) -> c_12()
, 13: activate^#(n__nil()) -> c_13(nil^#())
, 14: activate^#(n____(X1, X2)) -> c_14(__^#(X1, X2))
, 15: activate^#(n__a()) -> c_15(a^#())
, 16: activate^#(n__e()) -> c_16(e^#())
, 17: activate^#(n__i()) -> c_17(i^#())
, 18: activate^#(n__o()) -> c_18(o^#())
, 19: activate^#(n__u()) -> c_19(u^#())
, 20: U13^#(tt()) -> c_20()
, 21: isNeList^#(V) ->
c_21(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, 22: isNeList^#(n____(V1, V2)) ->
c_22(U41^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, 23: isNeList^#(n____(V1, V2)) ->
c_23(U51^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, 24: U91^#(tt(), V2) ->
c_66(U92^#(isPalListKind(activate(V2))),
isPalListKind^#(activate(V2)),
activate^#(V2))
, 25: a^#() -> c_68()
, 26: e^#() -> c_69()
, 27: i^#() -> c_70()
, 28: o^#() -> c_71()
, 29: u^#() -> c_72()
, 30: U31^#(tt(), V) ->
c_33(U32^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, 31: U41^#(tt(), V1, V2) ->
c_41(U42^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, 32: U51^#(tt(), V1, V2) ->
c_47(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, 33: U21^#(tt(), V1, V2) ->
c_24(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, 34: U22^#(tt(), V1, V2) ->
c_25(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, 35: U23^#(tt(), V1, V2) ->
c_26(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, 36: U24^#(tt(), V1, V2) ->
c_27(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, 37: U25^#(tt(), V2) ->
c_28(U26^#(isList(activate(V2))),
isList^#(activate(V2)),
activate^#(V2))
, 38: isList^#(V) ->
c_29(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, 39: isList^#(n__nil()) -> c_30()
, 40: isList^#(n____(V1, V2)) ->
c_31(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, 41: U26^#(tt()) -> c_32()
, 42: U32^#(tt(), V) ->
c_34(U33^#(isQid(activate(V))),
isQid^#(activate(V)),
activate^#(V))
, 43: U33^#(tt()) -> c_35()
, 44: isQid^#(n__a()) -> c_36()
, 45: isQid^#(n__e()) -> c_37()
, 46: isQid^#(n__i()) -> c_38()
, 47: isQid^#(n__o()) -> c_39()
, 48: isQid^#(n__u()) -> c_40()
, 49: U42^#(tt(), V1, V2) ->
c_42(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, 50: U43^#(tt(), V1, V2) ->
c_43(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, 51: U44^#(tt(), V1, V2) ->
c_44(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, 52: U45^#(tt(), V2) ->
c_45(U46^#(isNeList(activate(V2))),
isNeList^#(activate(V2)),
activate^#(V2))
, 53: U46^#(tt()) -> c_46()
, 54: U52^#(tt(), V1, V2) ->
c_48(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, 55: U53^#(tt(), V1, V2) ->
c_49(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, 56: U54^#(tt(), V1, V2) ->
c_50(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, 57: U55^#(tt(), V2) ->
c_51(U56^#(isList(activate(V2))),
isList^#(activate(V2)),
activate^#(V2))
, 58: U56^#(tt()) -> c_52()
, 59: U61^#(tt(), V) ->
c_53(U62^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, 60: U62^#(tt(), V) ->
c_54(U63^#(isQid(activate(V))),
isQid^#(activate(V)),
activate^#(V))
, 61: U63^#(tt()) -> c_55()
, 62: U71^#(tt(), I, P) ->
c_56(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)),
activate^#(I),
activate^#(P))
, 63: U72^#(tt(), P) ->
c_57(U73^#(isPal(activate(P)), activate(P)),
isPal^#(activate(P)),
activate^#(P),
activate^#(P))
, 64: U73^#(tt(), P) ->
c_58(U74^#(isPalListKind(activate(P))),
isPalListKind^#(activate(P)),
activate^#(P))
, 65: isPal^#(V) ->
c_59(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, 66: isPal^#(n__nil()) -> c_60()
, 67: U74^#(tt()) -> c_61()
, 68: U81^#(tt(), V) ->
c_62(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, 69: U82^#(tt(), V) ->
c_63(U83^#(isNePal(activate(V))),
isNePal^#(activate(V)),
activate^#(V))
, 70: U83^#(tt()) -> c_64()
, 71: isNePal^#(V) ->
c_65(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, 72: U92^#(tt()) -> c_67() }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^2)).
Strict DPs:
{ U11^#(tt(), V) ->
c_3(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U12^#(tt(), V) ->
c_4(U13^#(isNeList(activate(V))),
isNeList^#(activate(V)),
activate^#(V))
, isPalListKind^#(n____(V1, V2)) ->
c_6(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, activate^#(n__nil()) -> c_13(nil^#())
, activate^#(n____(X1, X2)) -> c_14(__^#(X1, X2))
, activate^#(n__a()) -> c_15(a^#())
, activate^#(n__e()) -> c_16(e^#())
, activate^#(n__i()) -> c_17(i^#())
, activate^#(n__o()) -> c_18(o^#())
, activate^#(n__u()) -> c_19(u^#())
, isNeList^#(V) ->
c_21(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, isNeList^#(n____(V1, V2)) ->
c_22(U41^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, isNeList^#(n____(V1, V2)) ->
c_23(U51^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U91^#(tt(), V2) ->
c_66(U92^#(isPalListKind(activate(V2))),
isPalListKind^#(activate(V2)),
activate^#(V2))
, U31^#(tt(), V) ->
c_33(U32^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U41^#(tt(), V1, V2) ->
c_41(U42^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U51^#(tt(), V1, V2) ->
c_47(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U21^#(tt(), V1, V2) ->
c_24(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U22^#(tt(), V1, V2) ->
c_25(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U23^#(tt(), V1, V2) ->
c_26(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U24^#(tt(), V1, V2) ->
c_27(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, U25^#(tt(), V2) ->
c_28(U26^#(isList(activate(V2))),
isList^#(activate(V2)),
activate^#(V2))
, isList^#(V) ->
c_29(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, isList^#(n____(V1, V2)) ->
c_31(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U32^#(tt(), V) ->
c_34(U33^#(isQid(activate(V))),
isQid^#(activate(V)),
activate^#(V))
, U42^#(tt(), V1, V2) ->
c_42(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U43^#(tt(), V1, V2) ->
c_43(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U44^#(tt(), V1, V2) ->
c_44(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, U45^#(tt(), V2) ->
c_45(U46^#(isNeList(activate(V2))),
isNeList^#(activate(V2)),
activate^#(V2))
, U52^#(tt(), V1, V2) ->
c_48(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U53^#(tt(), V1, V2) ->
c_49(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U54^#(tt(), V1, V2) ->
c_50(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, U55^#(tt(), V2) ->
c_51(U56^#(isList(activate(V2))),
isList^#(activate(V2)),
activate^#(V2))
, U61^#(tt(), V) ->
c_53(U62^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U62^#(tt(), V) ->
c_54(U63^#(isQid(activate(V))),
isQid^#(activate(V)),
activate^#(V))
, U71^#(tt(), I, P) ->
c_56(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)),
activate^#(I),
activate^#(P))
, U72^#(tt(), P) ->
c_57(U73^#(isPal(activate(P)), activate(P)),
isPal^#(activate(P)),
activate^#(P),
activate^#(P))
, U73^#(tt(), P) ->
c_58(U74^#(isPalListKind(activate(P))),
isPalListKind^#(activate(P)),
activate^#(P))
, isPal^#(V) ->
c_59(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U81^#(tt(), V) ->
c_62(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U82^#(tt(), V) ->
c_63(U83^#(isNePal(activate(V))),
isNePal^#(activate(V)),
activate^#(V))
, isNePal^#(V) ->
c_65(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V)) }
Weak DPs:
{ __^#(X1, X2) -> c_1()
, nil^#() -> c_2()
, isPalListKind^#(n__nil()) -> c_5()
, isPalListKind^#(n__a()) -> c_7()
, isPalListKind^#(n__e()) -> c_8()
, isPalListKind^#(n__i()) -> c_9()
, isPalListKind^#(n__o()) -> c_10()
, isPalListKind^#(n__u()) -> c_11()
, activate^#(X) -> c_12()
, U13^#(tt()) -> c_20()
, a^#() -> c_68()
, e^#() -> c_69()
, i^#() -> c_70()
, o^#() -> c_71()
, u^#() -> c_72()
, isList^#(n__nil()) -> c_30()
, U26^#(tt()) -> c_32()
, U33^#(tt()) -> c_35()
, isQid^#(n__a()) -> c_36()
, isQid^#(n__e()) -> c_37()
, isQid^#(n__i()) -> c_38()
, isQid^#(n__o()) -> c_39()
, isQid^#(n__u()) -> c_40()
, U46^#(tt()) -> c_46()
, U56^#(tt()) -> c_52()
, U63^#(tt()) -> c_55()
, isPal^#(n__nil()) -> c_60()
, U74^#(tt()) -> c_61()
, U83^#(tt()) -> c_64()
, U92^#(tt()) -> c_67() }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, U71(tt(), I, P) -> U72(isPalListKind(activate(I)), activate(P))
, U72(tt(), P) -> U73(isPal(activate(P)), activate(P))
, U73(tt(), P) -> U74(isPalListKind(activate(P)))
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U74(tt()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^2))
We estimate the number of application of {4,5,6,7,8,9,10} by
applications of Pre({4,5,6,7,8,9,10}) =
{1,2,3,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42}.
Here rules are labeled as follows:
DPs:
{ 1: U11^#(tt(), V) ->
c_3(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, 2: U12^#(tt(), V) ->
c_4(U13^#(isNeList(activate(V))),
isNeList^#(activate(V)),
activate^#(V))
, 3: isPalListKind^#(n____(V1, V2)) ->
c_6(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, 4: activate^#(n__nil()) -> c_13(nil^#())
, 5: activate^#(n____(X1, X2)) -> c_14(__^#(X1, X2))
, 6: activate^#(n__a()) -> c_15(a^#())
, 7: activate^#(n__e()) -> c_16(e^#())
, 8: activate^#(n__i()) -> c_17(i^#())
, 9: activate^#(n__o()) -> c_18(o^#())
, 10: activate^#(n__u()) -> c_19(u^#())
, 11: isNeList^#(V) ->
c_21(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, 12: isNeList^#(n____(V1, V2)) ->
c_22(U41^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, 13: isNeList^#(n____(V1, V2)) ->
c_23(U51^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, 14: U91^#(tt(), V2) ->
c_66(U92^#(isPalListKind(activate(V2))),
isPalListKind^#(activate(V2)),
activate^#(V2))
, 15: U31^#(tt(), V) ->
c_33(U32^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, 16: U41^#(tt(), V1, V2) ->
c_41(U42^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, 17: U51^#(tt(), V1, V2) ->
c_47(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, 18: U21^#(tt(), V1, V2) ->
c_24(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, 19: U22^#(tt(), V1, V2) ->
c_25(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, 20: U23^#(tt(), V1, V2) ->
c_26(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, 21: U24^#(tt(), V1, V2) ->
c_27(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, 22: U25^#(tt(), V2) ->
c_28(U26^#(isList(activate(V2))),
isList^#(activate(V2)),
activate^#(V2))
, 23: isList^#(V) ->
c_29(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, 24: isList^#(n____(V1, V2)) ->
c_31(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, 25: U32^#(tt(), V) ->
c_34(U33^#(isQid(activate(V))),
isQid^#(activate(V)),
activate^#(V))
, 26: U42^#(tt(), V1, V2) ->
c_42(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, 27: U43^#(tt(), V1, V2) ->
c_43(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, 28: U44^#(tt(), V1, V2) ->
c_44(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, 29: U45^#(tt(), V2) ->
c_45(U46^#(isNeList(activate(V2))),
isNeList^#(activate(V2)),
activate^#(V2))
, 30: U52^#(tt(), V1, V2) ->
c_48(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, 31: U53^#(tt(), V1, V2) ->
c_49(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, 32: U54^#(tt(), V1, V2) ->
c_50(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, 33: U55^#(tt(), V2) ->
c_51(U56^#(isList(activate(V2))),
isList^#(activate(V2)),
activate^#(V2))
, 34: U61^#(tt(), V) ->
c_53(U62^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, 35: U62^#(tt(), V) ->
c_54(U63^#(isQid(activate(V))),
isQid^#(activate(V)),
activate^#(V))
, 36: U71^#(tt(), I, P) ->
c_56(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)),
activate^#(I),
activate^#(P))
, 37: U72^#(tt(), P) ->
c_57(U73^#(isPal(activate(P)), activate(P)),
isPal^#(activate(P)),
activate^#(P),
activate^#(P))
, 38: U73^#(tt(), P) ->
c_58(U74^#(isPalListKind(activate(P))),
isPalListKind^#(activate(P)),
activate^#(P))
, 39: isPal^#(V) ->
c_59(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, 40: U81^#(tt(), V) ->
c_62(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, 41: U82^#(tt(), V) ->
c_63(U83^#(isNePal(activate(V))),
isNePal^#(activate(V)),
activate^#(V))
, 42: isNePal^#(V) ->
c_65(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, 43: __^#(X1, X2) -> c_1()
, 44: nil^#() -> c_2()
, 45: isPalListKind^#(n__nil()) -> c_5()
, 46: isPalListKind^#(n__a()) -> c_7()
, 47: isPalListKind^#(n__e()) -> c_8()
, 48: isPalListKind^#(n__i()) -> c_9()
, 49: isPalListKind^#(n__o()) -> c_10()
, 50: isPalListKind^#(n__u()) -> c_11()
, 51: activate^#(X) -> c_12()
, 52: U13^#(tt()) -> c_20()
, 53: a^#() -> c_68()
, 54: e^#() -> c_69()
, 55: i^#() -> c_70()
, 56: o^#() -> c_71()
, 57: u^#() -> c_72()
, 58: isList^#(n__nil()) -> c_30()
, 59: U26^#(tt()) -> c_32()
, 60: U33^#(tt()) -> c_35()
, 61: isQid^#(n__a()) -> c_36()
, 62: isQid^#(n__e()) -> c_37()
, 63: isQid^#(n__i()) -> c_38()
, 64: isQid^#(n__o()) -> c_39()
, 65: isQid^#(n__u()) -> c_40()
, 66: U46^#(tt()) -> c_46()
, 67: U56^#(tt()) -> c_52()
, 68: U63^#(tt()) -> c_55()
, 69: isPal^#(n__nil()) -> c_60()
, 70: U74^#(tt()) -> c_61()
, 71: U83^#(tt()) -> c_64()
, 72: U92^#(tt()) -> c_67() }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^2)).
Strict DPs:
{ U11^#(tt(), V) ->
c_3(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U12^#(tt(), V) ->
c_4(U13^#(isNeList(activate(V))),
isNeList^#(activate(V)),
activate^#(V))
, isPalListKind^#(n____(V1, V2)) ->
c_6(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, isNeList^#(V) ->
c_21(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, isNeList^#(n____(V1, V2)) ->
c_22(U41^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, isNeList^#(n____(V1, V2)) ->
c_23(U51^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U91^#(tt(), V2) ->
c_66(U92^#(isPalListKind(activate(V2))),
isPalListKind^#(activate(V2)),
activate^#(V2))
, U31^#(tt(), V) ->
c_33(U32^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U41^#(tt(), V1, V2) ->
c_41(U42^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U51^#(tt(), V1, V2) ->
c_47(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U21^#(tt(), V1, V2) ->
c_24(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U22^#(tt(), V1, V2) ->
c_25(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U23^#(tt(), V1, V2) ->
c_26(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U24^#(tt(), V1, V2) ->
c_27(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, U25^#(tt(), V2) ->
c_28(U26^#(isList(activate(V2))),
isList^#(activate(V2)),
activate^#(V2))
, isList^#(V) ->
c_29(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, isList^#(n____(V1, V2)) ->
c_31(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U32^#(tt(), V) ->
c_34(U33^#(isQid(activate(V))),
isQid^#(activate(V)),
activate^#(V))
, U42^#(tt(), V1, V2) ->
c_42(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U43^#(tt(), V1, V2) ->
c_43(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U44^#(tt(), V1, V2) ->
c_44(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, U45^#(tt(), V2) ->
c_45(U46^#(isNeList(activate(V2))),
isNeList^#(activate(V2)),
activate^#(V2))
, U52^#(tt(), V1, V2) ->
c_48(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U53^#(tt(), V1, V2) ->
c_49(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U54^#(tt(), V1, V2) ->
c_50(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, U55^#(tt(), V2) ->
c_51(U56^#(isList(activate(V2))),
isList^#(activate(V2)),
activate^#(V2))
, U61^#(tt(), V) ->
c_53(U62^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U62^#(tt(), V) ->
c_54(U63^#(isQid(activate(V))),
isQid^#(activate(V)),
activate^#(V))
, U71^#(tt(), I, P) ->
c_56(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)),
activate^#(I),
activate^#(P))
, U72^#(tt(), P) ->
c_57(U73^#(isPal(activate(P)), activate(P)),
isPal^#(activate(P)),
activate^#(P),
activate^#(P))
, U73^#(tt(), P) ->
c_58(U74^#(isPalListKind(activate(P))),
isPalListKind^#(activate(P)),
activate^#(P))
, isPal^#(V) ->
c_59(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U81^#(tt(), V) ->
c_62(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U82^#(tt(), V) ->
c_63(U83^#(isNePal(activate(V))),
isNePal^#(activate(V)),
activate^#(V))
, isNePal^#(V) ->
c_65(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V)) }
Weak DPs:
{ __^#(X1, X2) -> c_1()
, nil^#() -> c_2()
, isPalListKind^#(n__nil()) -> c_5()
, isPalListKind^#(n__a()) -> c_7()
, isPalListKind^#(n__e()) -> c_8()
, isPalListKind^#(n__i()) -> c_9()
, isPalListKind^#(n__o()) -> c_10()
, isPalListKind^#(n__u()) -> c_11()
, activate^#(X) -> c_12()
, activate^#(n__nil()) -> c_13(nil^#())
, activate^#(n____(X1, X2)) -> c_14(__^#(X1, X2))
, activate^#(n__a()) -> c_15(a^#())
, activate^#(n__e()) -> c_16(e^#())
, activate^#(n__i()) -> c_17(i^#())
, activate^#(n__o()) -> c_18(o^#())
, activate^#(n__u()) -> c_19(u^#())
, U13^#(tt()) -> c_20()
, a^#() -> c_68()
, e^#() -> c_69()
, i^#() -> c_70()
, o^#() -> c_71()
, u^#() -> c_72()
, isList^#(n__nil()) -> c_30()
, U26^#(tt()) -> c_32()
, U33^#(tt()) -> c_35()
, isQid^#(n__a()) -> c_36()
, isQid^#(n__e()) -> c_37()
, isQid^#(n__i()) -> c_38()
, isQid^#(n__o()) -> c_39()
, isQid^#(n__u()) -> c_40()
, U46^#(tt()) -> c_46()
, U56^#(tt()) -> c_52()
, U63^#(tt()) -> c_55()
, isPal^#(n__nil()) -> c_60()
, U74^#(tt()) -> c_61()
, U83^#(tt()) -> c_64()
, U92^#(tt()) -> c_67() }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, U71(tt(), I, P) -> U72(isPalListKind(activate(I)), activate(P))
, U72(tt(), P) -> U73(isPal(activate(P)), activate(P))
, U73(tt(), P) -> U74(isPalListKind(activate(P)))
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U74(tt()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^2))
We estimate the number of application of {18,28} by applications of
Pre({18,28}) = {8,27}. Here rules are labeled as follows:
DPs:
{ 1: U11^#(tt(), V) ->
c_3(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, 2: U12^#(tt(), V) ->
c_4(U13^#(isNeList(activate(V))),
isNeList^#(activate(V)),
activate^#(V))
, 3: isPalListKind^#(n____(V1, V2)) ->
c_6(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, 4: isNeList^#(V) ->
c_21(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, 5: isNeList^#(n____(V1, V2)) ->
c_22(U41^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, 6: isNeList^#(n____(V1, V2)) ->
c_23(U51^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, 7: U91^#(tt(), V2) ->
c_66(U92^#(isPalListKind(activate(V2))),
isPalListKind^#(activate(V2)),
activate^#(V2))
, 8: U31^#(tt(), V) ->
c_33(U32^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, 9: U41^#(tt(), V1, V2) ->
c_41(U42^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, 10: U51^#(tt(), V1, V2) ->
c_47(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, 11: U21^#(tt(), V1, V2) ->
c_24(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, 12: U22^#(tt(), V1, V2) ->
c_25(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, 13: U23^#(tt(), V1, V2) ->
c_26(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, 14: U24^#(tt(), V1, V2) ->
c_27(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, 15: U25^#(tt(), V2) ->
c_28(U26^#(isList(activate(V2))),
isList^#(activate(V2)),
activate^#(V2))
, 16: isList^#(V) ->
c_29(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, 17: isList^#(n____(V1, V2)) ->
c_31(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, 18: U32^#(tt(), V) ->
c_34(U33^#(isQid(activate(V))),
isQid^#(activate(V)),
activate^#(V))
, 19: U42^#(tt(), V1, V2) ->
c_42(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, 20: U43^#(tt(), V1, V2) ->
c_43(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, 21: U44^#(tt(), V1, V2) ->
c_44(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, 22: U45^#(tt(), V2) ->
c_45(U46^#(isNeList(activate(V2))),
isNeList^#(activate(V2)),
activate^#(V2))
, 23: U52^#(tt(), V1, V2) ->
c_48(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, 24: U53^#(tt(), V1, V2) ->
c_49(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, 25: U54^#(tt(), V1, V2) ->
c_50(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, 26: U55^#(tt(), V2) ->
c_51(U56^#(isList(activate(V2))),
isList^#(activate(V2)),
activate^#(V2))
, 27: U61^#(tt(), V) ->
c_53(U62^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, 28: U62^#(tt(), V) ->
c_54(U63^#(isQid(activate(V))),
isQid^#(activate(V)),
activate^#(V))
, 29: U71^#(tt(), I, P) ->
c_56(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)),
activate^#(I),
activate^#(P))
, 30: U72^#(tt(), P) ->
c_57(U73^#(isPal(activate(P)), activate(P)),
isPal^#(activate(P)),
activate^#(P),
activate^#(P))
, 31: U73^#(tt(), P) ->
c_58(U74^#(isPalListKind(activate(P))),
isPalListKind^#(activate(P)),
activate^#(P))
, 32: isPal^#(V) ->
c_59(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, 33: U81^#(tt(), V) ->
c_62(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, 34: U82^#(tt(), V) ->
c_63(U83^#(isNePal(activate(V))),
isNePal^#(activate(V)),
activate^#(V))
, 35: isNePal^#(V) ->
c_65(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, 36: __^#(X1, X2) -> c_1()
, 37: nil^#() -> c_2()
, 38: isPalListKind^#(n__nil()) -> c_5()
, 39: isPalListKind^#(n__a()) -> c_7()
, 40: isPalListKind^#(n__e()) -> c_8()
, 41: isPalListKind^#(n__i()) -> c_9()
, 42: isPalListKind^#(n__o()) -> c_10()
, 43: isPalListKind^#(n__u()) -> c_11()
, 44: activate^#(X) -> c_12()
, 45: activate^#(n__nil()) -> c_13(nil^#())
, 46: activate^#(n____(X1, X2)) -> c_14(__^#(X1, X2))
, 47: activate^#(n__a()) -> c_15(a^#())
, 48: activate^#(n__e()) -> c_16(e^#())
, 49: activate^#(n__i()) -> c_17(i^#())
, 50: activate^#(n__o()) -> c_18(o^#())
, 51: activate^#(n__u()) -> c_19(u^#())
, 52: U13^#(tt()) -> c_20()
, 53: a^#() -> c_68()
, 54: e^#() -> c_69()
, 55: i^#() -> c_70()
, 56: o^#() -> c_71()
, 57: u^#() -> c_72()
, 58: isList^#(n__nil()) -> c_30()
, 59: U26^#(tt()) -> c_32()
, 60: U33^#(tt()) -> c_35()
, 61: isQid^#(n__a()) -> c_36()
, 62: isQid^#(n__e()) -> c_37()
, 63: isQid^#(n__i()) -> c_38()
, 64: isQid^#(n__o()) -> c_39()
, 65: isQid^#(n__u()) -> c_40()
, 66: U46^#(tt()) -> c_46()
, 67: U56^#(tt()) -> c_52()
, 68: U63^#(tt()) -> c_55()
, 69: isPal^#(n__nil()) -> c_60()
, 70: U74^#(tt()) -> c_61()
, 71: U83^#(tt()) -> c_64()
, 72: U92^#(tt()) -> c_67() }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^2)).
Strict DPs:
{ U11^#(tt(), V) ->
c_3(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U12^#(tt(), V) ->
c_4(U13^#(isNeList(activate(V))),
isNeList^#(activate(V)),
activate^#(V))
, isPalListKind^#(n____(V1, V2)) ->
c_6(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, isNeList^#(V) ->
c_21(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, isNeList^#(n____(V1, V2)) ->
c_22(U41^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, isNeList^#(n____(V1, V2)) ->
c_23(U51^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U91^#(tt(), V2) ->
c_66(U92^#(isPalListKind(activate(V2))),
isPalListKind^#(activate(V2)),
activate^#(V2))
, U31^#(tt(), V) ->
c_33(U32^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U41^#(tt(), V1, V2) ->
c_41(U42^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U51^#(tt(), V1, V2) ->
c_47(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U21^#(tt(), V1, V2) ->
c_24(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U22^#(tt(), V1, V2) ->
c_25(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U23^#(tt(), V1, V2) ->
c_26(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U24^#(tt(), V1, V2) ->
c_27(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, U25^#(tt(), V2) ->
c_28(U26^#(isList(activate(V2))),
isList^#(activate(V2)),
activate^#(V2))
, isList^#(V) ->
c_29(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, isList^#(n____(V1, V2)) ->
c_31(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U42^#(tt(), V1, V2) ->
c_42(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U43^#(tt(), V1, V2) ->
c_43(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U44^#(tt(), V1, V2) ->
c_44(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, U45^#(tt(), V2) ->
c_45(U46^#(isNeList(activate(V2))),
isNeList^#(activate(V2)),
activate^#(V2))
, U52^#(tt(), V1, V2) ->
c_48(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U53^#(tt(), V1, V2) ->
c_49(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U54^#(tt(), V1, V2) ->
c_50(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, U55^#(tt(), V2) ->
c_51(U56^#(isList(activate(V2))),
isList^#(activate(V2)),
activate^#(V2))
, U61^#(tt(), V) ->
c_53(U62^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U71^#(tt(), I, P) ->
c_56(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)),
activate^#(I),
activate^#(P))
, U72^#(tt(), P) ->
c_57(U73^#(isPal(activate(P)), activate(P)),
isPal^#(activate(P)),
activate^#(P),
activate^#(P))
, U73^#(tt(), P) ->
c_58(U74^#(isPalListKind(activate(P))),
isPalListKind^#(activate(P)),
activate^#(P))
, isPal^#(V) ->
c_59(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U81^#(tt(), V) ->
c_62(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U82^#(tt(), V) ->
c_63(U83^#(isNePal(activate(V))),
isNePal^#(activate(V)),
activate^#(V))
, isNePal^#(V) ->
c_65(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V)) }
Weak DPs:
{ __^#(X1, X2) -> c_1()
, nil^#() -> c_2()
, isPalListKind^#(n__nil()) -> c_5()
, isPalListKind^#(n__a()) -> c_7()
, isPalListKind^#(n__e()) -> c_8()
, isPalListKind^#(n__i()) -> c_9()
, isPalListKind^#(n__o()) -> c_10()
, isPalListKind^#(n__u()) -> c_11()
, activate^#(X) -> c_12()
, activate^#(n__nil()) -> c_13(nil^#())
, activate^#(n____(X1, X2)) -> c_14(__^#(X1, X2))
, activate^#(n__a()) -> c_15(a^#())
, activate^#(n__e()) -> c_16(e^#())
, activate^#(n__i()) -> c_17(i^#())
, activate^#(n__o()) -> c_18(o^#())
, activate^#(n__u()) -> c_19(u^#())
, U13^#(tt()) -> c_20()
, a^#() -> c_68()
, e^#() -> c_69()
, i^#() -> c_70()
, o^#() -> c_71()
, u^#() -> c_72()
, isList^#(n__nil()) -> c_30()
, U26^#(tt()) -> c_32()
, U32^#(tt(), V) ->
c_34(U33^#(isQid(activate(V))),
isQid^#(activate(V)),
activate^#(V))
, U33^#(tt()) -> c_35()
, isQid^#(n__a()) -> c_36()
, isQid^#(n__e()) -> c_37()
, isQid^#(n__i()) -> c_38()
, isQid^#(n__o()) -> c_39()
, isQid^#(n__u()) -> c_40()
, U46^#(tt()) -> c_46()
, U56^#(tt()) -> c_52()
, U62^#(tt(), V) ->
c_54(U63^#(isQid(activate(V))),
isQid^#(activate(V)),
activate^#(V))
, U63^#(tt()) -> c_55()
, isPal^#(n__nil()) -> c_60()
, U74^#(tt()) -> c_61()
, U83^#(tt()) -> c_64()
, U92^#(tt()) -> c_67() }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, U71(tt(), I, P) -> U72(isPalListKind(activate(I)), activate(P))
, U72(tt(), P) -> U73(isPal(activate(P)), activate(P))
, U73(tt(), P) -> U74(isPalListKind(activate(P)))
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U74(tt()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^2))
The following weak DPs constitute a sub-graph of the DG that is
closed under successors. The DPs are removed.
{ __^#(X1, X2) -> c_1()
, nil^#() -> c_2()
, isPalListKind^#(n__nil()) -> c_5()
, isPalListKind^#(n__a()) -> c_7()
, isPalListKind^#(n__e()) -> c_8()
, isPalListKind^#(n__i()) -> c_9()
, isPalListKind^#(n__o()) -> c_10()
, isPalListKind^#(n__u()) -> c_11()
, activate^#(X) -> c_12()
, activate^#(n__nil()) -> c_13(nil^#())
, activate^#(n____(X1, X2)) -> c_14(__^#(X1, X2))
, activate^#(n__a()) -> c_15(a^#())
, activate^#(n__e()) -> c_16(e^#())
, activate^#(n__i()) -> c_17(i^#())
, activate^#(n__o()) -> c_18(o^#())
, activate^#(n__u()) -> c_19(u^#())
, U13^#(tt()) -> c_20()
, a^#() -> c_68()
, e^#() -> c_69()
, i^#() -> c_70()
, o^#() -> c_71()
, u^#() -> c_72()
, isList^#(n__nil()) -> c_30()
, U26^#(tt()) -> c_32()
, U32^#(tt(), V) ->
c_34(U33^#(isQid(activate(V))),
isQid^#(activate(V)),
activate^#(V))
, U33^#(tt()) -> c_35()
, isQid^#(n__a()) -> c_36()
, isQid^#(n__e()) -> c_37()
, isQid^#(n__i()) -> c_38()
, isQid^#(n__o()) -> c_39()
, isQid^#(n__u()) -> c_40()
, U46^#(tt()) -> c_46()
, U56^#(tt()) -> c_52()
, U62^#(tt(), V) ->
c_54(U63^#(isQid(activate(V))),
isQid^#(activate(V)),
activate^#(V))
, U63^#(tt()) -> c_55()
, isPal^#(n__nil()) -> c_60()
, U74^#(tt()) -> c_61()
, U83^#(tt()) -> c_64()
, U92^#(tt()) -> c_67() }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^2)).
Strict DPs:
{ U11^#(tt(), V) ->
c_3(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U12^#(tt(), V) ->
c_4(U13^#(isNeList(activate(V))),
isNeList^#(activate(V)),
activate^#(V))
, isPalListKind^#(n____(V1, V2)) ->
c_6(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, isNeList^#(V) ->
c_21(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, isNeList^#(n____(V1, V2)) ->
c_22(U41^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, isNeList^#(n____(V1, V2)) ->
c_23(U51^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U91^#(tt(), V2) ->
c_66(U92^#(isPalListKind(activate(V2))),
isPalListKind^#(activate(V2)),
activate^#(V2))
, U31^#(tt(), V) ->
c_33(U32^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U41^#(tt(), V1, V2) ->
c_41(U42^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U51^#(tt(), V1, V2) ->
c_47(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U21^#(tt(), V1, V2) ->
c_24(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U22^#(tt(), V1, V2) ->
c_25(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U23^#(tt(), V1, V2) ->
c_26(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U24^#(tt(), V1, V2) ->
c_27(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, U25^#(tt(), V2) ->
c_28(U26^#(isList(activate(V2))),
isList^#(activate(V2)),
activate^#(V2))
, isList^#(V) ->
c_29(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, isList^#(n____(V1, V2)) ->
c_31(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U42^#(tt(), V1, V2) ->
c_42(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U43^#(tt(), V1, V2) ->
c_43(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U44^#(tt(), V1, V2) ->
c_44(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, U45^#(tt(), V2) ->
c_45(U46^#(isNeList(activate(V2))),
isNeList^#(activate(V2)),
activate^#(V2))
, U52^#(tt(), V1, V2) ->
c_48(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U53^#(tt(), V1, V2) ->
c_49(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U54^#(tt(), V1, V2) ->
c_50(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, U55^#(tt(), V2) ->
c_51(U56^#(isList(activate(V2))),
isList^#(activate(V2)),
activate^#(V2))
, U61^#(tt(), V) ->
c_53(U62^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U71^#(tt(), I, P) ->
c_56(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)),
activate^#(I),
activate^#(P))
, U72^#(tt(), P) ->
c_57(U73^#(isPal(activate(P)), activate(P)),
isPal^#(activate(P)),
activate^#(P),
activate^#(P))
, U73^#(tt(), P) ->
c_58(U74^#(isPalListKind(activate(P))),
isPalListKind^#(activate(P)),
activate^#(P))
, isPal^#(V) ->
c_59(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U81^#(tt(), V) ->
c_62(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U82^#(tt(), V) ->
c_63(U83^#(isNePal(activate(V))),
isNePal^#(activate(V)),
activate^#(V))
, isNePal^#(V) ->
c_65(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V)) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, U71(tt(), I, P) -> U72(isPalListKind(activate(I)), activate(P))
, U72(tt(), P) -> U73(isPal(activate(P)), activate(P))
, U73(tt(), P) -> U74(isPalListKind(activate(P)))
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U74(tt()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^2))
Due to missing edges in the dependency-graph, the right-hand sides
of following rules could be simplified:
{ U11^#(tt(), V) ->
c_3(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U12^#(tt(), V) ->
c_4(U13^#(isNeList(activate(V))),
isNeList^#(activate(V)),
activate^#(V))
, isPalListKind^#(n____(V1, V2)) ->
c_6(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, isNeList^#(V) ->
c_21(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, isNeList^#(n____(V1, V2)) ->
c_22(U41^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, isNeList^#(n____(V1, V2)) ->
c_23(U51^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U91^#(tt(), V2) ->
c_66(U92^#(isPalListKind(activate(V2))),
isPalListKind^#(activate(V2)),
activate^#(V2))
, U31^#(tt(), V) ->
c_33(U32^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U41^#(tt(), V1, V2) ->
c_41(U42^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U51^#(tt(), V1, V2) ->
c_47(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U21^#(tt(), V1, V2) ->
c_24(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U22^#(tt(), V1, V2) ->
c_25(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U23^#(tt(), V1, V2) ->
c_26(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U24^#(tt(), V1, V2) ->
c_27(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, U25^#(tt(), V2) ->
c_28(U26^#(isList(activate(V2))),
isList^#(activate(V2)),
activate^#(V2))
, isList^#(V) ->
c_29(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, isList^#(n____(V1, V2)) ->
c_31(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)),
activate^#(V1),
activate^#(V1),
activate^#(V2))
, U42^#(tt(), V1, V2) ->
c_42(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U43^#(tt(), V1, V2) ->
c_43(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U44^#(tt(), V1, V2) ->
c_44(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, U45^#(tt(), V2) ->
c_45(U46^#(isNeList(activate(V2))),
isNeList^#(activate(V2)),
activate^#(V2))
, U52^#(tt(), V1, V2) ->
c_48(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U53^#(tt(), V1, V2) ->
c_49(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)),
activate^#(V2),
activate^#(V1),
activate^#(V2))
, U54^#(tt(), V1, V2) ->
c_50(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)),
activate^#(V1),
activate^#(V2))
, U55^#(tt(), V2) ->
c_51(U56^#(isList(activate(V2))),
isList^#(activate(V2)),
activate^#(V2))
, U61^#(tt(), V) ->
c_53(U62^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U71^#(tt(), I, P) ->
c_56(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)),
activate^#(I),
activate^#(P))
, U72^#(tt(), P) ->
c_57(U73^#(isPal(activate(P)), activate(P)),
isPal^#(activate(P)),
activate^#(P),
activate^#(P))
, U73^#(tt(), P) ->
c_58(U74^#(isPalListKind(activate(P))),
isPalListKind^#(activate(P)),
activate^#(P))
, isPal^#(V) ->
c_59(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U81^#(tt(), V) ->
c_62(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V))
, U82^#(tt(), V) ->
c_63(U83^#(isNePal(activate(V))),
isNePal^#(activate(V)),
activate^#(V))
, isNePal^#(V) ->
c_65(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)),
activate^#(V),
activate^#(V)) }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^2)).
Strict DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P)))
, isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U82^#(tt(), V) -> c_32(isNePal^#(activate(V)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, U71(tt(), I, P) -> U72(isPalListKind(activate(I)), activate(P))
, U72(tt(), P) -> U73(isPal(activate(P)), activate(P))
, U73(tt(), P) -> U74(isPalListKind(activate(P)))
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U74(tt()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^2))
We replace rewrite rules by usable rules:
Weak Usable Rules:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^2)).
Strict DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P)))
, isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U82^#(tt(), V) -> c_32(isNePal^#(activate(V)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^2))
We analyse the complexity of following sub-problems (R) and (S).
Problem (S) is obtained from the input problem by shifting strict
rules from (R) into the weak component:
Problem (R):
------------
Strict DPs:
{ isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U82^#(tt(), V) -> c_32(isNePal^#(activate(V)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
Weak DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
StartTerms: basic terms
Strategy: innermost
Problem (S):
------------
Strict DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) }
Weak DPs:
{ isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U82^#(tt(), V) -> c_32(isNePal^#(activate(V)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
StartTerms: basic terms
Strategy: innermost
Overall, the transformation results in the following sub-problem(s):
Generated new problems:
-----------------------
R) Strict DPs:
{ isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U82^#(tt(), V) -> c_32(isNePal^#(activate(V)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
Weak DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
StartTerms: basic terms
Strategy: innermost
This problem was proven YES(O(1),O(n^2)).
S) Strict DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) }
Weak DPs:
{ isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U82^#(tt(), V) -> c_32(isNePal^#(activate(V)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
StartTerms: basic terms
Strategy: innermost
This problem was proven YES(O(1),O(n^1)).
Proofs for generated problems:
------------------------------
R) We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^2)).
Strict DPs:
{ isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U82^#(tt(), V) -> c_32(isNePal^#(activate(V)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
Weak DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^2))
We analyse the complexity of following sub-problems (R) and (S).
Problem (S) is obtained from the input problem by shifting strict
rules from (R) into the weak component:
Problem (R):
------------
Strict DPs:
{ isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)),
isPal^#(activate(P))) }
Weak DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P)))
, isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U82^#(tt(), V) -> c_32(isNePal^#(activate(V)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
StartTerms: basic terms
Strategy: innermost
Problem (S):
------------
Strict DPs:
{ U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U82^#(tt(), V) -> c_32(isNePal^#(activate(V)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
Weak DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
StartTerms: basic terms
Strategy: innermost
Overall, the transformation results in the following sub-problem(s):
Generated new problems:
-----------------------
R) Strict DPs:
{ isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)),
isPal^#(activate(P))) }
Weak DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P)))
, isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U82^#(tt(), V) -> c_32(isNePal^#(activate(V)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
StartTerms: basic terms
Strategy: innermost
This problem was proven YES(O(1),O(n^2)).
S) Strict DPs:
{ U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U82^#(tt(), V) -> c_32(isNePal^#(activate(V)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
Weak DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
StartTerms: basic terms
Strategy: innermost
This problem was proven YES(O(1),O(1)).
Proofs for generated problems:
------------------------------
R) We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^2)).
Strict DPs:
{ isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)),
isPal^#(activate(P))) }
Weak DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P)))
, isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U82^#(tt(), V) -> c_32(isNePal^#(activate(V)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^2))
We estimate the number of application of {4} by applications of
Pre({4}) = {3}. Here rules are labeled as follows:
DPs:
{ 1: isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, 2: U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, 3: U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, 4: U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, 5: U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 6: U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, 7: isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 8: isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 9: isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 10: U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, 11: U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 12: U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 13: U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 14: U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 15: U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 16: U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 17: U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, 18: isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 19: isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 20: U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 21: U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 22: U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 23: U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, 24: U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 25: U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 26: U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, 27: U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, 28: U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, 29: U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P)))
, 30: isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 31: U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 32: U82^#(tt(), V) -> c_32(isNePal^#(activate(V)))
, 33: isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^2)).
Strict DPs:
{ isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I))) }
Weak DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P)))
, isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U82^#(tt(), V) -> c_32(isNePal^#(activate(V)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^2))
We decompose the input problem according to the dependency graph
into the upper component
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P)))
, isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U82^#(tt(), V) -> c_32(isNePal^#(activate(V)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
and lower component
{ isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V))) }
Further, following extension rules are added to the lower
component.
{ U11^#(tt(), V) -> U12^#(isPalListKind(activate(V)), activate(V))
, U11^#(tt(), V) -> isPalListKind^#(activate(V))
, U12^#(tt(), V) -> isNeList^#(activate(V))
, isNeList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1))
, isNeList^#(n____(V1, V2)) ->
U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList^#(n____(V1, V2)) ->
U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U41^#(tt(), V1, V2) -> isPalListKind^#(activate(V1))
, U41^#(tt(), V1, V2) ->
U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U51^#(tt(), V1, V2) -> isPalListKind^#(activate(V1))
, U51^#(tt(), V1, V2) ->
U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21^#(tt(), V1, V2) -> isPalListKind^#(activate(V1))
, U21^#(tt(), V1, V2) ->
U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, U22^#(tt(), V1, V2) ->
U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, U23^#(tt(), V1, V2) ->
U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24^#(tt(), V1, V2) -> U25^#(isList(activate(V1)), activate(V2))
, U24^#(tt(), V1, V2) -> isList^#(activate(V1))
, U25^#(tt(), V2) -> isList^#(activate(V2))
, isList^#(V) -> U11^#(isPalListKind(activate(V)), activate(V))
, isList^#(V) -> isPalListKind^#(activate(V))
, isList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1))
, isList^#(n____(V1, V2)) ->
U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, U42^#(tt(), V1, V2) ->
U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, U43^#(tt(), V1, V2) ->
U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44^#(tt(), V1, V2) -> isList^#(activate(V1))
, U44^#(tt(), V1, V2) -> U45^#(isList(activate(V1)), activate(V2))
, U45^#(tt(), V2) -> isNeList^#(activate(V2))
, U52^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, U52^#(tt(), V1, V2) ->
U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, U53^#(tt(), V1, V2) ->
U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54^#(tt(), V1, V2) -> isNeList^#(activate(V1))
, U54^#(tt(), V1, V2) ->
U55^#(isNeList(activate(V1)), activate(V2))
, U55^#(tt(), V2) -> isList^#(activate(V2))
, U61^#(tt(), V) -> isPalListKind^#(activate(V))
, U71^#(tt(), I, P) -> isPalListKind^#(activate(I))
, U71^#(tt(), I, P) ->
U72^#(isPalListKind(activate(I)), activate(P))
, U72^#(tt(), P) -> U73^#(isPal(activate(P)), activate(P))
, U72^#(tt(), P) -> isPal^#(activate(P))
, U73^#(tt(), P) -> isPalListKind^#(activate(P))
, isPal^#(V) -> isPalListKind^#(activate(V))
, isPal^#(V) -> U81^#(isPalListKind(activate(V)), activate(V))
, U81^#(tt(), V) -> isPalListKind^#(activate(V))
, U81^#(tt(), V) -> U82^#(isPalListKind(activate(V)), activate(V))
, U82^#(tt(), V) -> isNePal^#(activate(V))
, isNePal^#(V) -> isPalListKind^#(activate(V))
, isNePal^#(V) -> U61^#(isPalListKind(activate(V)), activate(V)) }
TcT solves the upper component with certificate YES(O(1),O(n^1)).
Sub-proof:
----------
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^1)).
Strict DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P)))
, isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
Weak DPs:
{ U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^1))
We estimate the number of application of {9,18} by applications of
Pre({9,18}) = {8,23}. Here rules are labeled as follows:
DPs:
{ 1: U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 2: U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, 3: isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 4: isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 5: U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 6: U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 7: U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 8: U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 9: U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 10: isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 11: isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 12: U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 13: U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 14: U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, 15: U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 16: U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 17: U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, 18: U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, 19: U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, 20: U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P)))
, 21: isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 22: U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 23: isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 24: U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 25: U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, 26: U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 27: U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, 28: U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, 29: U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^1)).
Strict DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P)))
, isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
Weak DPs:
{ U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^1))
We estimate the number of application of {8,20} by applications of
Pre({8,20}) = {7,19}. Here rules are labeled as follows:
DPs:
{ 1: U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 2: U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, 3: isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 4: isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 5: U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 6: U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 7: U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 8: U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 9: isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 10: isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 11: U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 12: U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 13: U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, 14: U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 15: U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 16: U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, 17: U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, 18: U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P)))
, 19: isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 20: U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 21: isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 22: U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 23: U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 24: U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, 25: U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 26: U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, 27: U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, 28: U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, 29: U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^1)).
Strict DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P)))
, isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
Weak DPs:
{ U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^1))
We estimate the number of application of {7,16} by applications of
Pre({7,16}) = {9}. Here rules are labeled as follows:
DPs:
{ 1: U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 2: U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, 3: isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 4: isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 5: U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 6: U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 7: U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 8: isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 9: isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 10: U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 11: U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 12: U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, 13: U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 14: U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 15: U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, 16: U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, 17: U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P)))
, 18: isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 19: isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 20: U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 21: U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 22: U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 23: U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, 24: U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 25: U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, 26: U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, 27: U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, 28: U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 29: U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^1)).
Strict DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P)))
, isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
Weak DPs:
{ U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^1))
We estimate the number of application of {10} by applications of
Pre({10}) = {9}. Here rules are labeled as follows:
DPs:
{ 1: U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 2: U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, 3: isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 4: isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 5: U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 6: U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 7: isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 8: isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 9: U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 10: U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 11: U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, 12: U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 13: U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 14: U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, 15: U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P)))
, 16: isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 17: isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 18: U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 19: U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 20: U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 21: U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 22: U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, 23: U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 24: U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, 25: U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, 26: U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, 27: U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, 28: U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 29: U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^1)).
Strict DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P)))
, isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
Weak DPs:
{ U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^1))
We estimate the number of application of {9} by applications of
Pre({9}) = {5}. Here rules are labeled as follows:
DPs:
{ 1: U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 2: U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, 3: isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 4: isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 5: U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 6: U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 7: isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 8: isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 9: U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 10: U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, 11: U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 12: U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 13: U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, 14: U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P)))
, 15: isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 16: isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 17: U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 18: U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 19: U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 20: U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 21: U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, 22: U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 23: U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 24: U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, 25: U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, 26: U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, 27: U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, 28: U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 29: U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^1)).
Strict DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P)))
, isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
Weak DPs:
{ U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^1))
We estimate the number of application of {5} by applications of
Pre({5}) = {3}. Here rules are labeled as follows:
DPs:
{ 1: U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 2: U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, 3: isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 4: isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 5: U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 6: U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 7: isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 8: isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 9: U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, 10: U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 11: U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 12: U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, 13: U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P)))
, 14: isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 15: isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 16: U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 17: U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 18: U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 19: U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 20: U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, 21: U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 22: U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 23: U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 24: U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, 25: U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, 26: U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, 27: U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, 28: U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 29: U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^1)).
Strict DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P)))
, isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
Weak DPs:
{ U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^1))
We estimate the number of application of {3} by applications of
Pre({3}) = {2,8,11}. Here rules are labeled as follows:
DPs:
{ 1: U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 2: U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, 3: isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 4: isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 5: U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 6: isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 7: isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 8: U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, 9: U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 10: U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 11: U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, 12: U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P)))
, 13: isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 14: isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 15: U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 16: U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 17: U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 18: U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 19: U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 20: U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, 21: U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 22: U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 23: U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 24: U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, 25: U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, 26: U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, 27: U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, 28: U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 29: U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^1)).
Strict DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P)))
, isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
Weak DPs:
{ isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^1))
The following weak DPs constitute a sub-graph of the DG that is
closed under successors. The DPs are removed.
{ U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V))) }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^1)).
Strict DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P)))
, isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
Weak DPs:
{ isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^1))
Due to missing edges in the dependency-graph, the right-hand sides
of following rules could be simplified:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P)))
, isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^1)).
Strict DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_3(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U51^#(tt(), V1, V2) ->
c_4(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, isList^#(V) ->
c_5(U11^#(isPalListKind(activate(V)), activate(V)))
, isList^#(n____(V1, V2)) ->
c_6(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U45^#(tt(), V2) -> c_7(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_8(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U53^#(tt(), V1, V2) ->
c_9(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U54^#(tt(), V1, V2) ->
c_10(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U73^#(tt(), P) -> c_11()
, isPal^#(V) ->
c_12(U81^#(isPalListKind(activate(V)), activate(V)))
, isNePal^#(V) -> c_13() }
Weak DPs:
{ isNeList^#(n____(V1, V2)) ->
c_14(U41^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, U41^#(tt(), V1, V2) ->
c_15(U42^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, U21^#(tt(), V1, V2) ->
c_16(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, U22^#(tt(), V1, V2) ->
c_17(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U23^#(tt(), V1, V2) ->
c_18(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U24^#(tt(), V1, V2) ->
c_19(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_20(isList^#(activate(V2)))
, U42^#(tt(), V1, V2) ->
c_21(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U43^#(tt(), V1, V2) ->
c_22(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U44^#(tt(), V1, V2) ->
c_23(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U55^#(tt(), V2) -> c_24(isList^#(activate(V2)))
, U71^#(tt(), I, P) ->
c_25(U72^#(isPalListKind(activate(I)), activate(P)))
, U72^#(tt(), P) ->
c_26(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, U81^#(tt(), V) ->
c_27(U82^#(isPalListKind(activate(V)), activate(V)))
, U82^#(tt(), V) -> c_28(isNePal^#(activate(V))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^1))
We use the processor 'matrix interpretation of dimension 1' to
orient following rules strictly.
DPs:
{ 25: U71^#(tt(), I, P) ->
c_25(U72^#(isPalListKind(activate(I)), activate(P))) }
Sub-proof:
----------
The following argument positions are usable:
Uargs(c_1) = {1}, Uargs(c_2) = {1}, Uargs(c_3) = {1},
Uargs(c_4) = {1}, Uargs(c_5) = {1}, Uargs(c_6) = {1},
Uargs(c_7) = {1}, Uargs(c_8) = {1}, Uargs(c_9) = {1},
Uargs(c_10) = {1, 2}, Uargs(c_12) = {1}, Uargs(c_14) = {1},
Uargs(c_15) = {1}, Uargs(c_16) = {1}, Uargs(c_17) = {1},
Uargs(c_18) = {1}, Uargs(c_19) = {1, 2}, Uargs(c_20) = {1},
Uargs(c_21) = {1}, Uargs(c_22) = {1}, Uargs(c_23) = {1, 2},
Uargs(c_24) = {1}, Uargs(c_25) = {1}, Uargs(c_26) = {1, 2},
Uargs(c_27) = {1}, Uargs(c_28) = {1}
TcT has computed the following constructor-restricted matrix
interpretation. Note that the diagonal of the component-wise maxima
of interpretation-entries (of constructors) contains no more than 0
non-zero entries.
[__](x1, x2) = [0]
[nil] = [0]
[U11](x1, x2) = [0]
[tt] = [0]
[U12](x1, x2) = [0]
[isPalListKind](x1) = [0]
[activate](x1) = [1] x1 + [0]
[U13](x1) = [0]
[isNeList](x1) = [0]
[U21](x1, x2, x3) = [0]
[U22](x1, x2, x3) = [0]
[U23](x1, x2, x3) = [0]
[U24](x1, x2, x3) = [0]
[U25](x1, x2) = [0]
[isList](x1) = [0]
[U26](x1) = [0]
[U31](x1, x2) = [0]
[U32](x1, x2) = [0]
[U33](x1) = [0]
[isQid](x1) = [0]
[U41](x1, x2, x3) = [0]
[U42](x1, x2, x3) = [0]
[U43](x1, x2, x3) = [0]
[U44](x1, x2, x3) = [0]
[U45](x1, x2) = [0]
[U46](x1) = [0]
[U51](x1, x2, x3) = [0]
[U52](x1, x2, x3) = [0]
[U53](x1, x2, x3) = [0]
[U54](x1, x2, x3) = [0]
[U55](x1, x2) = [0]
[U56](x1) = [0]
[U61](x1, x2) = [0]
[U62](x1, x2) = [0]
[U63](x1) = [0]
[isPal](x1) = [0]
[U81](x1, x2) = [0]
[U82](x1, x2) = [0]
[U83](x1) = [0]
[isNePal](x1) = [0]
[U91](x1, x2) = [0]
[U92](x1) = [0]
[n__nil] = [0]
[n____](x1, x2) = [0]
[n__a] = [0]
[n__e] = [0]
[n__i] = [0]
[n__o] = [0]
[n__u] = [0]
[a] = [0]
[e] = [0]
[i] = [0]
[o] = [0]
[u] = [0]
[U11^#](x1, x2) = [0]
[U12^#](x1, x2) = [0]
[isPalListKind^#](x1) = [0]
[isNeList^#](x1) = [0]
[U41^#](x1, x2, x3) = [0]
[U51^#](x1, x2, x3) = [0]
[U21^#](x1, x2, x3) = [0]
[U22^#](x1, x2, x3) = [0]
[U23^#](x1, x2, x3) = [0]
[U24^#](x1, x2, x3) = [0]
[U25^#](x1, x2) = [0]
[isList^#](x1) = [0]
[U42^#](x1, x2, x3) = [0]
[U43^#](x1, x2, x3) = [0]
[U44^#](x1, x2, x3) = [0]
[U45^#](x1, x2) = [0]
[U52^#](x1, x2, x3) = [0]
[U53^#](x1, x2, x3) = [0]
[U54^#](x1, x2, x3) = [0]
[U55^#](x1, x2) = [0]
[U61^#](x1, x2) = [0]
[U71^#](x1, x2, x3) = [7] x2 + [7] x3 + [6]
[U72^#](x1, x2) = [4] x2 + [0]
[U73^#](x1, x2) = [0]
[isPal^#](x1) = [4] x1 + [0]
[U81^#](x1, x2) = [4] x2 + [0]
[U82^#](x1, x2) = [4] x2 + [0]
[isNePal^#](x1) = [0]
[c_1](x1, x2) = [0]
[c_2](x1) = [0]
[c_5](x1, x2) = [0]
[c_6](x1, x2) = [0]
[c_9](x1, x2) = [0]
[c_10](x1, x2) = [0]
[c_11](x1, x2) = [0]
[c_12](x1, x2) = [0]
[c_13](x1, x2) = [0]
[c_14](x1, x2) = [0]
[c_15](x1) = [0]
[c_16](x1, x2) = [0]
[c_17](x1, x2) = [0]
[c_18](x1, x2) = [0]
[c_19](x1, x2) = [0]
[c_20](x1, x2) = [0]
[c_21](x1) = [0]
[c_22](x1, x2) = [0]
[c_23](x1, x2) = [0]
[c_24](x1, x2) = [0]
[c_25](x1) = [0]
[c_26](x1) = [0]
[c_27](x1, x2) = [0]
[c_28](x1, x2) = [0]
[c_29](x1) = [0]
[c_30](x1, x2) = [0]
[c_31](x1, x2) = [0]
[c_32](x1) = [0]
[c_33](x1, x2) = [0]
[c] = [0]
[c_1](x1) = [4] x1 + [0]
[c_2](x1) = [4] x1 + [0]
[c_3](x1) = [2] x1 + [0]
[c_4](x1) = [1] x1 + [0]
[c_5](x1) = [1] x1 + [0]
[c_6](x1) = [1] x1 + [0]
[c_7](x1) = [4] x1 + [0]
[c_8](x1) = [3] x1 + [0]
[c_9](x1) = [4] x1 + [0]
[c_10](x1, x2) = [4] x1 + [4] x2 + [0]
[c_11] = [0]
[c_12](x1) = [1] x1 + [0]
[c_13] = [0]
[c_14](x1) = [1] x1 + [0]
[c_15](x1) = [1] x1 + [0]
[c_16](x1) = [1] x1 + [0]
[c_17](x1) = [1] x1 + [0]
[c_18](x1) = [1] x1 + [0]
[c_19](x1, x2) = [4] x1 + [1] x2 + [0]
[c_20](x1) = [4] x1 + [0]
[c_21](x1) = [1] x1 + [0]
[c_22](x1) = [1] x1 + [0]
[c_23](x1, x2) = [1] x1 + [1] x2 + [0]
[c_24](x1) = [4] x1 + [0]
[c_25](x1) = [1] x1 + [0]
[c_26](x1, x2) = [4] x1 + [1] x2 + [0]
[c_27](x1) = [1] x1 + [0]
[c_28](x1) = [4] x1 + [0]
The order satisfies the following ordering constraints:
[__(X1, X2)] = [0]
>= [0]
= [n____(X1, X2)]
[nil()] = [0]
>= [0]
= [n__nil()]
[U11(tt(), V)] = [0]
>= [0]
= [U12(isPalListKind(activate(V)), activate(V))]
[U12(tt(), V)] = [0]
>= [0]
= [U13(isNeList(activate(V)))]
[isPalListKind(n__nil())] = [0]
>= [0]
= [tt()]
[isPalListKind(n____(V1, V2))] = [0]
>= [0]
= [U91(isPalListKind(activate(V1)), activate(V2))]
[isPalListKind(n__a())] = [0]
>= [0]
= [tt()]
[isPalListKind(n__e())] = [0]
>= [0]
= [tt()]
[isPalListKind(n__i())] = [0]
>= [0]
= [tt()]
[isPalListKind(n__o())] = [0]
>= [0]
= [tt()]
[isPalListKind(n__u())] = [0]
>= [0]
= [tt()]
[activate(X)] = [1] X + [0]
>= [1] X + [0]
= [X]
[activate(n__nil())] = [0]
>= [0]
= [nil()]
[activate(n____(X1, X2))] = [0]
>= [0]
= [__(X1, X2)]
[activate(n__a())] = [0]
>= [0]
= [a()]
[activate(n__e())] = [0]
>= [0]
= [e()]
[activate(n__i())] = [0]
>= [0]
= [i()]
[activate(n__o())] = [0]
>= [0]
= [o()]
[activate(n__u())] = [0]
>= [0]
= [u()]
[U13(tt())] = [0]
>= [0]
= [tt()]
[isNeList(V)] = [0]
>= [0]
= [U31(isPalListKind(activate(V)), activate(V))]
[isNeList(n____(V1, V2))] = [0]
>= [0]
= [U41(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[isNeList(n____(V1, V2))] = [0]
>= [0]
= [U51(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U21(tt(), V1, V2)] = [0]
>= [0]
= [U22(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U22(tt(), V1, V2)] = [0]
>= [0]
= [U23(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U23(tt(), V1, V2)] = [0]
>= [0]
= [U24(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U24(tt(), V1, V2)] = [0]
>= [0]
= [U25(isList(activate(V1)), activate(V2))]
[U25(tt(), V2)] = [0]
>= [0]
= [U26(isList(activate(V2)))]
[isList(V)] = [0]
>= [0]
= [U11(isPalListKind(activate(V)), activate(V))]
[isList(n__nil())] = [0]
>= [0]
= [tt()]
[isList(n____(V1, V2))] = [0]
>= [0]
= [U21(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U26(tt())] = [0]
>= [0]
= [tt()]
[U31(tt(), V)] = [0]
>= [0]
= [U32(isPalListKind(activate(V)), activate(V))]
[U32(tt(), V)] = [0]
>= [0]
= [U33(isQid(activate(V)))]
[U33(tt())] = [0]
>= [0]
= [tt()]
[isQid(n__a())] = [0]
>= [0]
= [tt()]
[isQid(n__e())] = [0]
>= [0]
= [tt()]
[isQid(n__i())] = [0]
>= [0]
= [tt()]
[isQid(n__o())] = [0]
>= [0]
= [tt()]
[isQid(n__u())] = [0]
>= [0]
= [tt()]
[U41(tt(), V1, V2)] = [0]
>= [0]
= [U42(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U42(tt(), V1, V2)] = [0]
>= [0]
= [U43(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U43(tt(), V1, V2)] = [0]
>= [0]
= [U44(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U44(tt(), V1, V2)] = [0]
>= [0]
= [U45(isList(activate(V1)), activate(V2))]
[U45(tt(), V2)] = [0]
>= [0]
= [U46(isNeList(activate(V2)))]
[U46(tt())] = [0]
>= [0]
= [tt()]
[U51(tt(), V1, V2)] = [0]
>= [0]
= [U52(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U52(tt(), V1, V2)] = [0]
>= [0]
= [U53(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U53(tt(), V1, V2)] = [0]
>= [0]
= [U54(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U54(tt(), V1, V2)] = [0]
>= [0]
= [U55(isNeList(activate(V1)), activate(V2))]
[U55(tt(), V2)] = [0]
>= [0]
= [U56(isList(activate(V2)))]
[U56(tt())] = [0]
>= [0]
= [tt()]
[U61(tt(), V)] = [0]
>= [0]
= [U62(isPalListKind(activate(V)), activate(V))]
[U62(tt(), V)] = [0]
>= [0]
= [U63(isQid(activate(V)))]
[U63(tt())] = [0]
>= [0]
= [tt()]
[isPal(V)] = [0]
>= [0]
= [U81(isPalListKind(activate(V)), activate(V))]
[isPal(n__nil())] = [0]
>= [0]
= [tt()]
[U81(tt(), V)] = [0]
>= [0]
= [U82(isPalListKind(activate(V)), activate(V))]
[U82(tt(), V)] = [0]
>= [0]
= [U83(isNePal(activate(V)))]
[U83(tt())] = [0]
>= [0]
= [tt()]
[isNePal(V)] = [0]
>= [0]
= [U61(isPalListKind(activate(V)), activate(V))]
[U91(tt(), V2)] = [0]
>= [0]
= [U92(isPalListKind(activate(V2)))]
[U92(tt())] = [0]
>= [0]
= [tt()]
[a()] = [0]
>= [0]
= [n__a()]
[e()] = [0]
>= [0]
= [n__e()]
[i()] = [0]
>= [0]
= [n__i()]
[o()] = [0]
>= [0]
= [n__o()]
[u()] = [0]
>= [0]
= [n__u()]
[U11^#(tt(), V)] = [0]
>= [0]
= [c_1(U12^#(isPalListKind(activate(V)), activate(V)))]
[U12^#(tt(), V)] = [0]
>= [0]
= [c_2(isNeList^#(activate(V)))]
[isNeList^#(n____(V1, V2))] = [0]
>= [0]
= [c_3(U51^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))]
[isNeList^#(n____(V1, V2))] = [0]
>= [0]
= [c_14(U41^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))]
[U41^#(tt(), V1, V2)] = [0]
>= [0]
= [c_15(U42^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))]
[U51^#(tt(), V1, V2)] = [0]
>= [0]
= [c_4(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))]
[U21^#(tt(), V1, V2)] = [0]
>= [0]
= [c_16(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))]
[U22^#(tt(), V1, V2)] = [0]
>= [0]
= [c_17(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))]
[U23^#(tt(), V1, V2)] = [0]
>= [0]
= [c_18(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))]
[U24^#(tt(), V1, V2)] = [0]
>= [0]
= [c_19(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))]
[U25^#(tt(), V2)] = [0]
>= [0]
= [c_20(isList^#(activate(V2)))]
[isList^#(V)] = [0]
>= [0]
= [c_5(U11^#(isPalListKind(activate(V)), activate(V)))]
[isList^#(n____(V1, V2))] = [0]
>= [0]
= [c_6(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))]
[U42^#(tt(), V1, V2)] = [0]
>= [0]
= [c_21(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))]
[U43^#(tt(), V1, V2)] = [0]
>= [0]
= [c_22(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))]
[U44^#(tt(), V1, V2)] = [0]
>= [0]
= [c_23(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))]
[U45^#(tt(), V2)] = [0]
>= [0]
= [c_7(isNeList^#(activate(V2)))]
[U52^#(tt(), V1, V2)] = [0]
>= [0]
= [c_8(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))]
[U53^#(tt(), V1, V2)] = [0]
>= [0]
= [c_9(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))]
[U54^#(tt(), V1, V2)] = [0]
>= [0]
= [c_10(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))]
[U55^#(tt(), V2)] = [0]
>= [0]
= [c_24(isList^#(activate(V2)))]
[U71^#(tt(), I, P)] = [7] I + [7] P + [6]
> [4] P + [0]
= [c_25(U72^#(isPalListKind(activate(I)), activate(P)))]
[U72^#(tt(), P)] = [4] P + [0]
>= [4] P + [0]
= [c_26(U73^#(isPal(activate(P)), activate(P)),
isPal^#(activate(P)))]
[U73^#(tt(), P)] = [0]
>= [0]
= [c_11()]
[isPal^#(V)] = [4] V + [0]
>= [4] V + [0]
= [c_12(U81^#(isPalListKind(activate(V)), activate(V)))]
[U81^#(tt(), V)] = [4] V + [0]
>= [4] V + [0]
= [c_27(U82^#(isPalListKind(activate(V)), activate(V)))]
[U82^#(tt(), V)] = [4] V + [0]
>= [0]
= [c_28(isNePal^#(activate(V)))]
[isNePal^#(V)] = [0]
>= [0]
= [c_13()]
We return to the main proof. Consider the set of all dependency
pairs
:
{ 1: U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)))
, 2: U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, 3: isNeList^#(n____(V1, V2)) ->
c_3(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, 4: U51^#(tt(), V1, V2) ->
c_4(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, 5: isList^#(V) ->
c_5(U11^#(isPalListKind(activate(V)), activate(V)))
, 6: isList^#(n____(V1, V2)) ->
c_6(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, 7: U45^#(tt(), V2) -> c_7(isNeList^#(activate(V2)))
, 8: U52^#(tt(), V1, V2) ->
c_8(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, 9: U53^#(tt(), V1, V2) ->
c_9(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, 10: U54^#(tt(), V1, V2) ->
c_10(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, 11: U73^#(tt(), P) -> c_11()
, 12: isPal^#(V) ->
c_12(U81^#(isPalListKind(activate(V)), activate(V)))
, 13: isNePal^#(V) -> c_13()
, 14: isNeList^#(n____(V1, V2)) ->
c_14(U41^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, 15: U41^#(tt(), V1, V2) ->
c_15(U42^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, 16: U21^#(tt(), V1, V2) ->
c_16(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, 17: U22^#(tt(), V1, V2) ->
c_17(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, 18: U23^#(tt(), V1, V2) ->
c_18(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, 19: U24^#(tt(), V1, V2) ->
c_19(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 20: U25^#(tt(), V2) -> c_20(isList^#(activate(V2)))
, 21: U42^#(tt(), V1, V2) ->
c_21(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, 22: U43^#(tt(), V1, V2) ->
c_22(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, 23: U44^#(tt(), V1, V2) ->
c_23(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 24: U55^#(tt(), V2) -> c_24(isList^#(activate(V2)))
, 25: U71^#(tt(), I, P) ->
c_25(U72^#(isPalListKind(activate(I)), activate(P)))
, 26: U72^#(tt(), P) ->
c_26(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, 27: U81^#(tt(), V) ->
c_27(U82^#(isPalListKind(activate(V)), activate(V)))
, 28: U82^#(tt(), V) -> c_28(isNePal^#(activate(V))) }
Processor 'matrix interpretation of dimension 1' induces the
complexity certificate YES(?,O(1)) on application of dependency
pairs {25}. These cover all (indirect) predecessors of dependency
pairs {11,12,13,25,26,27,28}, their number of application is
equally bounded. The dependency pairs are shifted into the weak
component.
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^1)).
Strict DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_3(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U51^#(tt(), V1, V2) ->
c_4(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, isList^#(V) ->
c_5(U11^#(isPalListKind(activate(V)), activate(V)))
, isList^#(n____(V1, V2)) ->
c_6(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U45^#(tt(), V2) -> c_7(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_8(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U53^#(tt(), V1, V2) ->
c_9(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U54^#(tt(), V1, V2) ->
c_10(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1))) }
Weak DPs:
{ isNeList^#(n____(V1, V2)) ->
c_14(U41^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, U41^#(tt(), V1, V2) ->
c_15(U42^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, U21^#(tt(), V1, V2) ->
c_16(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, U22^#(tt(), V1, V2) ->
c_17(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U23^#(tt(), V1, V2) ->
c_18(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U24^#(tt(), V1, V2) ->
c_19(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_20(isList^#(activate(V2)))
, U42^#(tt(), V1, V2) ->
c_21(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U43^#(tt(), V1, V2) ->
c_22(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U44^#(tt(), V1, V2) ->
c_23(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U55^#(tt(), V2) -> c_24(isList^#(activate(V2)))
, U71^#(tt(), I, P) ->
c_25(U72^#(isPalListKind(activate(I)), activate(P)))
, U72^#(tt(), P) ->
c_26(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, U73^#(tt(), P) -> c_11()
, isPal^#(V) ->
c_12(U81^#(isPalListKind(activate(V)), activate(V)))
, U81^#(tt(), V) ->
c_27(U82^#(isPalListKind(activate(V)), activate(V)))
, U82^#(tt(), V) -> c_28(isNePal^#(activate(V)))
, isNePal^#(V) -> c_13() }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^1))
The following weak DPs constitute a sub-graph of the DG that is
closed under successors. The DPs are removed.
{ U71^#(tt(), I, P) ->
c_25(U72^#(isPalListKind(activate(I)), activate(P)))
, U72^#(tt(), P) ->
c_26(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, U73^#(tt(), P) -> c_11()
, isPal^#(V) ->
c_12(U81^#(isPalListKind(activate(V)), activate(V)))
, U81^#(tt(), V) ->
c_27(U82^#(isPalListKind(activate(V)), activate(V)))
, U82^#(tt(), V) -> c_28(isNePal^#(activate(V)))
, isNePal^#(V) -> c_13() }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^1)).
Strict DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_3(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U51^#(tt(), V1, V2) ->
c_4(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, isList^#(V) ->
c_5(U11^#(isPalListKind(activate(V)), activate(V)))
, isList^#(n____(V1, V2)) ->
c_6(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U45^#(tt(), V2) -> c_7(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_8(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U53^#(tt(), V1, V2) ->
c_9(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U54^#(tt(), V1, V2) ->
c_10(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1))) }
Weak DPs:
{ isNeList^#(n____(V1, V2)) ->
c_14(U41^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, U41^#(tt(), V1, V2) ->
c_15(U42^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, U21^#(tt(), V1, V2) ->
c_16(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, U22^#(tt(), V1, V2) ->
c_17(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U23^#(tt(), V1, V2) ->
c_18(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U24^#(tt(), V1, V2) ->
c_19(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_20(isList^#(activate(V2)))
, U42^#(tt(), V1, V2) ->
c_21(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U43^#(tt(), V1, V2) ->
c_22(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U44^#(tt(), V1, V2) ->
c_23(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U55^#(tt(), V2) -> c_24(isList^#(activate(V2))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^1))
We replace rewrite rules by usable rules:
Weak Usable Rules:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^1)).
Strict DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_3(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U51^#(tt(), V1, V2) ->
c_4(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, isList^#(V) ->
c_5(U11^#(isPalListKind(activate(V)), activate(V)))
, isList^#(n____(V1, V2)) ->
c_6(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U45^#(tt(), V2) -> c_7(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_8(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U53^#(tt(), V1, V2) ->
c_9(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U54^#(tt(), V1, V2) ->
c_10(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1))) }
Weak DPs:
{ isNeList^#(n____(V1, V2)) ->
c_14(U41^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, U41^#(tt(), V1, V2) ->
c_15(U42^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, U21^#(tt(), V1, V2) ->
c_16(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, U22^#(tt(), V1, V2) ->
c_17(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U23^#(tt(), V1, V2) ->
c_18(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U24^#(tt(), V1, V2) ->
c_19(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_20(isList^#(activate(V2)))
, U42^#(tt(), V1, V2) ->
c_21(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U43^#(tt(), V1, V2) ->
c_22(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U44^#(tt(), V1, V2) ->
c_23(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U55^#(tt(), V2) -> c_24(isList^#(activate(V2))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^1))
We use the processor 'matrix interpretation of dimension 1' to
orient following rules strictly.
DPs:
{ 1: U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)))
, 3: isNeList^#(n____(V1, V2)) ->
c_3(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, 5: isList^#(V) ->
c_5(U11^#(isPalListKind(activate(V)), activate(V)))
, 6: isList^#(n____(V1, V2)) ->
c_6(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, 11: isNeList^#(n____(V1, V2)) ->
c_14(U41^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, 13: U21^#(tt(), V1, V2) ->
c_16(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2))) }
Sub-proof:
----------
The following argument positions are usable:
Uargs(c_1) = {1}, Uargs(c_2) = {1}, Uargs(c_3) = {1},
Uargs(c_4) = {1}, Uargs(c_5) = {1}, Uargs(c_6) = {1},
Uargs(c_7) = {1}, Uargs(c_8) = {1}, Uargs(c_9) = {1},
Uargs(c_10) = {1, 2}, Uargs(c_14) = {1}, Uargs(c_15) = {1},
Uargs(c_16) = {1}, Uargs(c_17) = {1}, Uargs(c_18) = {1},
Uargs(c_19) = {1, 2}, Uargs(c_20) = {1}, Uargs(c_21) = {1},
Uargs(c_22) = {1}, Uargs(c_23) = {1, 2}, Uargs(c_24) = {1}
TcT has computed the following constructor-based matrix
interpretation satisfying not(EDA).
[__](x1, x2) = [1] x1 + [1] x2 + [1]
[nil] = [3]
[U11](x1, x2) = [1] x1 + [0]
[tt] = [1]
[U12](x1, x2) = [1]
[isPalListKind](x1) = [1]
[activate](x1) = [1] x1 + [0]
[U13](x1) = [1]
[isNeList](x1) = [0]
[U21](x1, x2, x3) = [1] x1 + [0]
[U22](x1, x2, x3) = [1] x1 + [0]
[U23](x1, x2, x3) = [1]
[U24](x1, x2, x3) = [1]
[U25](x1, x2) = [1]
[isList](x1) = [1]
[U26](x1) = [1]
[U31](x1, x2) = [0]
[U32](x1, x2) = [0]
[U33](x1) = [0]
[isQid](x1) = [0]
[U41](x1, x2, x3) = [0]
[U42](x1, x2, x3) = [0]
[U43](x1, x2, x3) = [0]
[U44](x1, x2, x3) = [0]
[U45](x1, x2) = [0]
[U46](x1) = [0]
[U51](x1, x2, x3) = [0]
[U52](x1, x2, x3) = [0]
[U53](x1, x2, x3) = [0]
[U54](x1, x2, x3) = [0]
[U55](x1, x2) = [0]
[U56](x1) = [0]
[U61](x1, x2) = [0]
[U62](x1, x2) = [0]
[U63](x1) = [0]
[isPal](x1) = [0]
[U81](x1, x2) = [0]
[U82](x1, x2) = [0]
[U83](x1) = [0]
[isNePal](x1) = [0]
[U91](x1, x2) = [1]
[U92](x1) = [1]
[n__nil] = [3]
[n____](x1, x2) = [1] x1 + [1] x2 + [1]
[n__a] = [0]
[n__e] = [0]
[n__i] = [0]
[n__o] = [0]
[n__u] = [0]
[a] = [0]
[e] = [0]
[i] = [0]
[o] = [0]
[u] = [0]
[U11^#](x1, x2) = [7] x2 + [1]
[U12^#](x1, x2) = [7] x2 + [0]
[isPalListKind^#](x1) = [0]
[isNeList^#](x1) = [7] x1 + [0]
[U41^#](x1, x2, x3) = [1] x1 + [7] x2 + [7] x3 + [4]
[U51^#](x1, x2, x3) = [4] x1 + [7] x2 + [7] x3 + [1]
[U21^#](x1, x2, x3) = [7] x1 + [7] x2 + [7] x3 + [4]
[U22^#](x1, x2, x3) = [3] x1 + [7] x2 + [7] x3 + [7]
[U23^#](x1, x2, x3) = [3] x1 + [7] x2 + [7] x3 + [7]
[U24^#](x1, x2, x3) = [4] x1 + [7] x2 + [7] x3 + [6]
[U25^#](x1, x2) = [3] x1 + [7] x2 + [2]
[isList^#](x1) = [7] x1 + [5]
[U42^#](x1, x2, x3) = [7] x2 + [7] x3 + [5]
[U43^#](x1, x2, x3) = [7] x2 + [7] x3 + [5]
[U44^#](x1, x2, x3) = [7] x2 + [7] x3 + [5]
[U45^#](x1, x2) = [7] x2 + [0]
[U52^#](x1, x2, x3) = [7] x2 + [7] x3 + [5]
[U53^#](x1, x2, x3) = [7] x2 + [7] x3 + [5]
[U54^#](x1, x2, x3) = [7] x2 + [7] x3 + [5]
[U55^#](x1, x2) = [7] x2 + [5]
[U61^#](x1, x2) = [0]
[U71^#](x1, x2, x3) = [0]
[U72^#](x1, x2) = [0]
[U73^#](x1, x2) = [0]
[isPal^#](x1) = [0]
[U81^#](x1, x2) = [0]
[U82^#](x1, x2) = [0]
[isNePal^#](x1) = [0]
[c_1](x1, x2) = [0]
[c_2](x1) = [0]
[c_5](x1, x2) = [0]
[c_6](x1, x2) = [0]
[c_9](x1, x2) = [0]
[c_10](x1, x2) = [0]
[c_11](x1, x2) = [0]
[c_12](x1, x2) = [0]
[c_13](x1, x2) = [0]
[c_14](x1, x2) = [0]
[c_15](x1) = [0]
[c_16](x1, x2) = [0]
[c_17](x1, x2) = [0]
[c_18](x1, x2) = [0]
[c_19](x1, x2) = [0]
[c_20](x1, x2) = [0]
[c_21](x1) = [0]
[c_22](x1, x2) = [0]
[c_23](x1, x2) = [0]
[c_24](x1, x2) = [0]
[c_25](x1) = [0]
[c_26](x1) = [0]
[c_27](x1, x2) = [0]
[c_28](x1, x2) = [0]
[c_29](x1) = [0]
[c_30](x1, x2) = [0]
[c_31](x1, x2) = [0]
[c_32](x1) = [0]
[c_33](x1, x2) = [0]
[c] = [0]
[c_1](x1) = [1] x1 + [0]
[c_2](x1) = [1] x1 + [0]
[c_3](x1) = [1] x1 + [1]
[c_4](x1) = [1] x1 + [0]
[c_5](x1) = [1] x1 + [0]
[c_6](x1) = [1] x1 + [0]
[c_7](x1) = [1] x1 + [0]
[c_8](x1) = [1] x1 + [0]
[c_9](x1) = [1] x1 + [0]
[c_10](x1, x2) = [1] x1 + [1] x2 + [0]
[c_11] = [0]
[c_12](x1) = [0]
[c_13] = [0]
[c_14](x1) = [1] x1 + [1]
[c_15](x1) = [1] x1 + [0]
[c_16](x1) = [1] x1 + [0]
[c_17](x1) = [1] x1 + [0]
[c_18](x1) = [1] x1 + [0]
[c_19](x1, x2) = [1] x1 + [1] x2 + [0]
[c_20](x1) = [1] x1 + [0]
[c_21](x1) = [1] x1 + [0]
[c_22](x1) = [1] x1 + [0]
[c_23](x1, x2) = [1] x1 + [1] x2 + [0]
[c_24](x1) = [1] x1 + [0]
[c_25](x1) = [0]
[c_26](x1, x2) = [0]
[c_27](x1) = [0]
[c_28](x1) = [0]
The order satisfies the following ordering constraints:
[__(X1, X2)] = [1] X1 + [1] X2 + [1]
>= [1] X1 + [1] X2 + [1]
= [n____(X1, X2)]
[nil()] = [3]
>= [3]
= [n__nil()]
[U11(tt(), V)] = [1]
>= [1]
= [U12(isPalListKind(activate(V)), activate(V))]
[U12(tt(), V)] = [1]
>= [1]
= [U13(isNeList(activate(V)))]
[isPalListKind(n__nil())] = [1]
>= [1]
= [tt()]
[isPalListKind(n____(V1, V2))] = [1]
>= [1]
= [U91(isPalListKind(activate(V1)), activate(V2))]
[isPalListKind(n__a())] = [1]
>= [1]
= [tt()]
[isPalListKind(n__e())] = [1]
>= [1]
= [tt()]
[isPalListKind(n__i())] = [1]
>= [1]
= [tt()]
[isPalListKind(n__o())] = [1]
>= [1]
= [tt()]
[isPalListKind(n__u())] = [1]
>= [1]
= [tt()]
[activate(X)] = [1] X + [0]
>= [1] X + [0]
= [X]
[activate(n__nil())] = [3]
>= [3]
= [nil()]
[activate(n____(X1, X2))] = [1] X1 + [1] X2 + [1]
>= [1] X1 + [1] X2 + [1]
= [__(X1, X2)]
[activate(n__a())] = [0]
>= [0]
= [a()]
[activate(n__e())] = [0]
>= [0]
= [e()]
[activate(n__i())] = [0]
>= [0]
= [i()]
[activate(n__o())] = [0]
>= [0]
= [o()]
[activate(n__u())] = [0]
>= [0]
= [u()]
[U13(tt())] = [1]
>= [1]
= [tt()]
[isNeList(V)] = [0]
>= [0]
= [U31(isPalListKind(activate(V)), activate(V))]
[isNeList(n____(V1, V2))] = [0]
>= [0]
= [U41(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[isNeList(n____(V1, V2))] = [0]
>= [0]
= [U51(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U21(tt(), V1, V2)] = [1]
>= [1]
= [U22(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U22(tt(), V1, V2)] = [1]
>= [1]
= [U23(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U23(tt(), V1, V2)] = [1]
>= [1]
= [U24(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U24(tt(), V1, V2)] = [1]
>= [1]
= [U25(isList(activate(V1)), activate(V2))]
[U25(tt(), V2)] = [1]
>= [1]
= [U26(isList(activate(V2)))]
[isList(V)] = [1]
>= [1]
= [U11(isPalListKind(activate(V)), activate(V))]
[isList(n__nil())] = [1]
>= [1]
= [tt()]
[isList(n____(V1, V2))] = [1]
>= [1]
= [U21(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U26(tt())] = [1]
>= [1]
= [tt()]
[U31(tt(), V)] = [0]
>= [0]
= [U32(isPalListKind(activate(V)), activate(V))]
[U32(tt(), V)] = [0]
>= [0]
= [U33(isQid(activate(V)))]
[U33(tt())] = [0]
? [1]
= [tt()]
[isQid(n__a())] = [0]
? [1]
= [tt()]
[isQid(n__e())] = [0]
? [1]
= [tt()]
[isQid(n__i())] = [0]
? [1]
= [tt()]
[isQid(n__o())] = [0]
? [1]
= [tt()]
[isQid(n__u())] = [0]
? [1]
= [tt()]
[U41(tt(), V1, V2)] = [0]
>= [0]
= [U42(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U42(tt(), V1, V2)] = [0]
>= [0]
= [U43(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U43(tt(), V1, V2)] = [0]
>= [0]
= [U44(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U44(tt(), V1, V2)] = [0]
>= [0]
= [U45(isList(activate(V1)), activate(V2))]
[U45(tt(), V2)] = [0]
>= [0]
= [U46(isNeList(activate(V2)))]
[U46(tt())] = [0]
? [1]
= [tt()]
[U51(tt(), V1, V2)] = [0]
>= [0]
= [U52(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U52(tt(), V1, V2)] = [0]
>= [0]
= [U53(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U53(tt(), V1, V2)] = [0]
>= [0]
= [U54(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U54(tt(), V1, V2)] = [0]
>= [0]
= [U55(isNeList(activate(V1)), activate(V2))]
[U55(tt(), V2)] = [0]
>= [0]
= [U56(isList(activate(V2)))]
[U56(tt())] = [0]
? [1]
= [tt()]
[U91(tt(), V2)] = [1]
>= [1]
= [U92(isPalListKind(activate(V2)))]
[U92(tt())] = [1]
>= [1]
= [tt()]
[a()] = [0]
>= [0]
= [n__a()]
[e()] = [0]
>= [0]
= [n__e()]
[i()] = [0]
>= [0]
= [n__i()]
[o()] = [0]
>= [0]
= [n__o()]
[u()] = [0]
>= [0]
= [n__u()]
[U11^#(tt(), V)] = [7] V + [1]
> [7] V + [0]
= [c_1(U12^#(isPalListKind(activate(V)), activate(V)))]
[U12^#(tt(), V)] = [7] V + [0]
>= [7] V + [0]
= [c_2(isNeList^#(activate(V)))]
[isNeList^#(n____(V1, V2))] = [7] V1 + [7] V2 + [7]
> [7] V1 + [7] V2 + [6]
= [c_3(U51^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))]
[isNeList^#(n____(V1, V2))] = [7] V1 + [7] V2 + [7]
> [7] V1 + [7] V2 + [6]
= [c_14(U41^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))]
[U41^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [5]
>= [7] V1 + [7] V2 + [5]
= [c_15(U42^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))]
[U51^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [5]
>= [7] V1 + [7] V2 + [5]
= [c_4(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))]
[U21^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [11]
> [7] V1 + [7] V2 + [10]
= [c_16(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))]
[U22^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [10]
>= [7] V1 + [7] V2 + [10]
= [c_17(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))]
[U23^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [10]
>= [7] V1 + [7] V2 + [10]
= [c_18(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))]
[U24^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [10]
>= [7] V1 + [7] V2 + [10]
= [c_19(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))]
[U25^#(tt(), V2)] = [7] V2 + [5]
>= [7] V2 + [5]
= [c_20(isList^#(activate(V2)))]
[isList^#(V)] = [7] V + [5]
> [7] V + [1]
= [c_5(U11^#(isPalListKind(activate(V)), activate(V)))]
[isList^#(n____(V1, V2))] = [7] V1 + [7] V2 + [12]
> [7] V1 + [7] V2 + [11]
= [c_6(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))]
[U42^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [5]
>= [7] V1 + [7] V2 + [5]
= [c_21(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))]
[U43^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [5]
>= [7] V1 + [7] V2 + [5]
= [c_22(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))]
[U44^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [5]
>= [7] V1 + [7] V2 + [5]
= [c_23(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))]
[U45^#(tt(), V2)] = [7] V2 + [0]
>= [7] V2 + [0]
= [c_7(isNeList^#(activate(V2)))]
[U52^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [5]
>= [7] V1 + [7] V2 + [5]
= [c_8(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))]
[U53^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [5]
>= [7] V1 + [7] V2 + [5]
= [c_9(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))]
[U54^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [5]
>= [7] V1 + [7] V2 + [5]
= [c_10(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))]
[U55^#(tt(), V2)] = [7] V2 + [5]
>= [7] V2 + [5]
= [c_24(isList^#(activate(V2)))]
We return to the main proof. Consider the set of all dependency
pairs
:
{ 1: U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)))
, 2: U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, 3: isNeList^#(n____(V1, V2)) ->
c_3(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, 4: U51^#(tt(), V1, V2) ->
c_4(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, 5: isList^#(V) ->
c_5(U11^#(isPalListKind(activate(V)), activate(V)))
, 6: isList^#(n____(V1, V2)) ->
c_6(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, 7: U45^#(tt(), V2) -> c_7(isNeList^#(activate(V2)))
, 8: U52^#(tt(), V1, V2) ->
c_8(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, 9: U53^#(tt(), V1, V2) ->
c_9(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, 10: U54^#(tt(), V1, V2) ->
c_10(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, 11: isNeList^#(n____(V1, V2)) ->
c_14(U41^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, 12: U41^#(tt(), V1, V2) ->
c_15(U42^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, 13: U21^#(tt(), V1, V2) ->
c_16(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, 14: U22^#(tt(), V1, V2) ->
c_17(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, 15: U23^#(tt(), V1, V2) ->
c_18(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, 16: U24^#(tt(), V1, V2) ->
c_19(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 17: U25^#(tt(), V2) -> c_20(isList^#(activate(V2)))
, 18: U42^#(tt(), V1, V2) ->
c_21(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, 19: U43^#(tt(), V1, V2) ->
c_22(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, 20: U44^#(tt(), V1, V2) ->
c_23(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 21: U55^#(tt(), V2) -> c_24(isList^#(activate(V2))) }
Processor 'matrix interpretation of dimension 1' induces the
complexity certificate YES(?,O(n^1)) on application of dependency
pairs {1,3,5,6,11,13}. These cover all (indirect) predecessors of
dependency pairs
{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21}, their
number of application is equally bounded. The dependency pairs are
shifted into the weak component.
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Weak DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_3(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, isNeList^#(n____(V1, V2)) ->
c_14(U41^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, U41^#(tt(), V1, V2) ->
c_15(U42^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, U51^#(tt(), V1, V2) ->
c_4(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U21^#(tt(), V1, V2) ->
c_16(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, U22^#(tt(), V1, V2) ->
c_17(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U23^#(tt(), V1, V2) ->
c_18(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U24^#(tt(), V1, V2) ->
c_19(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_20(isList^#(activate(V2)))
, isList^#(V) ->
c_5(U11^#(isPalListKind(activate(V)), activate(V)))
, isList^#(n____(V1, V2)) ->
c_6(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U42^#(tt(), V1, V2) ->
c_21(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U43^#(tt(), V1, V2) ->
c_22(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U44^#(tt(), V1, V2) ->
c_23(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_7(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_8(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U53^#(tt(), V1, V2) ->
c_9(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U54^#(tt(), V1, V2) ->
c_10(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_24(isList^#(activate(V2))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
The following weak DPs constitute a sub-graph of the DG that is
closed under successors. The DPs are removed.
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_3(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, isNeList^#(n____(V1, V2)) ->
c_14(U41^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, U41^#(tt(), V1, V2) ->
c_15(U42^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, U51^#(tt(), V1, V2) ->
c_4(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U21^#(tt(), V1, V2) ->
c_16(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, U22^#(tt(), V1, V2) ->
c_17(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U23^#(tt(), V1, V2) ->
c_18(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U24^#(tt(), V1, V2) ->
c_19(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_20(isList^#(activate(V2)))
, isList^#(V) ->
c_5(U11^#(isPalListKind(activate(V)), activate(V)))
, isList^#(n____(V1, V2)) ->
c_6(U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U42^#(tt(), V1, V2) ->
c_21(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U43^#(tt(), V1, V2) ->
c_22(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U44^#(tt(), V1, V2) ->
c_23(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_7(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_8(U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U53^#(tt(), V1, V2) ->
c_9(U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U54^#(tt(), V1, V2) ->
c_10(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_24(isList^#(activate(V2))) }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
No rule is usable, rules are removed from the input problem.
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Rules: Empty
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
Empty rules are trivially bounded
We return to the main proof.
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^1)).
Strict DPs:
{ isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2))) }
Weak DPs:
{ U11^#(tt(), V) -> U12^#(isPalListKind(activate(V)), activate(V))
, U11^#(tt(), V) -> isPalListKind^#(activate(V))
, U12^#(tt(), V) -> isNeList^#(activate(V))
, isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNeList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1))
, isNeList^#(n____(V1, V2)) ->
U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList^#(n____(V1, V2)) ->
U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, U41^#(tt(), V1, V2) -> isPalListKind^#(activate(V1))
, U41^#(tt(), V1, V2) ->
U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U51^#(tt(), V1, V2) -> isPalListKind^#(activate(V1))
, U51^#(tt(), V1, V2) ->
U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21^#(tt(), V1, V2) -> isPalListKind^#(activate(V1))
, U21^#(tt(), V1, V2) ->
U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, U22^#(tt(), V1, V2) ->
U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, U23^#(tt(), V1, V2) ->
U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24^#(tt(), V1, V2) -> U25^#(isList(activate(V1)), activate(V2))
, U24^#(tt(), V1, V2) -> isList^#(activate(V1))
, U25^#(tt(), V2) -> isList^#(activate(V2))
, isList^#(V) -> U11^#(isPalListKind(activate(V)), activate(V))
, isList^#(V) -> isPalListKind^#(activate(V))
, isList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1))
, isList^#(n____(V1, V2)) ->
U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, U42^#(tt(), V1, V2) ->
U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, U43^#(tt(), V1, V2) ->
U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44^#(tt(), V1, V2) -> isList^#(activate(V1))
, U44^#(tt(), V1, V2) -> U45^#(isList(activate(V1)), activate(V2))
, U45^#(tt(), V2) -> isNeList^#(activate(V2))
, U52^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, U52^#(tt(), V1, V2) ->
U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, U53^#(tt(), V1, V2) ->
U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54^#(tt(), V1, V2) -> isNeList^#(activate(V1))
, U54^#(tt(), V1, V2) ->
U55^#(isNeList(activate(V1)), activate(V2))
, U55^#(tt(), V2) -> isList^#(activate(V2))
, U61^#(tt(), V) -> isPalListKind^#(activate(V))
, U71^#(tt(), I, P) -> isPalListKind^#(activate(I))
, U71^#(tt(), I, P) ->
U72^#(isPalListKind(activate(I)), activate(P))
, U72^#(tt(), P) -> U73^#(isPal(activate(P)), activate(P))
, U72^#(tt(), P) -> isPal^#(activate(P))
, U73^#(tt(), P) -> isPalListKind^#(activate(P))
, isPal^#(V) -> isPalListKind^#(activate(V))
, isPal^#(V) -> U81^#(isPalListKind(activate(V)), activate(V))
, U81^#(tt(), V) -> isPalListKind^#(activate(V))
, U81^#(tt(), V) -> U82^#(isPalListKind(activate(V)), activate(V))
, U82^#(tt(), V) -> isNePal^#(activate(V))
, isNePal^#(V) -> isPalListKind^#(activate(V))
, isNePal^#(V) -> U61^#(isPalListKind(activate(V)), activate(V)) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^1))
We use the processor 'matrix interpretation of dimension 1' to
orient following rules strictly.
DPs:
{ 2: U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, 4: U11^#(tt(), V) -> isPalListKind^#(activate(V))
, 7: isNeList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1))
, 8: isNeList^#(n____(V1, V2)) ->
U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, 10: U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, 11: U41^#(tt(), V1, V2) -> isPalListKind^#(activate(V1))
, 13: U51^#(tt(), V1, V2) -> isPalListKind^#(activate(V1))
, 14: U51^#(tt(), V1, V2) ->
U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, 15: U21^#(tt(), V1, V2) -> isPalListKind^#(activate(V1))
, 17: U22^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, 19: U23^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, 25: isList^#(V) -> isPalListKind^#(activate(V))
, 26: isList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1))
, 27: isList^#(n____(V1, V2)) ->
U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, 28: U42^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, 30: U43^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, 35: U52^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, 37: U53^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, 40: U54^#(tt(), V1, V2) ->
U55^#(isNeList(activate(V1)), activate(V2))
, 42: U61^#(tt(), V) -> isPalListKind^#(activate(V))
, 43: U71^#(tt(), I, P) -> isPalListKind^#(activate(I))
, 45: U72^#(tt(), P) -> U73^#(isPal(activate(P)), activate(P))
, 48: isPal^#(V) -> isPalListKind^#(activate(V))
, 50: U81^#(tt(), V) -> isPalListKind^#(activate(V))
, 53: isNePal^#(V) -> isPalListKind^#(activate(V)) }
Trs:
{ isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U33(tt()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2)) }
Sub-proof:
----------
The following argument positions are usable:
Uargs(c_3) = {1, 2}, Uargs(c_4) = {1, 2}, Uargs(c_7) = {1},
Uargs(c_8) = {1}
TcT has computed the following constructor-based matrix
interpretation satisfying not(EDA).
[__](x1, x2) = [1] x1 + [1] x2 + [4]
[nil] = [2]
[U11](x1, x2) = [0]
[tt] = [4]
[U12](x1, x2) = [0]
[isPalListKind](x1) = [6]
[activate](x1) = [1] x1 + [0]
[U13](x1) = [0]
[isNeList](x1) = [2] x1 + [0]
[U21](x1, x2, x3) = [0]
[U22](x1, x2, x3) = [0]
[U23](x1, x2, x3) = [0]
[U24](x1, x2, x3) = [0]
[U25](x1, x2) = [0]
[isList](x1) = [0]
[U26](x1) = [0]
[U31](x1, x2) = [2] x2 + [0]
[U32](x1, x2) = [2] x2 + [0]
[U33](x1) = [2] x1 + [0]
[isQid](x1) = [1] x1 + [0]
[U41](x1, x2, x3) = [7]
[U42](x1, x2, x3) = [1] x1 + [0]
[U43](x1, x2, x3) = [4]
[U44](x1, x2, x3) = [4]
[U45](x1, x2) = [4]
[U46](x1) = [4]
[U51](x1, x2, x3) = [4]
[U52](x1, x2, x3) = [4]
[U53](x1, x2, x3) = [4]
[U54](x1, x2, x3) = [4]
[U55](x1, x2) = [4]
[U56](x1) = [4]
[U61](x1, x2) = [0]
[U62](x1, x2) = [0]
[U63](x1) = [0]
[isPal](x1) = [0]
[U81](x1, x2) = [0]
[U82](x1, x2) = [0]
[U83](x1) = [0]
[isNePal](x1) = [0]
[U91](x1, x2) = [4]
[U92](x1) = [4]
[n__nil] = [2]
[n____](x1, x2) = [1] x1 + [1] x2 + [4]
[n__a] = [4]
[n__e] = [4]
[n__i] = [4]
[n__o] = [4]
[n__u] = [6]
[a] = [4]
[e] = [4]
[i] = [4]
[o] = [4]
[u] = [6]
[U11^#](x1, x2) = [2] x2 + [7]
[U12^#](x1, x2) = [2] x2 + [7]
[isPalListKind^#](x1) = [1] x1 + [3]
[isNeList^#](x1) = [2] x1 + [7]
[U91^#](x1, x2) = [1] x2 + [4]
[U31^#](x1, x2) = [1] x2 + [4]
[U41^#](x1, x2, x3) = [2] x2 + [2] x3 + [7]
[U51^#](x1, x2, x3) = [2] x1 + [2] x2 + [2] x3 + [3]
[U21^#](x1, x2, x3) = [2] x2 + [2] x3 + [7]
[U22^#](x1, x2, x3) = [2] x2 + [2] x3 + [7]
[U23^#](x1, x2, x3) = [2] x2 + [2] x3 + [7]
[U24^#](x1, x2, x3) = [2] x2 + [2] x3 + [7]
[U25^#](x1, x2) = [2] x2 + [7]
[isList^#](x1) = [2] x1 + [7]
[U42^#](x1, x2, x3) = [2] x2 + [2] x3 + [7]
[U43^#](x1, x2, x3) = [2] x2 + [2] x3 + [7]
[U44^#](x1, x2, x3) = [2] x2 + [2] x3 + [7]
[U45^#](x1, x2) = [2] x2 + [7]
[U52^#](x1, x2, x3) = [2] x2 + [2] x3 + [7]
[U53^#](x1, x2, x3) = [2] x2 + [2] x3 + [7]
[U54^#](x1, x2, x3) = [2] x2 + [2] x3 + [7]
[U55^#](x1, x2) = [1] x1 + [2] x2 + [3]
[U61^#](x1, x2) = [1] x2 + [7]
[U71^#](x1, x2, x3) = [7] x2 + [7] x3 + [7]
[U72^#](x1, x2) = [2] x2 + [7]
[U73^#](x1, x2) = [1] x2 + [3]
[isPal^#](x1) = [2] x1 + [7]
[U81^#](x1, x2) = [1] x2 + [7]
[U82^#](x1, x2) = [1] x2 + [7]
[isNePal^#](x1) = [1] x1 + [7]
[c_3](x1, x2) = [1] x1 + [1] x2 + [0]
[c_4](x1, x2) = [1] x1 + [1] x2 + [0]
[c_7](x1) = [1] x1 + [0]
[c_8](x1) = [1] x1 + [0]
The order satisfies the following ordering constraints:
[__(X1, X2)] = [1] X1 + [1] X2 + [4]
>= [1] X1 + [1] X2 + [4]
= [n____(X1, X2)]
[nil()] = [2]
>= [2]
= [n__nil()]
[U11(tt(), V)] = [0]
>= [0]
= [U12(isPalListKind(activate(V)), activate(V))]
[U12(tt(), V)] = [0]
>= [0]
= [U13(isNeList(activate(V)))]
[isPalListKind(n__nil())] = [6]
> [4]
= [tt()]
[isPalListKind(n____(V1, V2))] = [6]
> [4]
= [U91(isPalListKind(activate(V1)), activate(V2))]
[isPalListKind(n__a())] = [6]
> [4]
= [tt()]
[isPalListKind(n__e())] = [6]
> [4]
= [tt()]
[isPalListKind(n__i())] = [6]
> [4]
= [tt()]
[isPalListKind(n__o())] = [6]
> [4]
= [tt()]
[isPalListKind(n__u())] = [6]
> [4]
= [tt()]
[activate(X)] = [1] X + [0]
>= [1] X + [0]
= [X]
[activate(n__nil())] = [2]
>= [2]
= [nil()]
[activate(n____(X1, X2))] = [1] X1 + [1] X2 + [4]
>= [1] X1 + [1] X2 + [4]
= [__(X1, X2)]
[activate(n__a())] = [4]
>= [4]
= [a()]
[activate(n__e())] = [4]
>= [4]
= [e()]
[activate(n__i())] = [4]
>= [4]
= [i()]
[activate(n__o())] = [4]
>= [4]
= [o()]
[activate(n__u())] = [6]
>= [6]
= [u()]
[U13(tt())] = [0]
? [4]
= [tt()]
[isNeList(V)] = [2] V + [0]
>= [2] V + [0]
= [U31(isPalListKind(activate(V)), activate(V))]
[isNeList(n____(V1, V2))] = [2] V1 + [2] V2 + [8]
> [7]
= [U41(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[isNeList(n____(V1, V2))] = [2] V1 + [2] V2 + [8]
> [4]
= [U51(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U21(tt(), V1, V2)] = [0]
>= [0]
= [U22(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U22(tt(), V1, V2)] = [0]
>= [0]
= [U23(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U23(tt(), V1, V2)] = [0]
>= [0]
= [U24(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U24(tt(), V1, V2)] = [0]
>= [0]
= [U25(isList(activate(V1)), activate(V2))]
[U25(tt(), V2)] = [0]
>= [0]
= [U26(isList(activate(V2)))]
[isList(V)] = [0]
>= [0]
= [U11(isPalListKind(activate(V)), activate(V))]
[isList(n__nil())] = [0]
? [4]
= [tt()]
[isList(n____(V1, V2))] = [0]
>= [0]
= [U21(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U26(tt())] = [0]
? [4]
= [tt()]
[U31(tt(), V)] = [2] V + [0]
>= [2] V + [0]
= [U32(isPalListKind(activate(V)), activate(V))]
[U32(tt(), V)] = [2] V + [0]
>= [2] V + [0]
= [U33(isQid(activate(V)))]
[U33(tt())] = [8]
> [4]
= [tt()]
[isQid(n__a())] = [4]
>= [4]
= [tt()]
[isQid(n__e())] = [4]
>= [4]
= [tt()]
[isQid(n__i())] = [4]
>= [4]
= [tt()]
[isQid(n__o())] = [4]
>= [4]
= [tt()]
[isQid(n__u())] = [6]
> [4]
= [tt()]
[U41(tt(), V1, V2)] = [7]
> [6]
= [U42(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U42(tt(), V1, V2)] = [4]
>= [4]
= [U43(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U43(tt(), V1, V2)] = [4]
>= [4]
= [U44(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U44(tt(), V1, V2)] = [4]
>= [4]
= [U45(isList(activate(V1)), activate(V2))]
[U45(tt(), V2)] = [4]
>= [4]
= [U46(isNeList(activate(V2)))]
[U46(tt())] = [4]
>= [4]
= [tt()]
[U51(tt(), V1, V2)] = [4]
>= [4]
= [U52(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U52(tt(), V1, V2)] = [4]
>= [4]
= [U53(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U53(tt(), V1, V2)] = [4]
>= [4]
= [U54(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U54(tt(), V1, V2)] = [4]
>= [4]
= [U55(isNeList(activate(V1)), activate(V2))]
[U55(tt(), V2)] = [4]
>= [4]
= [U56(isList(activate(V2)))]
[U56(tt())] = [4]
>= [4]
= [tt()]
[U61(tt(), V)] = [0]
>= [0]
= [U62(isPalListKind(activate(V)), activate(V))]
[U62(tt(), V)] = [0]
>= [0]
= [U63(isQid(activate(V)))]
[U63(tt())] = [0]
? [4]
= [tt()]
[isPal(V)] = [0]
>= [0]
= [U81(isPalListKind(activate(V)), activate(V))]
[isPal(n__nil())] = [0]
? [4]
= [tt()]
[U81(tt(), V)] = [0]
>= [0]
= [U82(isPalListKind(activate(V)), activate(V))]
[U82(tt(), V)] = [0]
>= [0]
= [U83(isNePal(activate(V)))]
[U83(tt())] = [0]
? [4]
= [tt()]
[isNePal(V)] = [0]
>= [0]
= [U61(isPalListKind(activate(V)), activate(V))]
[U91(tt(), V2)] = [4]
>= [4]
= [U92(isPalListKind(activate(V2)))]
[U92(tt())] = [4]
>= [4]
= [tt()]
[a()] = [4]
>= [4]
= [n__a()]
[e()] = [4]
>= [4]
= [n__e()]
[i()] = [4]
>= [4]
= [n__i()]
[o()] = [4]
>= [4]
= [n__o()]
[u()] = [6]
>= [6]
= [n__u()]
[U11^#(tt(), V)] = [2] V + [7]
>= [2] V + [7]
= [U12^#(isPalListKind(activate(V)), activate(V))]
[U11^#(tt(), V)] = [2] V + [7]
> [1] V + [3]
= [isPalListKind^#(activate(V))]
[U12^#(tt(), V)] = [2] V + [7]
>= [2] V + [7]
= [isNeList^#(activate(V))]
[isPalListKind^#(n____(V1, V2))] = [1] V1 + [1] V2 + [7]
>= [1] V1 + [1] V2 + [7]
= [c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))]
[isNeList^#(V)] = [2] V + [7]
>= [2] V + [7]
= [c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))]
[isNeList^#(n____(V1, V2))] = [2] V1 + [2] V2 + [15]
> [1] V1 + [3]
= [isPalListKind^#(activate(V1))]
[isNeList^#(n____(V1, V2))] = [2] V1 + [2] V2 + [15]
> [2] V1 + [2] V2 + [7]
= [U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[isNeList^#(n____(V1, V2))] = [2] V1 + [2] V2 + [15]
>= [2] V1 + [2] V2 + [15]
= [U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U91^#(tt(), V2)] = [1] V2 + [4]
> [1] V2 + [3]
= [c_7(isPalListKind^#(activate(V2)))]
[U31^#(tt(), V)] = [1] V + [4]
> [1] V + [3]
= [c_8(isPalListKind^#(activate(V)))]
[U41^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7]
> [1] V1 + [3]
= [isPalListKind^#(activate(V1))]
[U41^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7]
>= [2] V1 + [2] V2 + [7]
= [U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U51^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [11]
> [1] V1 + [3]
= [isPalListKind^#(activate(V1))]
[U51^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [11]
> [2] V1 + [2] V2 + [7]
= [U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U21^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7]
> [1] V1 + [3]
= [isPalListKind^#(activate(V1))]
[U21^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7]
>= [2] V1 + [2] V2 + [7]
= [U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U22^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7]
> [1] V2 + [3]
= [isPalListKind^#(activate(V2))]
[U22^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7]
>= [2] V1 + [2] V2 + [7]
= [U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U23^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7]
> [1] V2 + [3]
= [isPalListKind^#(activate(V2))]
[U23^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7]
>= [2] V1 + [2] V2 + [7]
= [U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U24^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7]
>= [2] V2 + [7]
= [U25^#(isList(activate(V1)), activate(V2))]
[U24^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7]
>= [2] V1 + [7]
= [isList^#(activate(V1))]
[U25^#(tt(), V2)] = [2] V2 + [7]
>= [2] V2 + [7]
= [isList^#(activate(V2))]
[isList^#(V)] = [2] V + [7]
>= [2] V + [7]
= [U11^#(isPalListKind(activate(V)), activate(V))]
[isList^#(V)] = [2] V + [7]
> [1] V + [3]
= [isPalListKind^#(activate(V))]
[isList^#(n____(V1, V2))] = [2] V1 + [2] V2 + [15]
> [1] V1 + [3]
= [isPalListKind^#(activate(V1))]
[isList^#(n____(V1, V2))] = [2] V1 + [2] V2 + [15]
> [2] V1 + [2] V2 + [7]
= [U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U42^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7]
> [1] V2 + [3]
= [isPalListKind^#(activate(V2))]
[U42^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7]
>= [2] V1 + [2] V2 + [7]
= [U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U43^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7]
> [1] V2 + [3]
= [isPalListKind^#(activate(V2))]
[U43^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7]
>= [2] V1 + [2] V2 + [7]
= [U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U44^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7]
>= [2] V1 + [7]
= [isList^#(activate(V1))]
[U44^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7]
>= [2] V2 + [7]
= [U45^#(isList(activate(V1)), activate(V2))]
[U45^#(tt(), V2)] = [2] V2 + [7]
>= [2] V2 + [7]
= [isNeList^#(activate(V2))]
[U52^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7]
> [1] V2 + [3]
= [isPalListKind^#(activate(V2))]
[U52^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7]
>= [2] V1 + [2] V2 + [7]
= [U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U53^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7]
> [1] V2 + [3]
= [isPalListKind^#(activate(V2))]
[U53^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7]
>= [2] V1 + [2] V2 + [7]
= [U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U54^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7]
>= [2] V1 + [7]
= [isNeList^#(activate(V1))]
[U54^#(tt(), V1, V2)] = [2] V1 + [2] V2 + [7]
> [2] V1 + [2] V2 + [3]
= [U55^#(isNeList(activate(V1)), activate(V2))]
[U55^#(tt(), V2)] = [2] V2 + [7]
>= [2] V2 + [7]
= [isList^#(activate(V2))]
[U61^#(tt(), V)] = [1] V + [7]
> [1] V + [3]
= [isPalListKind^#(activate(V))]
[U71^#(tt(), I, P)] = [7] I + [7] P + [7]
> [1] I + [3]
= [isPalListKind^#(activate(I))]
[U71^#(tt(), I, P)] = [7] I + [7] P + [7]
>= [2] P + [7]
= [U72^#(isPalListKind(activate(I)), activate(P))]
[U72^#(tt(), P)] = [2] P + [7]
> [1] P + [3]
= [U73^#(isPal(activate(P)), activate(P))]
[U72^#(tt(), P)] = [2] P + [7]
>= [2] P + [7]
= [isPal^#(activate(P))]
[U73^#(tt(), P)] = [1] P + [3]
>= [1] P + [3]
= [isPalListKind^#(activate(P))]
[isPal^#(V)] = [2] V + [7]
> [1] V + [3]
= [isPalListKind^#(activate(V))]
[isPal^#(V)] = [2] V + [7]
>= [1] V + [7]
= [U81^#(isPalListKind(activate(V)), activate(V))]
[U81^#(tt(), V)] = [1] V + [7]
> [1] V + [3]
= [isPalListKind^#(activate(V))]
[U81^#(tt(), V)] = [1] V + [7]
>= [1] V + [7]
= [U82^#(isPalListKind(activate(V)), activate(V))]
[U82^#(tt(), V)] = [1] V + [7]
>= [1] V + [7]
= [isNePal^#(activate(V))]
[isNePal^#(V)] = [1] V + [7]
> [1] V + [3]
= [isPalListKind^#(activate(V))]
[isNePal^#(V)] = [1] V + [7]
>= [1] V + [7]
= [U61^#(isPalListKind(activate(V)), activate(V))]
We return to the main proof. Consider the set of all dependency
pairs
:
{ 1: isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, 2: U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, 3: U11^#(tt(), V) ->
U12^#(isPalListKind(activate(V)), activate(V))
, 4: U11^#(tt(), V) -> isPalListKind^#(activate(V))
, 5: U12^#(tt(), V) -> isNeList^#(activate(V))
, 6: isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 7: isNeList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1))
, 8: isNeList^#(n____(V1, V2)) ->
U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, 9: isNeList^#(n____(V1, V2)) ->
U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, 10: U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, 11: U41^#(tt(), V1, V2) -> isPalListKind^#(activate(V1))
, 12: U41^#(tt(), V1, V2) ->
U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, 13: U51^#(tt(), V1, V2) -> isPalListKind^#(activate(V1))
, 14: U51^#(tt(), V1, V2) ->
U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, 15: U21^#(tt(), V1, V2) -> isPalListKind^#(activate(V1))
, 16: U21^#(tt(), V1, V2) ->
U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, 17: U22^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, 18: U22^#(tt(), V1, V2) ->
U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, 19: U23^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, 20: U23^#(tt(), V1, V2) ->
U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, 21: U24^#(tt(), V1, V2) ->
U25^#(isList(activate(V1)), activate(V2))
, 22: U24^#(tt(), V1, V2) -> isList^#(activate(V1))
, 23: U25^#(tt(), V2) -> isList^#(activate(V2))
, 24: isList^#(V) -> U11^#(isPalListKind(activate(V)), activate(V))
, 25: isList^#(V) -> isPalListKind^#(activate(V))
, 26: isList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1))
, 27: isList^#(n____(V1, V2)) ->
U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, 28: U42^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, 29: U42^#(tt(), V1, V2) ->
U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, 30: U43^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, 31: U43^#(tt(), V1, V2) ->
U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, 32: U44^#(tt(), V1, V2) -> isList^#(activate(V1))
, 33: U44^#(tt(), V1, V2) ->
U45^#(isList(activate(V1)), activate(V2))
, 34: U45^#(tt(), V2) -> isNeList^#(activate(V2))
, 35: U52^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, 36: U52^#(tt(), V1, V2) ->
U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, 37: U53^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, 38: U53^#(tt(), V1, V2) ->
U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, 39: U54^#(tt(), V1, V2) -> isNeList^#(activate(V1))
, 40: U54^#(tt(), V1, V2) ->
U55^#(isNeList(activate(V1)), activate(V2))
, 41: U55^#(tt(), V2) -> isList^#(activate(V2))
, 42: U61^#(tt(), V) -> isPalListKind^#(activate(V))
, 43: U71^#(tt(), I, P) -> isPalListKind^#(activate(I))
, 44: U71^#(tt(), I, P) ->
U72^#(isPalListKind(activate(I)), activate(P))
, 45: U72^#(tt(), P) -> U73^#(isPal(activate(P)), activate(P))
, 46: U72^#(tt(), P) -> isPal^#(activate(P))
, 47: U73^#(tt(), P) -> isPalListKind^#(activate(P))
, 48: isPal^#(V) -> isPalListKind^#(activate(V))
, 49: isPal^#(V) -> U81^#(isPalListKind(activate(V)), activate(V))
, 50: U81^#(tt(), V) -> isPalListKind^#(activate(V))
, 51: U81^#(tt(), V) ->
U82^#(isPalListKind(activate(V)), activate(V))
, 52: U82^#(tt(), V) -> isNePal^#(activate(V))
, 53: isNePal^#(V) -> isPalListKind^#(activate(V))
, 54: isNePal^#(V) ->
U61^#(isPalListKind(activate(V)), activate(V)) }
Processor 'matrix interpretation of dimension 1' induces the
complexity certificate YES(?,O(n^1)) on application of dependency
pairs
{2,4,7,8,10,11,13,14,15,17,19,25,26,27,28,30,35,37,40,42,43,45,48,50,53}.
These cover all (indirect) predecessors of dependency pairs
{2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54},
their number of application is equally bounded. The dependency
pairs are shifted into the weak component.
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^1)).
Strict DPs:
{ isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1))) }
Weak DPs:
{ U11^#(tt(), V) -> U12^#(isPalListKind(activate(V)), activate(V))
, U11^#(tt(), V) -> isPalListKind^#(activate(V))
, U12^#(tt(), V) -> isNeList^#(activate(V))
, isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNeList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1))
, isNeList^#(n____(V1, V2)) ->
U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList^#(n____(V1, V2)) ->
U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, U41^#(tt(), V1, V2) -> isPalListKind^#(activate(V1))
, U41^#(tt(), V1, V2) ->
U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U51^#(tt(), V1, V2) -> isPalListKind^#(activate(V1))
, U51^#(tt(), V1, V2) ->
U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21^#(tt(), V1, V2) -> isPalListKind^#(activate(V1))
, U21^#(tt(), V1, V2) ->
U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, U22^#(tt(), V1, V2) ->
U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, U23^#(tt(), V1, V2) ->
U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24^#(tt(), V1, V2) -> U25^#(isList(activate(V1)), activate(V2))
, U24^#(tt(), V1, V2) -> isList^#(activate(V1))
, U25^#(tt(), V2) -> isList^#(activate(V2))
, isList^#(V) -> U11^#(isPalListKind(activate(V)), activate(V))
, isList^#(V) -> isPalListKind^#(activate(V))
, isList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1))
, isList^#(n____(V1, V2)) ->
U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, U42^#(tt(), V1, V2) ->
U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, U43^#(tt(), V1, V2) ->
U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44^#(tt(), V1, V2) -> isList^#(activate(V1))
, U44^#(tt(), V1, V2) -> U45^#(isList(activate(V1)), activate(V2))
, U45^#(tt(), V2) -> isNeList^#(activate(V2))
, U52^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, U52^#(tt(), V1, V2) ->
U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, U53^#(tt(), V1, V2) ->
U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54^#(tt(), V1, V2) -> isNeList^#(activate(V1))
, U54^#(tt(), V1, V2) ->
U55^#(isNeList(activate(V1)), activate(V2))
, U55^#(tt(), V2) -> isList^#(activate(V2))
, U61^#(tt(), V) -> isPalListKind^#(activate(V))
, U71^#(tt(), I, P) -> isPalListKind^#(activate(I))
, U71^#(tt(), I, P) ->
U72^#(isPalListKind(activate(I)), activate(P))
, U72^#(tt(), P) -> U73^#(isPal(activate(P)), activate(P))
, U72^#(tt(), P) -> isPal^#(activate(P))
, U73^#(tt(), P) -> isPalListKind^#(activate(P))
, isPal^#(V) -> isPalListKind^#(activate(V))
, isPal^#(V) -> U81^#(isPalListKind(activate(V)), activate(V))
, U81^#(tt(), V) -> isPalListKind^#(activate(V))
, U81^#(tt(), V) -> U82^#(isPalListKind(activate(V)), activate(V))
, U82^#(tt(), V) -> isNePal^#(activate(V))
, isNePal^#(V) -> isPalListKind^#(activate(V))
, isNePal^#(V) -> U61^#(isPalListKind(activate(V)), activate(V)) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^1))
We use the processor 'matrix interpretation of dimension 1' to
orient following rules strictly.
DPs:
{ 1: isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, 3: U11^#(tt(), V) -> isPalListKind^#(activate(V))
, 4: U12^#(tt(), V) -> isNeList^#(activate(V))
, 5: isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 6: isNeList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1))
, 7: isNeList^#(n____(V1, V2)) ->
U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, 8: isNeList^#(n____(V1, V2)) ->
U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, 9: U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, 11: U41^#(tt(), V1, V2) -> isPalListKind^#(activate(V1))
, 13: U51^#(tt(), V1, V2) -> isPalListKind^#(activate(V1))
, 15: U21^#(tt(), V1, V2) -> isPalListKind^#(activate(V1))
, 17: U22^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, 19: U23^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, 21: U24^#(tt(), V1, V2) ->
U25^#(isList(activate(V1)), activate(V2))
, 22: U24^#(tt(), V1, V2) -> isList^#(activate(V1))
, 23: U25^#(tt(), V2) -> isList^#(activate(V2))
, 24: isList^#(V) -> U11^#(isPalListKind(activate(V)), activate(V))
, 25: isList^#(V) -> isPalListKind^#(activate(V))
, 26: isList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1))
, 27: isList^#(n____(V1, V2)) ->
U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, 28: U42^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, 30: U43^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, 32: U44^#(tt(), V1, V2) -> isList^#(activate(V1))
, 33: U44^#(tt(), V1, V2) ->
U45^#(isList(activate(V1)), activate(V2))
, 34: U45^#(tt(), V2) -> isNeList^#(activate(V2))
, 35: U52^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, 36: U52^#(tt(), V1, V2) ->
U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, 37: U53^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, 39: U54^#(tt(), V1, V2) -> isNeList^#(activate(V1))
, 40: U54^#(tt(), V1, V2) ->
U55^#(isNeList(activate(V1)), activate(V2))
, 41: U55^#(tt(), V2) -> isList^#(activate(V2))
, 42: U61^#(tt(), V) -> isPalListKind^#(activate(V))
, 43: U71^#(tt(), I, P) -> isPalListKind^#(activate(I))
, 44: U71^#(tt(), I, P) ->
U72^#(isPalListKind(activate(I)), activate(P))
, 45: U72^#(tt(), P) -> U73^#(isPal(activate(P)), activate(P))
, 47: U73^#(tt(), P) -> isPalListKind^#(activate(P))
, 48: isPal^#(V) -> isPalListKind^#(activate(V))
, 50: U81^#(tt(), V) -> isPalListKind^#(activate(V))
, 53: isNePal^#(V) -> isPalListKind^#(activate(V)) }
Trs:
{ isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, isPal(n__nil()) -> tt()
, U83(tt()) -> tt() }
Sub-proof:
----------
The following argument positions are usable:
Uargs(c_3) = {1, 2}, Uargs(c_4) = {1, 2}, Uargs(c_7) = {1},
Uargs(c_8) = {1}
TcT has computed the following constructor-based matrix
interpretation satisfying not(EDA).
[__](x1, x2) = [1] x1 + [1] x2 + [2]
[nil] = [4]
[U11](x1, x2) = [0]
[tt] = [4]
[U12](x1, x2) = [0]
[isPalListKind](x1) = [2] x1 + [1]
[activate](x1) = [1] x1 + [0]
[U13](x1) = [0]
[isNeList](x1) = [0]
[U21](x1, x2, x3) = [0]
[U22](x1, x2, x3) = [0]
[U23](x1, x2, x3) = [0]
[U24](x1, x2, x3) = [0]
[U25](x1, x2) = [0]
[isList](x1) = [0]
[U26](x1) = [0]
[U31](x1, x2) = [0]
[U32](x1, x2) = [0]
[U33](x1) = [0]
[isQid](x1) = [1] x1 + [1]
[U41](x1, x2, x3) = [0]
[U42](x1, x2, x3) = [0]
[U43](x1, x2, x3) = [0]
[U44](x1, x2, x3) = [0]
[U45](x1, x2) = [0]
[U46](x1) = [0]
[U51](x1, x2, x3) = [0]
[U52](x1, x2, x3) = [0]
[U53](x1, x2, x3) = [0]
[U54](x1, x2, x3) = [0]
[U55](x1, x2) = [0]
[U56](x1) = [0]
[U61](x1, x2) = [1] x2 + [1]
[U62](x1, x2) = [1] x2 + [1]
[U63](x1) = [1] x1 + [0]
[isPal](x1) = [2] x1 + [2]
[U81](x1, x2) = [2] x2 + [2]
[U82](x1, x2) = [2] x2 + [2]
[U83](x1) = [2] x1 + [0]
[isNePal](x1) = [1] x1 + [1]
[U91](x1, x2) = [0]
[U92](x1) = [0]
[n__nil] = [4]
[n____](x1, x2) = [1] x1 + [1] x2 + [2]
[n__a] = [3]
[n__e] = [7]
[n__i] = [7]
[n__o] = [4]
[n__u] = [7]
[a] = [3]
[e] = [7]
[i] = [7]
[o] = [4]
[u] = [7]
[U11^#](x1, x2) = [6] x2 + [2]
[U12^#](x1, x2) = [6] x2 + [2]
[isPalListKind^#](x1) = [3] x1 + [0]
[isNeList^#](x1) = [6] x1 + [1]
[U91^#](x1, x2) = [3] x2 + [4]
[U31^#](x1, x2) = [3] x2 + [0]
[U41^#](x1, x2, x3) = [6] x2 + [6] x3 + [7]
[U51^#](x1, x2, x3) = [6] x2 + [6] x3 + [6]
[U21^#](x1, x2, x3) = [6] x2 + [6] x3 + [7]
[U22^#](x1, x2, x3) = [6] x2 + [6] x3 + [7]
[U23^#](x1, x2, x3) = [6] x2 + [6] x3 + [7]
[U24^#](x1, x2, x3) = [6] x2 + [6] x3 + [7]
[U25^#](x1, x2) = [6] x2 + [4]
[isList^#](x1) = [6] x1 + [3]
[U42^#](x1, x2, x3) = [6] x2 + [6] x3 + [7]
[U43^#](x1, x2, x3) = [6] x2 + [6] x3 + [7]
[U44^#](x1, x2, x3) = [6] x2 + [6] x3 + [7]
[U45^#](x1, x2) = [6] x2 + [2]
[U52^#](x1, x2, x3) = [6] x2 + [6] x3 + [6]
[U53^#](x1, x2, x3) = [6] x2 + [6] x3 + [5]
[U54^#](x1, x2, x3) = [6] x2 + [6] x3 + [5]
[U55^#](x1, x2) = [6] x2 + [4]
[U61^#](x1, x2) = [4] x2 + [6]
[U71^#](x1, x2, x3) = [2] x1 + [7] x2 + [7] x3 + [5]
[U72^#](x1, x2) = [7] x2 + [6]
[U73^#](x1, x2) = [2] x1 + [3] x2 + [0]
[isPal^#](x1) = [7] x1 + [6]
[U81^#](x1, x2) = [4] x2 + [6]
[U82^#](x1, x2) = [4] x2 + [6]
[isNePal^#](x1) = [4] x1 + [6]
[c_3](x1, x2) = [1] x1 + [1] x2 + [1]
[c_4](x1, x2) = [1] x1 + [1] x2 + [0]
[c_7](x1) = [1] x1 + [1]
[c_8](x1) = [1] x1 + [0]
The order satisfies the following ordering constraints:
[__(X1, X2)] = [1] X1 + [1] X2 + [2]
>= [1] X1 + [1] X2 + [2]
= [n____(X1, X2)]
[nil()] = [4]
>= [4]
= [n__nil()]
[U11(tt(), V)] = [0]
>= [0]
= [U12(isPalListKind(activate(V)), activate(V))]
[U12(tt(), V)] = [0]
>= [0]
= [U13(isNeList(activate(V)))]
[isPalListKind(n__nil())] = [9]
> [4]
= [tt()]
[isPalListKind(n____(V1, V2))] = [2] V1 + [2] V2 + [5]
> [0]
= [U91(isPalListKind(activate(V1)), activate(V2))]
[isPalListKind(n__a())] = [7]
> [4]
= [tt()]
[isPalListKind(n__e())] = [15]
> [4]
= [tt()]
[isPalListKind(n__i())] = [15]
> [4]
= [tt()]
[isPalListKind(n__o())] = [9]
> [4]
= [tt()]
[isPalListKind(n__u())] = [15]
> [4]
= [tt()]
[activate(X)] = [1] X + [0]
>= [1] X + [0]
= [X]
[activate(n__nil())] = [4]
>= [4]
= [nil()]
[activate(n____(X1, X2))] = [1] X1 + [1] X2 + [2]
>= [1] X1 + [1] X2 + [2]
= [__(X1, X2)]
[activate(n__a())] = [3]
>= [3]
= [a()]
[activate(n__e())] = [7]
>= [7]
= [e()]
[activate(n__i())] = [7]
>= [7]
= [i()]
[activate(n__o())] = [4]
>= [4]
= [o()]
[activate(n__u())] = [7]
>= [7]
= [u()]
[U13(tt())] = [0]
? [4]
= [tt()]
[isNeList(V)] = [0]
>= [0]
= [U31(isPalListKind(activate(V)), activate(V))]
[isNeList(n____(V1, V2))] = [0]
>= [0]
= [U41(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[isNeList(n____(V1, V2))] = [0]
>= [0]
= [U51(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U21(tt(), V1, V2)] = [0]
>= [0]
= [U22(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U22(tt(), V1, V2)] = [0]
>= [0]
= [U23(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U23(tt(), V1, V2)] = [0]
>= [0]
= [U24(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U24(tt(), V1, V2)] = [0]
>= [0]
= [U25(isList(activate(V1)), activate(V2))]
[U25(tt(), V2)] = [0]
>= [0]
= [U26(isList(activate(V2)))]
[isList(V)] = [0]
>= [0]
= [U11(isPalListKind(activate(V)), activate(V))]
[isList(n__nil())] = [0]
? [4]
= [tt()]
[isList(n____(V1, V2))] = [0]
>= [0]
= [U21(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U26(tt())] = [0]
? [4]
= [tt()]
[U31(tt(), V)] = [0]
>= [0]
= [U32(isPalListKind(activate(V)), activate(V))]
[U32(tt(), V)] = [0]
>= [0]
= [U33(isQid(activate(V)))]
[U33(tt())] = [0]
? [4]
= [tt()]
[isQid(n__a())] = [4]
>= [4]
= [tt()]
[isQid(n__e())] = [8]
> [4]
= [tt()]
[isQid(n__i())] = [8]
> [4]
= [tt()]
[isQid(n__o())] = [5]
> [4]
= [tt()]
[isQid(n__u())] = [8]
> [4]
= [tt()]
[U41(tt(), V1, V2)] = [0]
>= [0]
= [U42(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U42(tt(), V1, V2)] = [0]
>= [0]
= [U43(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U43(tt(), V1, V2)] = [0]
>= [0]
= [U44(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U44(tt(), V1, V2)] = [0]
>= [0]
= [U45(isList(activate(V1)), activate(V2))]
[U45(tt(), V2)] = [0]
>= [0]
= [U46(isNeList(activate(V2)))]
[U46(tt())] = [0]
? [4]
= [tt()]
[U51(tt(), V1, V2)] = [0]
>= [0]
= [U52(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U52(tt(), V1, V2)] = [0]
>= [0]
= [U53(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U53(tt(), V1, V2)] = [0]
>= [0]
= [U54(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U54(tt(), V1, V2)] = [0]
>= [0]
= [U55(isNeList(activate(V1)), activate(V2))]
[U55(tt(), V2)] = [0]
>= [0]
= [U56(isList(activate(V2)))]
[U56(tt())] = [0]
? [4]
= [tt()]
[U61(tt(), V)] = [1] V + [1]
>= [1] V + [1]
= [U62(isPalListKind(activate(V)), activate(V))]
[U62(tt(), V)] = [1] V + [1]
>= [1] V + [1]
= [U63(isQid(activate(V)))]
[U63(tt())] = [4]
>= [4]
= [tt()]
[isPal(V)] = [2] V + [2]
>= [2] V + [2]
= [U81(isPalListKind(activate(V)), activate(V))]
[isPal(n__nil())] = [10]
> [4]
= [tt()]
[U81(tt(), V)] = [2] V + [2]
>= [2] V + [2]
= [U82(isPalListKind(activate(V)), activate(V))]
[U82(tt(), V)] = [2] V + [2]
>= [2] V + [2]
= [U83(isNePal(activate(V)))]
[U83(tt())] = [8]
> [4]
= [tt()]
[isNePal(V)] = [1] V + [1]
>= [1] V + [1]
= [U61(isPalListKind(activate(V)), activate(V))]
[U91(tt(), V2)] = [0]
>= [0]
= [U92(isPalListKind(activate(V2)))]
[U92(tt())] = [0]
? [4]
= [tt()]
[a()] = [3]
>= [3]
= [n__a()]
[e()] = [7]
>= [7]
= [n__e()]
[i()] = [7]
>= [7]
= [n__i()]
[o()] = [4]
>= [4]
= [n__o()]
[u()] = [7]
>= [7]
= [n__u()]
[U11^#(tt(), V)] = [6] V + [2]
>= [6] V + [2]
= [U12^#(isPalListKind(activate(V)), activate(V))]
[U11^#(tt(), V)] = [6] V + [2]
> [3] V + [0]
= [isPalListKind^#(activate(V))]
[U12^#(tt(), V)] = [6] V + [2]
> [6] V + [1]
= [isNeList^#(activate(V))]
[isPalListKind^#(n____(V1, V2))] = [3] V1 + [3] V2 + [6]
> [3] V1 + [3] V2 + [5]
= [c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))]
[isNeList^#(V)] = [6] V + [1]
> [6] V + [0]
= [c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))]
[isNeList^#(n____(V1, V2))] = [6] V1 + [6] V2 + [13]
> [3] V1 + [0]
= [isPalListKind^#(activate(V1))]
[isNeList^#(n____(V1, V2))] = [6] V1 + [6] V2 + [13]
> [6] V1 + [6] V2 + [7]
= [U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[isNeList^#(n____(V1, V2))] = [6] V1 + [6] V2 + [13]
> [6] V1 + [6] V2 + [6]
= [U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U91^#(tt(), V2)] = [3] V2 + [4]
> [3] V2 + [1]
= [c_7(isPalListKind^#(activate(V2)))]
[U31^#(tt(), V)] = [3] V + [0]
>= [3] V + [0]
= [c_8(isPalListKind^#(activate(V)))]
[U41^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [7]
> [3] V1 + [0]
= [isPalListKind^#(activate(V1))]
[U41^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [7]
>= [6] V1 + [6] V2 + [7]
= [U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U51^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [6]
> [3] V1 + [0]
= [isPalListKind^#(activate(V1))]
[U51^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [6]
>= [6] V1 + [6] V2 + [6]
= [U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U21^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [7]
> [3] V1 + [0]
= [isPalListKind^#(activate(V1))]
[U21^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [7]
>= [6] V1 + [6] V2 + [7]
= [U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U22^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [7]
> [3] V2 + [0]
= [isPalListKind^#(activate(V2))]
[U22^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [7]
>= [6] V1 + [6] V2 + [7]
= [U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U23^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [7]
> [3] V2 + [0]
= [isPalListKind^#(activate(V2))]
[U23^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [7]
>= [6] V1 + [6] V2 + [7]
= [U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U24^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [7]
> [6] V2 + [4]
= [U25^#(isList(activate(V1)), activate(V2))]
[U24^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [7]
> [6] V1 + [3]
= [isList^#(activate(V1))]
[U25^#(tt(), V2)] = [6] V2 + [4]
> [6] V2 + [3]
= [isList^#(activate(V2))]
[isList^#(V)] = [6] V + [3]
> [6] V + [2]
= [U11^#(isPalListKind(activate(V)), activate(V))]
[isList^#(V)] = [6] V + [3]
> [3] V + [0]
= [isPalListKind^#(activate(V))]
[isList^#(n____(V1, V2))] = [6] V1 + [6] V2 + [15]
> [3] V1 + [0]
= [isPalListKind^#(activate(V1))]
[isList^#(n____(V1, V2))] = [6] V1 + [6] V2 + [15]
> [6] V1 + [6] V2 + [7]
= [U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U42^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [7]
> [3] V2 + [0]
= [isPalListKind^#(activate(V2))]
[U42^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [7]
>= [6] V1 + [6] V2 + [7]
= [U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U43^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [7]
> [3] V2 + [0]
= [isPalListKind^#(activate(V2))]
[U43^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [7]
>= [6] V1 + [6] V2 + [7]
= [U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U44^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [7]
> [6] V1 + [3]
= [isList^#(activate(V1))]
[U44^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [7]
> [6] V2 + [2]
= [U45^#(isList(activate(V1)), activate(V2))]
[U45^#(tt(), V2)] = [6] V2 + [2]
> [6] V2 + [1]
= [isNeList^#(activate(V2))]
[U52^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [6]
> [3] V2 + [0]
= [isPalListKind^#(activate(V2))]
[U52^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [6]
> [6] V1 + [6] V2 + [5]
= [U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U53^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [5]
> [3] V2 + [0]
= [isPalListKind^#(activate(V2))]
[U53^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [5]
>= [6] V1 + [6] V2 + [5]
= [U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U54^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [5]
> [6] V1 + [1]
= [isNeList^#(activate(V1))]
[U54^#(tt(), V1, V2)] = [6] V1 + [6] V2 + [5]
> [6] V2 + [4]
= [U55^#(isNeList(activate(V1)), activate(V2))]
[U55^#(tt(), V2)] = [6] V2 + [4]
> [6] V2 + [3]
= [isList^#(activate(V2))]
[U61^#(tt(), V)] = [4] V + [6]
> [3] V + [0]
= [isPalListKind^#(activate(V))]
[U71^#(tt(), I, P)] = [7] I + [7] P + [13]
> [3] I + [0]
= [isPalListKind^#(activate(I))]
[U71^#(tt(), I, P)] = [7] I + [7] P + [13]
> [7] P + [6]
= [U72^#(isPalListKind(activate(I)), activate(P))]
[U72^#(tt(), P)] = [7] P + [6]
> [7] P + [4]
= [U73^#(isPal(activate(P)), activate(P))]
[U72^#(tt(), P)] = [7] P + [6]
>= [7] P + [6]
= [isPal^#(activate(P))]
[U73^#(tt(), P)] = [3] P + [8]
> [3] P + [0]
= [isPalListKind^#(activate(P))]
[isPal^#(V)] = [7] V + [6]
> [3] V + [0]
= [isPalListKind^#(activate(V))]
[isPal^#(V)] = [7] V + [6]
>= [4] V + [6]
= [U81^#(isPalListKind(activate(V)), activate(V))]
[U81^#(tt(), V)] = [4] V + [6]
> [3] V + [0]
= [isPalListKind^#(activate(V))]
[U81^#(tt(), V)] = [4] V + [6]
>= [4] V + [6]
= [U82^#(isPalListKind(activate(V)), activate(V))]
[U82^#(tt(), V)] = [4] V + [6]
>= [4] V + [6]
= [isNePal^#(activate(V))]
[isNePal^#(V)] = [4] V + [6]
> [3] V + [0]
= [isPalListKind^#(activate(V))]
[isNePal^#(V)] = [4] V + [6]
>= [4] V + [6]
= [U61^#(isPalListKind(activate(V)), activate(V))]
We return to the main proof. Consider the set of all dependency
pairs
:
{ 1: isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, 2: U11^#(tt(), V) ->
U12^#(isPalListKind(activate(V)), activate(V))
, 3: U11^#(tt(), V) -> isPalListKind^#(activate(V))
, 4: U12^#(tt(), V) -> isNeList^#(activate(V))
, 5: isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 6: isNeList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1))
, 7: isNeList^#(n____(V1, V2)) ->
U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, 8: isNeList^#(n____(V1, V2)) ->
U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, 9: U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, 10: U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, 11: U41^#(tt(), V1, V2) -> isPalListKind^#(activate(V1))
, 12: U41^#(tt(), V1, V2) ->
U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, 13: U51^#(tt(), V1, V2) -> isPalListKind^#(activate(V1))
, 14: U51^#(tt(), V1, V2) ->
U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, 15: U21^#(tt(), V1, V2) -> isPalListKind^#(activate(V1))
, 16: U21^#(tt(), V1, V2) ->
U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, 17: U22^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, 18: U22^#(tt(), V1, V2) ->
U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, 19: U23^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, 20: U23^#(tt(), V1, V2) ->
U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, 21: U24^#(tt(), V1, V2) ->
U25^#(isList(activate(V1)), activate(V2))
, 22: U24^#(tt(), V1, V2) -> isList^#(activate(V1))
, 23: U25^#(tt(), V2) -> isList^#(activate(V2))
, 24: isList^#(V) -> U11^#(isPalListKind(activate(V)), activate(V))
, 25: isList^#(V) -> isPalListKind^#(activate(V))
, 26: isList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1))
, 27: isList^#(n____(V1, V2)) ->
U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, 28: U42^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, 29: U42^#(tt(), V1, V2) ->
U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, 30: U43^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, 31: U43^#(tt(), V1, V2) ->
U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, 32: U44^#(tt(), V1, V2) -> isList^#(activate(V1))
, 33: U44^#(tt(), V1, V2) ->
U45^#(isList(activate(V1)), activate(V2))
, 34: U45^#(tt(), V2) -> isNeList^#(activate(V2))
, 35: U52^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, 36: U52^#(tt(), V1, V2) ->
U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, 37: U53^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, 38: U53^#(tt(), V1, V2) ->
U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, 39: U54^#(tt(), V1, V2) -> isNeList^#(activate(V1))
, 40: U54^#(tt(), V1, V2) ->
U55^#(isNeList(activate(V1)), activate(V2))
, 41: U55^#(tt(), V2) -> isList^#(activate(V2))
, 42: U61^#(tt(), V) -> isPalListKind^#(activate(V))
, 43: U71^#(tt(), I, P) -> isPalListKind^#(activate(I))
, 44: U71^#(tt(), I, P) ->
U72^#(isPalListKind(activate(I)), activate(P))
, 45: U72^#(tt(), P) -> U73^#(isPal(activate(P)), activate(P))
, 46: U72^#(tt(), P) -> isPal^#(activate(P))
, 47: U73^#(tt(), P) -> isPalListKind^#(activate(P))
, 48: isPal^#(V) -> isPalListKind^#(activate(V))
, 49: isPal^#(V) -> U81^#(isPalListKind(activate(V)), activate(V))
, 50: U81^#(tt(), V) -> isPalListKind^#(activate(V))
, 51: U81^#(tt(), V) ->
U82^#(isPalListKind(activate(V)), activate(V))
, 52: U82^#(tt(), V) -> isNePal^#(activate(V))
, 53: isNePal^#(V) -> isPalListKind^#(activate(V))
, 54: isNePal^#(V) ->
U61^#(isPalListKind(activate(V)), activate(V)) }
Processor 'matrix interpretation of dimension 1' induces the
complexity certificate YES(?,O(n^1)) on application of dependency
pairs
{1,3,4,5,6,7,8,9,11,13,15,17,19,21,22,23,24,25,26,27,28,30,32,33,34,35,36,37,39,40,41,42,43,44,45,47,48,50,53}.
These cover all (indirect) predecessors of dependency pairs
{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54},
their number of application is equally bounded. The dependency
pairs are shifted into the weak component.
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Weak DPs:
{ U11^#(tt(), V) -> U12^#(isPalListKind(activate(V)), activate(V))
, U11^#(tt(), V) -> isPalListKind^#(activate(V))
, U12^#(tt(), V) -> isNeList^#(activate(V))
, isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNeList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1))
, isNeList^#(n____(V1, V2)) ->
U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList^#(n____(V1, V2)) ->
U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, U41^#(tt(), V1, V2) -> isPalListKind^#(activate(V1))
, U41^#(tt(), V1, V2) ->
U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U51^#(tt(), V1, V2) -> isPalListKind^#(activate(V1))
, U51^#(tt(), V1, V2) ->
U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21^#(tt(), V1, V2) -> isPalListKind^#(activate(V1))
, U21^#(tt(), V1, V2) ->
U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, U22^#(tt(), V1, V2) ->
U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, U23^#(tt(), V1, V2) ->
U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24^#(tt(), V1, V2) -> U25^#(isList(activate(V1)), activate(V2))
, U24^#(tt(), V1, V2) -> isList^#(activate(V1))
, U25^#(tt(), V2) -> isList^#(activate(V2))
, isList^#(V) -> U11^#(isPalListKind(activate(V)), activate(V))
, isList^#(V) -> isPalListKind^#(activate(V))
, isList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1))
, isList^#(n____(V1, V2)) ->
U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, U42^#(tt(), V1, V2) ->
U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, U43^#(tt(), V1, V2) ->
U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44^#(tt(), V1, V2) -> isList^#(activate(V1))
, U44^#(tt(), V1, V2) -> U45^#(isList(activate(V1)), activate(V2))
, U45^#(tt(), V2) -> isNeList^#(activate(V2))
, U52^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, U52^#(tt(), V1, V2) ->
U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, U53^#(tt(), V1, V2) ->
U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54^#(tt(), V1, V2) -> isNeList^#(activate(V1))
, U54^#(tt(), V1, V2) ->
U55^#(isNeList(activate(V1)), activate(V2))
, U55^#(tt(), V2) -> isList^#(activate(V2))
, U61^#(tt(), V) -> isPalListKind^#(activate(V))
, U71^#(tt(), I, P) -> isPalListKind^#(activate(I))
, U71^#(tt(), I, P) ->
U72^#(isPalListKind(activate(I)), activate(P))
, U72^#(tt(), P) -> U73^#(isPal(activate(P)), activate(P))
, U72^#(tt(), P) -> isPal^#(activate(P))
, U73^#(tt(), P) -> isPalListKind^#(activate(P))
, isPal^#(V) -> isPalListKind^#(activate(V))
, isPal^#(V) -> U81^#(isPalListKind(activate(V)), activate(V))
, U81^#(tt(), V) -> isPalListKind^#(activate(V))
, U81^#(tt(), V) -> U82^#(isPalListKind(activate(V)), activate(V))
, U82^#(tt(), V) -> isNePal^#(activate(V))
, isNePal^#(V) -> isPalListKind^#(activate(V))
, isNePal^#(V) -> U61^#(isPalListKind(activate(V)), activate(V)) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
The following weak DPs constitute a sub-graph of the DG that is
closed under successors. The DPs are removed.
{ U11^#(tt(), V) -> U12^#(isPalListKind(activate(V)), activate(V))
, U11^#(tt(), V) -> isPalListKind^#(activate(V))
, U12^#(tt(), V) -> isNeList^#(activate(V))
, isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNeList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1))
, isNeList^#(n____(V1, V2)) ->
U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList^#(n____(V1, V2)) ->
U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, U41^#(tt(), V1, V2) -> isPalListKind^#(activate(V1))
, U41^#(tt(), V1, V2) ->
U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U51^#(tt(), V1, V2) -> isPalListKind^#(activate(V1))
, U51^#(tt(), V1, V2) ->
U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21^#(tt(), V1, V2) -> isPalListKind^#(activate(V1))
, U21^#(tt(), V1, V2) ->
U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, U22^#(tt(), V1, V2) ->
U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, U23^#(tt(), V1, V2) ->
U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24^#(tt(), V1, V2) -> U25^#(isList(activate(V1)), activate(V2))
, U24^#(tt(), V1, V2) -> isList^#(activate(V1))
, U25^#(tt(), V2) -> isList^#(activate(V2))
, isList^#(V) -> U11^#(isPalListKind(activate(V)), activate(V))
, isList^#(V) -> isPalListKind^#(activate(V))
, isList^#(n____(V1, V2)) -> isPalListKind^#(activate(V1))
, isList^#(n____(V1, V2)) ->
U21^#(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, U42^#(tt(), V1, V2) ->
U43^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, U43^#(tt(), V1, V2) ->
U44^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44^#(tt(), V1, V2) -> isList^#(activate(V1))
, U44^#(tt(), V1, V2) -> U45^#(isList(activate(V1)), activate(V2))
, U45^#(tt(), V2) -> isNeList^#(activate(V2))
, U52^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, U52^#(tt(), V1, V2) ->
U53^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53^#(tt(), V1, V2) -> isPalListKind^#(activate(V2))
, U53^#(tt(), V1, V2) ->
U54^#(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54^#(tt(), V1, V2) -> isNeList^#(activate(V1))
, U54^#(tt(), V1, V2) ->
U55^#(isNeList(activate(V1)), activate(V2))
, U55^#(tt(), V2) -> isList^#(activate(V2))
, U61^#(tt(), V) -> isPalListKind^#(activate(V))
, U71^#(tt(), I, P) -> isPalListKind^#(activate(I))
, U71^#(tt(), I, P) ->
U72^#(isPalListKind(activate(I)), activate(P))
, U72^#(tt(), P) -> U73^#(isPal(activate(P)), activate(P))
, U72^#(tt(), P) -> isPal^#(activate(P))
, U73^#(tt(), P) -> isPalListKind^#(activate(P))
, isPal^#(V) -> isPalListKind^#(activate(V))
, isPal^#(V) -> U81^#(isPalListKind(activate(V)), activate(V))
, U81^#(tt(), V) -> isPalListKind^#(activate(V))
, U81^#(tt(), V) -> U82^#(isPalListKind(activate(V)), activate(V))
, U82^#(tt(), V) -> isNePal^#(activate(V))
, isNePal^#(V) -> isPalListKind^#(activate(V))
, isNePal^#(V) -> U61^#(isPalListKind(activate(V)), activate(V)) }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
No rule is usable, rules are removed from the input problem.
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Rules: Empty
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
Empty rules are trivially bounded
S) We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Strict DPs:
{ U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U82^#(tt(), V) -> c_32(isNePal^#(activate(V)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
Weak DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
We estimate the number of application of {1} by applications of
Pre({1}) = {5}. Here rules are labeled as follows:
DPs:
{ 1: U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, 2: isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 3: U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 4: U82^#(tt(), V) -> c_32(isNePal^#(activate(V)))
, 5: isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 6: U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 7: U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, 8: isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, 9: isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 10: isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 11: isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 12: U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, 13: U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, 14: U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 15: U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 16: U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 17: U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 18: U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 19: U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 20: U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, 21: isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 22: isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 23: U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 24: U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 25: U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 26: U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, 27: U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 28: U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 29: U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, 30: U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, 31: U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, 32: U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, 33: U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Strict DPs:
{ isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U82^#(tt(), V) -> c_32(isNePal^#(activate(V)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
Weak DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
We estimate the number of application of {4} by applications of
Pre({4}) = {3}. Here rules are labeled as follows:
DPs:
{ 1: isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 2: U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 3: U82^#(tt(), V) -> c_32(isNePal^#(activate(V)))
, 4: isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 5: U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 6: U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, 7: isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, 8: isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 9: isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 10: isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 11: U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, 12: U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, 13: U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 14: U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 15: U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 16: U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 17: U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 18: U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 19: U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, 20: isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 21: isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 22: U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 23: U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 24: U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 25: U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, 26: U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 27: U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 28: U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, 29: U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, 30: U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, 31: U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, 32: U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, 33: U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Strict DPs:
{ isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U82^#(tt(), V) -> c_32(isNePal^#(activate(V))) }
Weak DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
We estimate the number of application of {3} by applications of
Pre({3}) = {2}. Here rules are labeled as follows:
DPs:
{ 1: isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 2: U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 3: U82^#(tt(), V) -> c_32(isNePal^#(activate(V)))
, 4: U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 5: U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, 6: isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, 7: isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 8: isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 9: isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 10: U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, 11: U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, 12: U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 13: U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 14: U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 15: U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 16: U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 17: U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 18: U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, 19: isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 20: isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 21: U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 22: U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 23: U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 24: U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, 25: U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 26: U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 27: U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, 28: U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, 29: U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, 30: U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, 31: U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, 32: U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P)))
, 33: isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Strict DPs:
{ isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
Weak DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P)))
, U82^#(tt(), V) -> c_32(isNePal^#(activate(V)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
We estimate the number of application of {2} by applications of
Pre({2}) = {1}. Here rules are labeled as follows:
DPs:
{ 1: isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 2: U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 3: U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 4: U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, 5: isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, 6: isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 7: isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 8: isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 9: U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, 10: U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, 11: U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 12: U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 13: U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 14: U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 15: U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 16: U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 17: U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, 18: isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 19: isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 20: U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 21: U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 22: U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 23: U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, 24: U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 25: U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 26: U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, 27: U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, 28: U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, 29: U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, 30: U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, 31: U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P)))
, 32: U82^#(tt(), V) -> c_32(isNePal^#(activate(V)))
, 33: isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Strict DPs:
{ isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
Weak DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U82^#(tt(), V) -> c_32(isNePal^#(activate(V)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
The following weak DPs constitute a sub-graph of the DG that is
closed under successors. The DPs are removed.
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U82^#(tt(), V) -> c_32(isNePal^#(activate(V)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Strict DPs:
{ isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
Weak DPs:
{ U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)),
isPal^#(activate(P))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
Due to missing edges in the dependency-graph, the right-hand sides
of following rules could be simplified:
{ U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Strict DPs: { isPal^#(V) -> c_1() }
Weak DPs:
{ U71^#(tt(), I, P) ->
c_2(U72^#(isPalListKind(activate(I)), activate(P)))
, U72^#(tt(), P) -> c_3(isPal^#(activate(P))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
We replace rewrite rules by usable rules:
Weak Usable Rules:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Strict DPs: { isPal^#(V) -> c_1() }
Weak DPs:
{ U71^#(tt(), I, P) ->
c_2(U72^#(isPalListKind(activate(I)), activate(P)))
, U72^#(tt(), P) -> c_3(isPal^#(activate(P))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
The dependency graph contains no loops, we remove all dependency
pairs.
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
No rule is usable, rules are removed from the input problem.
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Rules: Empty
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
Empty rules are trivially bounded
S) We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^1)).
Strict DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) }
Weak DPs:
{ isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U82^#(tt(), V) -> c_32(isNePal^#(activate(V)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^1))
We estimate the number of application of {6} by applications of
Pre({6}) = {3}. Here rules are labeled as follows:
DPs:
{ 1: U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 2: U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, 3: isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 4: isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 5: isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 6: U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, 7: U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 8: U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 9: U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 10: U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 11: U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 12: U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 13: U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, 14: isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 15: isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 16: U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 17: U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 18: U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 19: U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, 20: U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 21: U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 22: U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, 23: U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, 24: U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P)))
, 25: isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, 26: U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, 27: U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, 28: U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, 29: U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, 30: isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 31: U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 32: U82^#(tt(), V) -> c_32(isNePal^#(activate(V)))
, 33: isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^1)).
Strict DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) }
Weak DPs:
{ isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U82^#(tt(), V) -> c_32(isNePal^#(activate(V)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^1))
We estimate the number of application of {3} by applications of
Pre({3}) = {2,18,21}. Here rules are labeled as follows:
DPs:
{ 1: U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 2: U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, 3: isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 4: isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 5: isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 6: U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, 7: U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 8: U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 9: U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 10: U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 11: U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 12: U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, 13: isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 14: isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, 15: U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 16: U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 17: U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 18: U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, 19: U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 20: U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, 21: U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, 22: U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, 23: U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P)))
, 24: isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, 25: U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, 26: U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, 27: U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, 28: U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, 29: U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, 30: isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 31: U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, 32: U82^#(tt(), V) -> c_32(isNePal^#(activate(V)))
, 33: isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^1)).
Strict DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) }
Weak DPs:
{ isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U82^#(tt(), V) -> c_32(isNePal^#(activate(V)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^1))
The following weak DPs constitute a sub-graph of the DG that is
closed under successors. The DPs are removed.
{ isPalListKind^#(n____(V1, V2)) ->
c_3(U91^#(isPalListKind(activate(V1)), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(V) ->
c_4(U31^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U91^#(tt(), V2) -> c_7(isPalListKind^#(activate(V2)))
, U31^#(tt(), V) -> c_8(isPalListKind^#(activate(V)))
, U61^#(tt(), V) -> c_26(isPalListKind^#(activate(V)))
, isPal^#(V) ->
c_30(U81^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U81^#(tt(), V) ->
c_31(U82^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U82^#(tt(), V) -> c_32(isNePal^#(activate(V)))
, isNePal^#(V) ->
c_33(U61^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V))) }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^1)).
Strict DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U24^#(tt(), V1, V2) ->
c_14(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_15(isList^#(activate(V2)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U44^#(tt(), V1, V2) ->
c_20(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_21(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U54^#(tt(), V1, V2) ->
c_24(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_25(isList^#(activate(V2)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) }
Weak DPs:
{ U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)),
isPal^#(activate(P))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^1))
Due to missing edges in the dependency-graph, the right-hand sides
of following rules could be simplified:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_5(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, isNeList^#(n____(V1, V2)) ->
c_6(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U41^#(tt(), V1, V2) ->
c_9(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)),
isPalListKind^#(activate(V1)))
, U51^#(tt(), V1, V2) ->
c_10(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U21^#(tt(), V1, V2) ->
c_11(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U22^#(tt(), V1, V2) ->
c_12(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U23^#(tt(), V1, V2) ->
c_13(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, isList^#(V) ->
c_16(U11^#(isPalListKind(activate(V)), activate(V)),
isPalListKind^#(activate(V)))
, isList^#(n____(V1, V2)) ->
c_17(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V1)))
, U42^#(tt(), V1, V2) ->
c_18(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U43^#(tt(), V1, V2) ->
c_19(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_22(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U53^#(tt(), V1, V2) ->
c_23(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)),
isPalListKind^#(activate(V2)))
, U71^#(tt(), I, P) ->
c_27(U72^#(isPalListKind(activate(I)), activate(P)),
isPalListKind^#(activate(I)))
, U72^#(tt(), P) ->
c_28(U73^#(isPal(activate(P)), activate(P)), isPal^#(activate(P)))
, U73^#(tt(), P) -> c_29(isPalListKind^#(activate(P))) }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^1)).
Strict DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_3(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, isNeList^#(n____(V1, V2)) ->
c_4(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U41^#(tt(), V1, V2) ->
c_5(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U51^#(tt(), V1, V2) ->
c_6(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U21^#(tt(), V1, V2) ->
c_7(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U22^#(tt(), V1, V2) ->
c_8(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U23^#(tt(), V1, V2) ->
c_9(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U24^#(tt(), V1, V2) ->
c_10(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_11(isList^#(activate(V2)))
, isList^#(V) ->
c_12(U11^#(isPalListKind(activate(V)), activate(V)))
, isList^#(n____(V1, V2)) ->
c_13(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, U42^#(tt(), V1, V2) ->
c_14(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U43^#(tt(), V1, V2) ->
c_15(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U44^#(tt(), V1, V2) ->
c_16(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_17(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_18(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U53^#(tt(), V1, V2) ->
c_19(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U54^#(tt(), V1, V2) ->
c_20(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_21(isList^#(activate(V2)))
, U73^#(tt(), P) -> c_22() }
Weak DPs:
{ U71^#(tt(), I, P) ->
c_23(U72^#(isPalListKind(activate(I)), activate(P)))
, U72^#(tt(), P) -> c_24(U73^#(isPal(activate(P)), activate(P))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^1))
We analyse the complexity of following sub-problems (R) and (S).
Problem (S) is obtained from the input problem by shifting strict
rules from (R) into the weak component:
Problem (R):
------------
Strict DPs: { U73^#(tt(), P) -> c_22() }
Weak DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_3(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, isNeList^#(n____(V1, V2)) ->
c_4(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U41^#(tt(), V1, V2) ->
c_5(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U51^#(tt(), V1, V2) ->
c_6(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U21^#(tt(), V1, V2) ->
c_7(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U22^#(tt(), V1, V2) ->
c_8(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U23^#(tt(), V1, V2) ->
c_9(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U24^#(tt(), V1, V2) ->
c_10(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_11(isList^#(activate(V2)))
, isList^#(V) ->
c_12(U11^#(isPalListKind(activate(V)), activate(V)))
, isList^#(n____(V1, V2)) ->
c_13(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, U42^#(tt(), V1, V2) ->
c_14(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U43^#(tt(), V1, V2) ->
c_15(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U44^#(tt(), V1, V2) ->
c_16(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_17(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_18(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U53^#(tt(), V1, V2) ->
c_19(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U54^#(tt(), V1, V2) ->
c_20(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_21(isList^#(activate(V2)))
, U71^#(tt(), I, P) ->
c_23(U72^#(isPalListKind(activate(I)), activate(P)))
, U72^#(tt(), P) -> c_24(U73^#(isPal(activate(P)), activate(P))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
StartTerms: basic terms
Strategy: innermost
Problem (S):
------------
Strict DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_3(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, isNeList^#(n____(V1, V2)) ->
c_4(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U41^#(tt(), V1, V2) ->
c_5(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U51^#(tt(), V1, V2) ->
c_6(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U21^#(tt(), V1, V2) ->
c_7(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U22^#(tt(), V1, V2) ->
c_8(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U23^#(tt(), V1, V2) ->
c_9(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U24^#(tt(), V1, V2) ->
c_10(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_11(isList^#(activate(V2)))
, isList^#(V) ->
c_12(U11^#(isPalListKind(activate(V)), activate(V)))
, isList^#(n____(V1, V2)) ->
c_13(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, U42^#(tt(), V1, V2) ->
c_14(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U43^#(tt(), V1, V2) ->
c_15(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U44^#(tt(), V1, V2) ->
c_16(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_17(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_18(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U53^#(tt(), V1, V2) ->
c_19(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U54^#(tt(), V1, V2) ->
c_20(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_21(isList^#(activate(V2))) }
Weak DPs:
{ U71^#(tt(), I, P) ->
c_23(U72^#(isPalListKind(activate(I)), activate(P)))
, U72^#(tt(), P) -> c_24(U73^#(isPal(activate(P)), activate(P)))
, U73^#(tt(), P) -> c_22() }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
StartTerms: basic terms
Strategy: innermost
Overall, the transformation results in the following sub-problem(s):
Generated new problems:
-----------------------
R) Strict DPs: { U73^#(tt(), P) -> c_22() }
Weak DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_3(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, isNeList^#(n____(V1, V2)) ->
c_4(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U41^#(tt(), V1, V2) ->
c_5(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U51^#(tt(), V1, V2) ->
c_6(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U21^#(tt(), V1, V2) ->
c_7(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U22^#(tt(), V1, V2) ->
c_8(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U23^#(tt(), V1, V2) ->
c_9(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U24^#(tt(), V1, V2) ->
c_10(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_11(isList^#(activate(V2)))
, isList^#(V) ->
c_12(U11^#(isPalListKind(activate(V)), activate(V)))
, isList^#(n____(V1, V2)) ->
c_13(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, U42^#(tt(), V1, V2) ->
c_14(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U43^#(tt(), V1, V2) ->
c_15(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U44^#(tt(), V1, V2) ->
c_16(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_17(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_18(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U53^#(tt(), V1, V2) ->
c_19(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U54^#(tt(), V1, V2) ->
c_20(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_21(isList^#(activate(V2)))
, U71^#(tt(), I, P) ->
c_23(U72^#(isPalListKind(activate(I)), activate(P)))
, U72^#(tt(), P) -> c_24(U73^#(isPal(activate(P)), activate(P))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
StartTerms: basic terms
Strategy: innermost
This problem was proven YES(O(1),O(1)).
S) Strict DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_3(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, isNeList^#(n____(V1, V2)) ->
c_4(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U41^#(tt(), V1, V2) ->
c_5(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U51^#(tt(), V1, V2) ->
c_6(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U21^#(tt(), V1, V2) ->
c_7(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U22^#(tt(), V1, V2) ->
c_8(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U23^#(tt(), V1, V2) ->
c_9(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U24^#(tt(), V1, V2) ->
c_10(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_11(isList^#(activate(V2)))
, isList^#(V) ->
c_12(U11^#(isPalListKind(activate(V)), activate(V)))
, isList^#(n____(V1, V2)) ->
c_13(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, U42^#(tt(), V1, V2) ->
c_14(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U43^#(tt(), V1, V2) ->
c_15(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U44^#(tt(), V1, V2) ->
c_16(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_17(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_18(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U53^#(tt(), V1, V2) ->
c_19(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U54^#(tt(), V1, V2) ->
c_20(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_21(isList^#(activate(V2))) }
Weak DPs:
{ U71^#(tt(), I, P) ->
c_23(U72^#(isPalListKind(activate(I)), activate(P)))
, U72^#(tt(), P) -> c_24(U73^#(isPal(activate(P)), activate(P)))
, U73^#(tt(), P) -> c_22() }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
StartTerms: basic terms
Strategy: innermost
This problem was proven YES(O(1),O(n^1)).
Proofs for generated problems:
------------------------------
R) We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Strict DPs: { U73^#(tt(), P) -> c_22() }
Weak DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_3(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, isNeList^#(n____(V1, V2)) ->
c_4(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U41^#(tt(), V1, V2) ->
c_5(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U51^#(tt(), V1, V2) ->
c_6(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U21^#(tt(), V1, V2) ->
c_7(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U22^#(tt(), V1, V2) ->
c_8(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U23^#(tt(), V1, V2) ->
c_9(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U24^#(tt(), V1, V2) ->
c_10(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_11(isList^#(activate(V2)))
, isList^#(V) ->
c_12(U11^#(isPalListKind(activate(V)), activate(V)))
, isList^#(n____(V1, V2)) ->
c_13(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, U42^#(tt(), V1, V2) ->
c_14(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U43^#(tt(), V1, V2) ->
c_15(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U44^#(tt(), V1, V2) ->
c_16(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_17(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_18(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U53^#(tt(), V1, V2) ->
c_19(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U54^#(tt(), V1, V2) ->
c_20(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_21(isList^#(activate(V2)))
, U71^#(tt(), I, P) ->
c_23(U72^#(isPalListKind(activate(I)), activate(P)))
, U72^#(tt(), P) -> c_24(U73^#(isPal(activate(P)), activate(P))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
The following weak DPs constitute a sub-graph of the DG that is
closed under successors. The DPs are removed.
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_3(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, isNeList^#(n____(V1, V2)) ->
c_4(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U41^#(tt(), V1, V2) ->
c_5(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U51^#(tt(), V1, V2) ->
c_6(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U21^#(tt(), V1, V2) ->
c_7(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U22^#(tt(), V1, V2) ->
c_8(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U23^#(tt(), V1, V2) ->
c_9(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U24^#(tt(), V1, V2) ->
c_10(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_11(isList^#(activate(V2)))
, isList^#(V) ->
c_12(U11^#(isPalListKind(activate(V)), activate(V)))
, isList^#(n____(V1, V2)) ->
c_13(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, U42^#(tt(), V1, V2) ->
c_14(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U43^#(tt(), V1, V2) ->
c_15(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U44^#(tt(), V1, V2) ->
c_16(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_17(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_18(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U53^#(tt(), V1, V2) ->
c_19(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U54^#(tt(), V1, V2) ->
c_20(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_21(isList^#(activate(V2))) }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Strict DPs: { U73^#(tt(), P) -> c_22() }
Weak DPs:
{ U71^#(tt(), I, P) ->
c_23(U72^#(isPalListKind(activate(I)), activate(P)))
, U72^#(tt(), P) -> c_24(U73^#(isPal(activate(P)), activate(P))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
The dependency graph contains no loops, we remove all dependency
pairs.
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
No rule is usable, rules are removed from the input problem.
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Rules: Empty
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
Empty rules are trivially bounded
S) We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^1)).
Strict DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_3(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, isNeList^#(n____(V1, V2)) ->
c_4(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U41^#(tt(), V1, V2) ->
c_5(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U51^#(tt(), V1, V2) ->
c_6(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U21^#(tt(), V1, V2) ->
c_7(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U22^#(tt(), V1, V2) ->
c_8(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U23^#(tt(), V1, V2) ->
c_9(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U24^#(tt(), V1, V2) ->
c_10(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_11(isList^#(activate(V2)))
, isList^#(V) ->
c_12(U11^#(isPalListKind(activate(V)), activate(V)))
, isList^#(n____(V1, V2)) ->
c_13(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, U42^#(tt(), V1, V2) ->
c_14(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U43^#(tt(), V1, V2) ->
c_15(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U44^#(tt(), V1, V2) ->
c_16(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_17(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_18(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U53^#(tt(), V1, V2) ->
c_19(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U54^#(tt(), V1, V2) ->
c_20(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_21(isList^#(activate(V2))) }
Weak DPs:
{ U71^#(tt(), I, P) ->
c_23(U72^#(isPalListKind(activate(I)), activate(P)))
, U72^#(tt(), P) -> c_24(U73^#(isPal(activate(P)), activate(P)))
, U73^#(tt(), P) -> c_22() }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^1))
The following weak DPs constitute a sub-graph of the DG that is
closed under successors. The DPs are removed.
{ U71^#(tt(), I, P) ->
c_23(U72^#(isPalListKind(activate(I)), activate(P)))
, U72^#(tt(), P) -> c_24(U73^#(isPal(activate(P)), activate(P)))
, U73^#(tt(), P) -> c_22() }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^1)).
Strict DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_3(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, isNeList^#(n____(V1, V2)) ->
c_4(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U41^#(tt(), V1, V2) ->
c_5(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U51^#(tt(), V1, V2) ->
c_6(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U21^#(tt(), V1, V2) ->
c_7(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U22^#(tt(), V1, V2) ->
c_8(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U23^#(tt(), V1, V2) ->
c_9(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U24^#(tt(), V1, V2) ->
c_10(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_11(isList^#(activate(V2)))
, isList^#(V) ->
c_12(U11^#(isPalListKind(activate(V)), activate(V)))
, isList^#(n____(V1, V2)) ->
c_13(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, U42^#(tt(), V1, V2) ->
c_14(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U43^#(tt(), V1, V2) ->
c_15(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U44^#(tt(), V1, V2) ->
c_16(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_17(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_18(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U53^#(tt(), V1, V2) ->
c_19(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U54^#(tt(), V1, V2) ->
c_20(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_21(isList^#(activate(V2))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U61(tt(), V) -> U62(isPalListKind(activate(V)), activate(V))
, U62(tt(), V) -> U63(isQid(activate(V)))
, U63(tt()) -> tt()
, isPal(V) -> U81(isPalListKind(activate(V)), activate(V))
, isPal(n__nil()) -> tt()
, U81(tt(), V) -> U82(isPalListKind(activate(V)), activate(V))
, U82(tt(), V) -> U83(isNePal(activate(V)))
, U83(tt()) -> tt()
, isNePal(V) -> U61(isPalListKind(activate(V)), activate(V))
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^1))
We replace rewrite rules by usable rules:
Weak Usable Rules:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^1)).
Strict DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_3(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, isNeList^#(n____(V1, V2)) ->
c_4(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U41^#(tt(), V1, V2) ->
c_5(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U51^#(tt(), V1, V2) ->
c_6(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U21^#(tt(), V1, V2) ->
c_7(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U22^#(tt(), V1, V2) ->
c_8(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U23^#(tt(), V1, V2) ->
c_9(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U24^#(tt(), V1, V2) ->
c_10(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_11(isList^#(activate(V2)))
, isList^#(V) ->
c_12(U11^#(isPalListKind(activate(V)), activate(V)))
, isList^#(n____(V1, V2)) ->
c_13(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, U42^#(tt(), V1, V2) ->
c_14(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U43^#(tt(), V1, V2) ->
c_15(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U44^#(tt(), V1, V2) ->
c_16(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_17(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_18(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U53^#(tt(), V1, V2) ->
c_19(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U54^#(tt(), V1, V2) ->
c_20(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_21(isList^#(activate(V2))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^1))
We use the processor 'matrix interpretation of dimension 1' to
orient following rules strictly.
DPs:
{ 3: isNeList^#(n____(V1, V2)) ->
c_3(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, 4: isNeList^#(n____(V1, V2)) ->
c_4(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, 5: U41^#(tt(), V1, V2) ->
c_5(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, 8: U22^#(tt(), V1, V2) ->
c_8(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, 10: U24^#(tt(), V1, V2) ->
c_10(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 11: U25^#(tt(), V2) -> c_11(isList^#(activate(V2)))
, 12: isList^#(V) ->
c_12(U11^#(isPalListKind(activate(V)), activate(V)))
, 13: isList^#(n____(V1, V2)) ->
c_13(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, 15: U43^#(tt(), V1, V2) ->
c_15(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, 16: U44^#(tt(), V1, V2) ->
c_16(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 18: U52^#(tt(), V1, V2) ->
c_18(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2))) }
Trs:
{ isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isQid(n__a()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__u()) -> tt()
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt() }
Sub-proof:
----------
The following argument positions are usable:
Uargs(c_1) = {1}, Uargs(c_2) = {1}, Uargs(c_3) = {1},
Uargs(c_4) = {1}, Uargs(c_5) = {1}, Uargs(c_6) = {1},
Uargs(c_7) = {1}, Uargs(c_8) = {1}, Uargs(c_9) = {1},
Uargs(c_10) = {1, 2}, Uargs(c_11) = {1}, Uargs(c_12) = {1},
Uargs(c_13) = {1}, Uargs(c_14) = {1}, Uargs(c_15) = {1},
Uargs(c_16) = {1, 2}, Uargs(c_17) = {1}, Uargs(c_18) = {1},
Uargs(c_19) = {1}, Uargs(c_20) = {1, 2}, Uargs(c_21) = {1}
TcT has computed the following constructor-based matrix
interpretation satisfying not(EDA).
[__](x1, x2) = [1] x1 + [1] x2 + [2]
[nil] = [2]
[U11](x1, x2) = [3] x2 + [3]
[tt] = [5]
[U12](x1, x2) = [3] x2 + [3]
[isPalListKind](x1) = [1] x1 + [5]
[activate](x1) = [1] x1 + [0]
[U13](x1) = [1] x1 + [0]
[isNeList](x1) = [2] x1 + [3]
[U21](x1, x2, x3) = [1] x1 + [2] x2 + [3] x3 + [7]
[U22](x1, x2, x3) = [1] x1 + [3] x3 + [6]
[U23](x1, x2, x3) = [2] x1 + [1] x3 + [1]
[U24](x1, x2, x3) = [1] x1 + [0]
[U25](x1, x2) = [5]
[isList](x1) = [3] x1 + [7]
[U26](x1) = [5]
[U31](x1, x2) = [2] x2 + [3]
[U32](x1, x2) = [2] x2 + [3]
[U33](x1) = [1] x1 + [0]
[isQid](x1) = [1] x1 + [3]
[U41](x1, x2, x3) = [2] x2 + [2] x3 + [3]
[U42](x1, x2, x3) = [2] x2 + [2] x3 + [3]
[U43](x1, x2, x3) = [2] x2 + [2] x3 + [3]
[U44](x1, x2, x3) = [2] x2 + [2] x3 + [3]
[U45](x1, x2) = [2] x2 + [3]
[U46](x1) = [1] x1 + [0]
[U51](x1, x2, x3) = [2] x2 + [2] x3 + [6]
[U52](x1, x2, x3) = [2] x2 + [2] x3 + [6]
[U53](x1, x2, x3) = [2] x2 + [2] x3 + [6]
[U54](x1, x2, x3) = [1] x1 + [2] x2 + [1] x3 + [0]
[U55](x1, x2) = [1] x1 + [2]
[U56](x1) = [6]
[U91](x1, x2) = [5]
[U92](x1) = [5]
[n__nil] = [2]
[n____](x1, x2) = [1] x1 + [1] x2 + [2]
[n__a] = [3]
[n__e] = [2]
[n__i] = [3]
[n__o] = [2]
[n__u] = [3]
[a] = [3]
[e] = [2]
[i] = [3]
[o] = [2]
[u] = [3]
[U11^#](x1, x2) = [7] x2 + [0]
[U12^#](x1, x2) = [7] x2 + [0]
[isNeList^#](x1) = [7] x1 + [0]
[U41^#](x1, x2, x3) = [7] x2 + [7] x3 + [7]
[U51^#](x1, x2, x3) = [7] x2 + [7] x3 + [3]
[U21^#](x1, x2, x3) = [7] x2 + [7] x3 + [6]
[U22^#](x1, x2, x3) = [7] x2 + [7] x3 + [6]
[U23^#](x1, x2, x3) = [7] x2 + [7] x3 + [4]
[U24^#](x1, x2, x3) = [7] x2 + [7] x3 + [4]
[U25^#](x1, x2) = [7] x2 + [2]
[isList^#](x1) = [7] x1 + [1]
[U42^#](x1, x2, x3) = [7] x2 + [7] x3 + [4]
[U43^#](x1, x2, x3) = [7] x2 + [7] x3 + [4]
[U44^#](x1, x2, x3) = [7] x2 + [7] x3 + [3]
[U45^#](x1, x2) = [7] x2 + [0]
[U52^#](x1, x2, x3) = [7] x2 + [7] x3 + [3]
[U53^#](x1, x2, x3) = [7] x2 + [7] x3 + [1]
[U54^#](x1, x2, x3) = [7] x2 + [7] x3 + [1]
[U55^#](x1, x2) = [7] x2 + [1]
[c_1](x1) = [1] x1 + [0]
[c_2](x1) = [1] x1 + [0]
[c_3](x1) = [1] x1 + [0]
[c_4](x1) = [1] x1 + [1]
[c_5](x1) = [1] x1 + [1]
[c_6](x1) = [1] x1 + [0]
[c_7](x1) = [1] x1 + [0]
[c_8](x1) = [1] x1 + [1]
[c_9](x1) = [1] x1 + [0]
[c_10](x1, x2) = [1] x1 + [1] x2 + [0]
[c_11](x1) = [1] x1 + [0]
[c_12](x1) = [1] x1 + [0]
[c_13](x1) = [1] x1 + [2]
[c_14](x1) = [1] x1 + [0]
[c_15](x1) = [1] x1 + [0]
[c_16](x1, x2) = [1] x1 + [1] x2 + [0]
[c_17](x1) = [1] x1 + [0]
[c_18](x1) = [1] x1 + [1]
[c_19](x1) = [1] x1 + [0]
[c_20](x1, x2) = [1] x1 + [1] x2 + [0]
[c_21](x1) = [1] x1 + [0]
The order satisfies the following ordering constraints:
[__(X1, X2)] = [1] X1 + [1] X2 + [2]
>= [1] X1 + [1] X2 + [2]
= [n____(X1, X2)]
[nil()] = [2]
>= [2]
= [n__nil()]
[U11(tt(), V)] = [3] V + [3]
>= [3] V + [3]
= [U12(isPalListKind(activate(V)), activate(V))]
[U12(tt(), V)] = [3] V + [3]
>= [2] V + [3]
= [U13(isNeList(activate(V)))]
[isPalListKind(n__nil())] = [7]
> [5]
= [tt()]
[isPalListKind(n____(V1, V2))] = [1] V1 + [1] V2 + [7]
> [5]
= [U91(isPalListKind(activate(V1)), activate(V2))]
[isPalListKind(n__a())] = [8]
> [5]
= [tt()]
[isPalListKind(n__e())] = [7]
> [5]
= [tt()]
[isPalListKind(n__i())] = [8]
> [5]
= [tt()]
[isPalListKind(n__o())] = [7]
> [5]
= [tt()]
[isPalListKind(n__u())] = [8]
> [5]
= [tt()]
[activate(X)] = [1] X + [0]
>= [1] X + [0]
= [X]
[activate(n__nil())] = [2]
>= [2]
= [nil()]
[activate(n____(X1, X2))] = [1] X1 + [1] X2 + [2]
>= [1] X1 + [1] X2 + [2]
= [__(X1, X2)]
[activate(n__a())] = [3]
>= [3]
= [a()]
[activate(n__e())] = [2]
>= [2]
= [e()]
[activate(n__i())] = [3]
>= [3]
= [i()]
[activate(n__o())] = [2]
>= [2]
= [o()]
[activate(n__u())] = [3]
>= [3]
= [u()]
[U13(tt())] = [5]
>= [5]
= [tt()]
[isNeList(V)] = [2] V + [3]
>= [2] V + [3]
= [U31(isPalListKind(activate(V)), activate(V))]
[isNeList(n____(V1, V2))] = [2] V1 + [2] V2 + [7]
> [2] V1 + [2] V2 + [3]
= [U41(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[isNeList(n____(V1, V2))] = [2] V1 + [2] V2 + [7]
> [2] V1 + [2] V2 + [6]
= [U51(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U21(tt(), V1, V2)] = [2] V1 + [3] V2 + [12]
> [1] V1 + [3] V2 + [11]
= [U22(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U22(tt(), V1, V2)] = [3] V2 + [11]
>= [3] V2 + [11]
= [U23(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U23(tt(), V1, V2)] = [1] V2 + [11]
> [1] V2 + [5]
= [U24(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U24(tt(), V1, V2)] = [5]
>= [5]
= [U25(isList(activate(V1)), activate(V2))]
[U25(tt(), V2)] = [5]
>= [5]
= [U26(isList(activate(V2)))]
[isList(V)] = [3] V + [7]
> [3] V + [3]
= [U11(isPalListKind(activate(V)), activate(V))]
[isList(n__nil())] = [13]
> [5]
= [tt()]
[isList(n____(V1, V2))] = [3] V1 + [3] V2 + [13]
> [3] V1 + [3] V2 + [12]
= [U21(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U26(tt())] = [5]
>= [5]
= [tt()]
[U31(tt(), V)] = [2] V + [3]
>= [2] V + [3]
= [U32(isPalListKind(activate(V)), activate(V))]
[U32(tt(), V)] = [2] V + [3]
>= [1] V + [3]
= [U33(isQid(activate(V)))]
[U33(tt())] = [5]
>= [5]
= [tt()]
[isQid(n__a())] = [6]
> [5]
= [tt()]
[isQid(n__e())] = [5]
>= [5]
= [tt()]
[isQid(n__i())] = [6]
> [5]
= [tt()]
[isQid(n__o())] = [5]
>= [5]
= [tt()]
[isQid(n__u())] = [6]
> [5]
= [tt()]
[U41(tt(), V1, V2)] = [2] V1 + [2] V2 + [3]
>= [2] V1 + [2] V2 + [3]
= [U42(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U42(tt(), V1, V2)] = [2] V1 + [2] V2 + [3]
>= [2] V1 + [2] V2 + [3]
= [U43(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U43(tt(), V1, V2)] = [2] V1 + [2] V2 + [3]
>= [2] V1 + [2] V2 + [3]
= [U44(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U44(tt(), V1, V2)] = [2] V1 + [2] V2 + [3]
>= [2] V2 + [3]
= [U45(isList(activate(V1)), activate(V2))]
[U45(tt(), V2)] = [2] V2 + [3]
>= [2] V2 + [3]
= [U46(isNeList(activate(V2)))]
[U46(tt())] = [5]
>= [5]
= [tt()]
[U51(tt(), V1, V2)] = [2] V1 + [2] V2 + [6]
>= [2] V1 + [2] V2 + [6]
= [U52(isPalListKind(activate(V1)), activate(V1), activate(V2))]
[U52(tt(), V1, V2)] = [2] V1 + [2] V2 + [6]
>= [2] V1 + [2] V2 + [6]
= [U53(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U53(tt(), V1, V2)] = [2] V1 + [2] V2 + [6]
> [2] V1 + [2] V2 + [5]
= [U54(isPalListKind(activate(V2)), activate(V1), activate(V2))]
[U54(tt(), V1, V2)] = [2] V1 + [1] V2 + [5]
>= [2] V1 + [5]
= [U55(isNeList(activate(V1)), activate(V2))]
[U55(tt(), V2)] = [7]
> [6]
= [U56(isList(activate(V2)))]
[U56(tt())] = [6]
> [5]
= [tt()]
[U91(tt(), V2)] = [5]
>= [5]
= [U92(isPalListKind(activate(V2)))]
[U92(tt())] = [5]
>= [5]
= [tt()]
[a()] = [3]
>= [3]
= [n__a()]
[e()] = [2]
>= [2]
= [n__e()]
[i()] = [3]
>= [3]
= [n__i()]
[o()] = [2]
>= [2]
= [n__o()]
[u()] = [3]
>= [3]
= [n__u()]
[U11^#(tt(), V)] = [7] V + [0]
>= [7] V + [0]
= [c_1(U12^#(isPalListKind(activate(V)), activate(V)))]
[U12^#(tt(), V)] = [7] V + [0]
>= [7] V + [0]
= [c_2(isNeList^#(activate(V)))]
[isNeList^#(n____(V1, V2))] = [7] V1 + [7] V2 + [14]
> [7] V1 + [7] V2 + [7]
= [c_3(U41^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))]
[isNeList^#(n____(V1, V2))] = [7] V1 + [7] V2 + [14]
> [7] V1 + [7] V2 + [4]
= [c_4(U51^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))]
[U41^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [7]
> [7] V1 + [7] V2 + [5]
= [c_5(U42^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))]
[U51^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [3]
>= [7] V1 + [7] V2 + [3]
= [c_6(U52^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))]
[U21^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [6]
>= [7] V1 + [7] V2 + [6]
= [c_7(U22^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))]
[U22^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [6]
> [7] V1 + [7] V2 + [5]
= [c_8(U23^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))]
[U23^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [4]
>= [7] V1 + [7] V2 + [4]
= [c_9(U24^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))]
[U24^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [4]
> [7] V1 + [7] V2 + [3]
= [c_10(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))]
[U25^#(tt(), V2)] = [7] V2 + [2]
> [7] V2 + [1]
= [c_11(isList^#(activate(V2)))]
[isList^#(V)] = [7] V + [1]
> [7] V + [0]
= [c_12(U11^#(isPalListKind(activate(V)), activate(V)))]
[isList^#(n____(V1, V2))] = [7] V1 + [7] V2 + [15]
> [7] V1 + [7] V2 + [8]
= [c_13(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))]
[U42^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [4]
>= [7] V1 + [7] V2 + [4]
= [c_14(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))]
[U43^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [4]
> [7] V1 + [7] V2 + [3]
= [c_15(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))]
[U44^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [3]
> [7] V1 + [7] V2 + [1]
= [c_16(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))]
[U45^#(tt(), V2)] = [7] V2 + [0]
>= [7] V2 + [0]
= [c_17(isNeList^#(activate(V2)))]
[U52^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [3]
> [7] V1 + [7] V2 + [2]
= [c_18(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))]
[U53^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [1]
>= [7] V1 + [7] V2 + [1]
= [c_19(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))]
[U54^#(tt(), V1, V2)] = [7] V1 + [7] V2 + [1]
>= [7] V1 + [7] V2 + [1]
= [c_20(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))]
[U55^#(tt(), V2)] = [7] V2 + [1]
>= [7] V2 + [1]
= [c_21(isList^#(activate(V2)))]
We return to the main proof. Consider the set of all dependency
pairs
:
{ 1: U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)))
, 2: U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, 3: isNeList^#(n____(V1, V2)) ->
c_3(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, 4: isNeList^#(n____(V1, V2)) ->
c_4(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, 5: U41^#(tt(), V1, V2) ->
c_5(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, 6: U51^#(tt(), V1, V2) ->
c_6(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, 7: U21^#(tt(), V1, V2) ->
c_7(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, 8: U22^#(tt(), V1, V2) ->
c_8(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, 9: U23^#(tt(), V1, V2) ->
c_9(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, 10: U24^#(tt(), V1, V2) ->
c_10(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 11: U25^#(tt(), V2) -> c_11(isList^#(activate(V2)))
, 12: isList^#(V) ->
c_12(U11^#(isPalListKind(activate(V)), activate(V)))
, 13: isList^#(n____(V1, V2)) ->
c_13(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, 14: U42^#(tt(), V1, V2) ->
c_14(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, 15: U43^#(tt(), V1, V2) ->
c_15(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, 16: U44^#(tt(), V1, V2) ->
c_16(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, 17: U45^#(tt(), V2) -> c_17(isNeList^#(activate(V2)))
, 18: U52^#(tt(), V1, V2) ->
c_18(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, 19: U53^#(tt(), V1, V2) ->
c_19(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, 20: U54^#(tt(), V1, V2) ->
c_20(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, 21: U55^#(tt(), V2) -> c_21(isList^#(activate(V2))) }
Processor 'matrix interpretation of dimension 1' induces the
complexity certificate YES(?,O(n^1)) on application of dependency
pairs {3,4,5,8,10,11,12,13,15,16,18}. These cover all (indirect)
predecessors of dependency pairs
{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21}, their
number of application is equally bounded. The dependency pairs are
shifted into the weak component.
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Weak DPs:
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_3(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, isNeList^#(n____(V1, V2)) ->
c_4(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U41^#(tt(), V1, V2) ->
c_5(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U51^#(tt(), V1, V2) ->
c_6(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U21^#(tt(), V1, V2) ->
c_7(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U22^#(tt(), V1, V2) ->
c_8(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U23^#(tt(), V1, V2) ->
c_9(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U24^#(tt(), V1, V2) ->
c_10(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_11(isList^#(activate(V2)))
, isList^#(V) ->
c_12(U11^#(isPalListKind(activate(V)), activate(V)))
, isList^#(n____(V1, V2)) ->
c_13(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, U42^#(tt(), V1, V2) ->
c_14(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U43^#(tt(), V1, V2) ->
c_15(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U44^#(tt(), V1, V2) ->
c_16(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_17(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_18(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U53^#(tt(), V1, V2) ->
c_19(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U54^#(tt(), V1, V2) ->
c_20(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_21(isList^#(activate(V2))) }
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
The following weak DPs constitute a sub-graph of the DG that is
closed under successors. The DPs are removed.
{ U11^#(tt(), V) ->
c_1(U12^#(isPalListKind(activate(V)), activate(V)))
, U12^#(tt(), V) -> c_2(isNeList^#(activate(V)))
, isNeList^#(n____(V1, V2)) ->
c_3(U41^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, isNeList^#(n____(V1, V2)) ->
c_4(U51^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U41^#(tt(), V1, V2) ->
c_5(U42^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U51^#(tt(), V1, V2) ->
c_6(U52^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U21^#(tt(), V1, V2) ->
c_7(U22^#(isPalListKind(activate(V1)), activate(V1), activate(V2)))
, U22^#(tt(), V1, V2) ->
c_8(U23^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U23^#(tt(), V1, V2) ->
c_9(U24^#(isPalListKind(activate(V2)), activate(V1), activate(V2)))
, U24^#(tt(), V1, V2) ->
c_10(U25^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U25^#(tt(), V2) -> c_11(isList^#(activate(V2)))
, isList^#(V) ->
c_12(U11^#(isPalListKind(activate(V)), activate(V)))
, isList^#(n____(V1, V2)) ->
c_13(U21^#(isPalListKind(activate(V1)),
activate(V1),
activate(V2)))
, U42^#(tt(), V1, V2) ->
c_14(U43^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U43^#(tt(), V1, V2) ->
c_15(U44^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U44^#(tt(), V1, V2) ->
c_16(U45^#(isList(activate(V1)), activate(V2)),
isList^#(activate(V1)))
, U45^#(tt(), V2) -> c_17(isNeList^#(activate(V2)))
, U52^#(tt(), V1, V2) ->
c_18(U53^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U53^#(tt(), V1, V2) ->
c_19(U54^#(isPalListKind(activate(V2)),
activate(V1),
activate(V2)))
, U54^#(tt(), V1, V2) ->
c_20(U55^#(isNeList(activate(V1)), activate(V2)),
isNeList^#(activate(V1)))
, U55^#(tt(), V2) -> c_21(isList^#(activate(V2))) }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Weak Trs:
{ __(X1, X2) -> n____(X1, X2)
, nil() -> n__nil()
, U11(tt(), V) -> U12(isPalListKind(activate(V)), activate(V))
, U12(tt(), V) -> U13(isNeList(activate(V)))
, isPalListKind(n__nil()) -> tt()
, isPalListKind(n____(V1, V2)) ->
U91(isPalListKind(activate(V1)), activate(V2))
, isPalListKind(n__a()) -> tt()
, isPalListKind(n__e()) -> tt()
, isPalListKind(n__i()) -> tt()
, isPalListKind(n__o()) -> tt()
, isPalListKind(n__u()) -> tt()
, activate(X) -> X
, activate(n__nil()) -> nil()
, activate(n____(X1, X2)) -> __(X1, X2)
, activate(n__a()) -> a()
, activate(n__e()) -> e()
, activate(n__i()) -> i()
, activate(n__o()) -> o()
, activate(n__u()) -> u()
, U13(tt()) -> tt()
, isNeList(V) -> U31(isPalListKind(activate(V)), activate(V))
, isNeList(n____(V1, V2)) ->
U41(isPalListKind(activate(V1)), activate(V1), activate(V2))
, isNeList(n____(V1, V2)) ->
U51(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U21(tt(), V1, V2) ->
U22(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U22(tt(), V1, V2) ->
U23(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U23(tt(), V1, V2) ->
U24(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U24(tt(), V1, V2) -> U25(isList(activate(V1)), activate(V2))
, U25(tt(), V2) -> U26(isList(activate(V2)))
, isList(V) -> U11(isPalListKind(activate(V)), activate(V))
, isList(n__nil()) -> tt()
, isList(n____(V1, V2)) ->
U21(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U26(tt()) -> tt()
, U31(tt(), V) -> U32(isPalListKind(activate(V)), activate(V))
, U32(tt(), V) -> U33(isQid(activate(V)))
, U33(tt()) -> tt()
, isQid(n__a()) -> tt()
, isQid(n__e()) -> tt()
, isQid(n__i()) -> tt()
, isQid(n__o()) -> tt()
, isQid(n__u()) -> tt()
, U41(tt(), V1, V2) ->
U42(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U42(tt(), V1, V2) ->
U43(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U43(tt(), V1, V2) ->
U44(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U44(tt(), V1, V2) -> U45(isList(activate(V1)), activate(V2))
, U45(tt(), V2) -> U46(isNeList(activate(V2)))
, U46(tt()) -> tt()
, U51(tt(), V1, V2) ->
U52(isPalListKind(activate(V1)), activate(V1), activate(V2))
, U52(tt(), V1, V2) ->
U53(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U53(tt(), V1, V2) ->
U54(isPalListKind(activate(V2)), activate(V1), activate(V2))
, U54(tt(), V1, V2) -> U55(isNeList(activate(V1)), activate(V2))
, U55(tt(), V2) -> U56(isList(activate(V2)))
, U56(tt()) -> tt()
, U91(tt(), V2) -> U92(isPalListKind(activate(V2)))
, U92(tt()) -> tt()
, a() -> n__a()
, e() -> n__e()
, i() -> n__i()
, o() -> n__o()
, u() -> n__u() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
No rule is usable, rules are removed from the input problem.
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Rules: Empty
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
Empty rules are trivially bounded
Hurray, we answered YES(O(1),O(n^2))