YES

The TRS could be proven terminating. The proof took 16475 ms.

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (1128ms).
 | – Problem 2 was processed with processor PolynomialLinearRange4 (531ms).
 |    | – Problem 6 was processed with processor DependencyGraph (19ms).
 |    |    | – Problem 9 was processed with processor PolynomialLinearRange4 (329ms).
 |    |    |    | – Problem 11 was processed with processor DependencyGraph (5ms).
 |    |    |    |    | – Problem 13 was processed with processor PolynomialLinearRange4 (265ms).
 |    |    |    |    |    | – Problem 15 was processed with processor DependencyGraph (1ms).
 | – Problem 3 was processed with processor PolynomialLinearRange4 (89ms).
 |    | – Problem 7 was processed with processor DependencyGraph (1ms).
 | – Problem 4 was processed with processor SubtermCriterion (0ms).
 | – Problem 5 was processed with processor PolynomialLinearRange4 (194ms).
 |    | – Problem 8 was processed with processor DependencyGraph (4ms).
 |    |    | – Problem 10 was processed with processor PolynomialLinearRange4 (56ms).
 |    |    |    | – Problem 12 was processed with processor DependencyGraph (25ms).
 |    |    |    |    | – Problem 14 was processed with processor PolynomialLinearRange4 (50ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

activate#(n__isPalListKind(X)) → isPalListKind#(X)U51#(tt, V1, V2) → U52#(isNeList(activate(V1)), activate(V2))
and#(tt, X) → activate#(X)isNeList#(n____(V1, V2)) → U51#(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isList#(V) → isPalListKind#(activate(V))U51#(tt, V1, V2) → activate#(V1)
activate#(n__o) → o#U21#(tt, V1, V2) → U22#(isList(activate(V1)), activate(V2))
activate#(n__a) → a#isNePal#(n____(I, __(P, I))) → and#(isQid(activate(I)), n__isPalListKind(activate(I)))
isList#(V) → U11#(isPalListKind(activate(V)), activate(V))isNeList#(n____(V1, V2)) → and#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2)))
isNeList#(n____(V1, V2)) → activate#(V1)isNeList#(V) → U31#(isPalListKind(activate(V)), activate(V))
U71#(tt, V) → U72#(isNePal(activate(V)))U21#(tt, V1, V2) → activate#(V1)
U11#(tt, V) → activate#(V)isNeList#(V) → isPalListKind#(activate(V))
U52#(tt, V2) → U53#(isList(activate(V2)))U31#(tt, V) → U32#(isQid(activate(V)))
isPalListKind#(n____(V1, V2)) → and#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2)))isList#(n____(V1, V2)) → isPalListKind#(activate(V1))
U52#(tt, V2) → activate#(V2)isNePal#(V) → U61#(isPalListKind(activate(V)), activate(V))
isNePal#(n____(I, __(P, I))) → activate#(P)isNePal#(V) → isPalListKind#(activate(V))
activate#(n__u) → u#U41#(tt, V1, V2) → activate#(V1)
activate#(n____(X1, X2)) → __#(X1, X2)U21#(tt, V1, V2) → activate#(V2)
U21#(tt, V1, V2) → isList#(activate(V1))isNeList#(n____(V1, V2)) → isPalListKind#(activate(V1))
isNeList#(n____(V1, V2)) → U41#(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))activate#(n__e) → e#
isNePal#(n____(I, __(P, I))) → activate#(I)U42#(tt, V2) → U43#(isNeList(activate(V2)))
isPalListKind#(n____(V1, V2)) → isPalListKind#(activate(V1))U22#(tt, V2) → U23#(isList(activate(V2)))
activate#(n__i) → i#isNeList#(n____(V1, V2)) → activate#(V2)
U41#(tt, V1, V2) → isList#(activate(V1))U41#(tt, V1, V2) → U42#(isList(activate(V1)), activate(V2))
isList#(n____(V1, V2)) → and#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2)))isPal#(V) → isPalListKind#(activate(V))
isPal#(V) → activate#(V)isPal#(V) → U71#(isPalListKind(activate(V)), activate(V))
U42#(tt, V2) → isNeList#(activate(V2))U51#(tt, V1, V2) → activate#(V2)
U61#(tt, V) → U62#(isQid(activate(V)))isNePal#(n____(I, __(P, I))) → and#(and(isQid(activate(I)), n__isPalListKind(activate(I))), n__and(isPal(activate(P)), n__isPalListKind(activate(P))))
__#(__(X, Y), Z) → __#(Y, Z)isNePal#(V) → activate#(V)
U22#(tt, V2) → activate#(V2)U11#(tt, V) → isNeList#(activate(V))
isNePal#(n____(I, __(P, I))) → isPal#(activate(P))isList#(n____(V1, V2)) → activate#(V1)
U71#(tt, V) → isNePal#(activate(V))isList#(n____(V1, V2)) → activate#(V2)
isNeList#(V) → activate#(V)U71#(tt, V) → activate#(V)
U31#(tt, V) → activate#(V)U11#(tt, V) → U12#(isNeList(activate(V)))
isPalListKind#(n____(V1, V2)) → activate#(V1)U51#(tt, V1, V2) → isNeList#(activate(V1))
U42#(tt, V2) → activate#(V2)U22#(tt, V2) → isList#(activate(V2))
U61#(tt, V) → isQid#(activate(V))U52#(tt, V2) → isList#(activate(V2))
__#(__(X, Y), Z) → __#(X, __(Y, Z))U41#(tt, V1, V2) → activate#(V2)
isList#(n____(V1, V2)) → U21#(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))U61#(tt, V) → activate#(V)
activate#(n__nil) → nil#isPalListKind#(n____(V1, V2)) → activate#(V2)
U31#(tt, V) → isQid#(activate(V))isNePal#(n____(I, __(P, I))) → isQid#(activate(I))
isList#(V) → activate#(V)activate#(n__and(X1, X2)) → and#(X1, X2)

Rewrite Rules

__(__(X, Y), Z) → __(X, __(Y, Z))__(X, nil) → X
__(nil, X) → XU11(tt, V) → U12(isNeList(activate(V)))
U12(tt) → ttU21(tt, V1, V2) → U22(isList(activate(V1)), activate(V2))
U22(tt, V2) → U23(isList(activate(V2)))U23(tt) → tt
U31(tt, V) → U32(isQid(activate(V)))U32(tt) → tt
U41(tt, V1, V2) → U42(isList(activate(V1)), activate(V2))U42(tt, V2) → U43(isNeList(activate(V2)))
U43(tt) → ttU51(tt, V1, V2) → U52(isNeList(activate(V1)), activate(V2))
U52(tt, V2) → U53(isList(activate(V2)))U53(tt) → tt
U61(tt, V) → U62(isQid(activate(V)))U62(tt) → tt
U71(tt, V) → U72(isNePal(activate(V)))U72(tt) → tt
and(tt, X) → activate(X)isList(V) → U11(isPalListKind(activate(V)), activate(V))
isList(n__nil) → ttisList(n____(V1, V2)) → U21(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isNeList(V) → U31(isPalListKind(activate(V)), activate(V))isNeList(n____(V1, V2)) → U41(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isNeList(n____(V1, V2)) → U51(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))isNePal(V) → U61(isPalListKind(activate(V)), activate(V))
isNePal(n____(I, __(P, I))) → and(and(isQid(activate(I)), n__isPalListKind(activate(I))), n__and(isPal(activate(P)), n__isPalListKind(activate(P))))isPal(V) → U71(isPalListKind(activate(V)), activate(V))
isPal(n__nil) → ttisPalListKind(n__a) → tt
isPalListKind(n__e) → ttisPalListKind(n__i) → tt
isPalListKind(n__nil) → ttisPalListKind(n__o) → tt
isPalListKind(n__u) → ttisPalListKind(n____(V1, V2)) → and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2)))
isQid(n__a) → ttisQid(n__e) → tt
isQid(n__i) → ttisQid(n__o) → tt
isQid(n__u) → ttnil → n__nil
__(X1, X2) → n____(X1, X2)isPalListKind(X) → n__isPalListKind(X)
and(X1, X2) → n__and(X1, X2)a → n__a
e → n__ei → n__i
o → n__ou → n__u
activate(n__nil) → nilactivate(n____(X1, X2)) → __(X1, X2)
activate(n__isPalListKind(X)) → isPalListKind(X)activate(n__and(X1, X2)) → and(X1, X2)
activate(n__a) → aactivate(n__e) → e
activate(n__i) → iactivate(n__o) → o
activate(n__u) → uactivate(X) → X

Original Signature

Termination of terms over the following signature is verified: isList, isNeList, __, activate, U62, n__u, U61, U43, U42, n__o, U41, isNePal, n__nil, U23, U21, U22, n__e, e, isPalListKind, n__a, a, o, isPal, n__i, U71, and, i, U72, n__and, u, U51, tt, U53, U52, U11, U12, isQid, U31, U32, n____, nil, n__isPalListKind

Strategy


The following SCCs where found

activate#(n__isPalListKind(X)) → isPalListKind#(X)isPalListKind#(n____(V1, V2)) → activate#(V2)
and#(tt, X) → activate#(X)isPalListKind#(n____(V1, V2)) → activate#(V1)
isPalListKind#(n____(V1, V2)) → isPalListKind#(activate(V1))activate#(n__and(X1, X2)) → and#(X1, X2)
isPalListKind#(n____(V1, V2)) → and#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2)))

__#(__(X, Y), Z) → __#(X, __(Y, Z))__#(__(X, Y), Z) → __#(Y, Z)

isPal#(V) → U71#(isPalListKind(activate(V)), activate(V))U71#(tt, V) → isNePal#(activate(V))
isNePal#(n____(I, __(P, I))) → isPal#(activate(P))

U51#(tt, V1, V2) → U52#(isNeList(activate(V1)), activate(V2))U42#(tt, V2) → isNeList#(activate(V2))
U52#(tt, V2) → isList#(activate(V2))isNeList#(n____(V1, V2)) → U51#(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
U21#(tt, V1, V2) → U22#(isList(activate(V1)), activate(V2))U11#(tt, V) → isNeList#(activate(V))
isList#(n____(V1, V2)) → U21#(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))U21#(tt, V1, V2) → isList#(activate(V1))
isNeList#(n____(V1, V2)) → U41#(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))isList#(V) → U11#(isPalListKind(activate(V)), activate(V))
U41#(tt, V1, V2) → isList#(activate(V1))U51#(tt, V1, V2) → isNeList#(activate(V1))
U41#(tt, V1, V2) → U42#(isList(activate(V1)), activate(V2))U22#(tt, V2) → isList#(activate(V2))

Problem 2: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

U42#(tt, V2) → isNeList#(activate(V2))U51#(tt, V1, V2) → U52#(isNeList(activate(V1)), activate(V2))
isNeList#(n____(V1, V2)) → U51#(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))U52#(tt, V2) → isList#(activate(V2))
U21#(tt, V1, V2) → U22#(isList(activate(V1)), activate(V2))U11#(tt, V) → isNeList#(activate(V))
isList#(n____(V1, V2)) → U21#(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))U21#(tt, V1, V2) → isList#(activate(V1))
isNeList#(n____(V1, V2)) → U41#(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))isList#(V) → U11#(isPalListKind(activate(V)), activate(V))
U41#(tt, V1, V2) → U42#(isList(activate(V1)), activate(V2))U51#(tt, V1, V2) → isNeList#(activate(V1))
U41#(tt, V1, V2) → isList#(activate(V1))U22#(tt, V2) → isList#(activate(V2))

Rewrite Rules

__(__(X, Y), Z) → __(X, __(Y, Z))__(X, nil) → X
__(nil, X) → XU11(tt, V) → U12(isNeList(activate(V)))
U12(tt) → ttU21(tt, V1, V2) → U22(isList(activate(V1)), activate(V2))
U22(tt, V2) → U23(isList(activate(V2)))U23(tt) → tt
U31(tt, V) → U32(isQid(activate(V)))U32(tt) → tt
U41(tt, V1, V2) → U42(isList(activate(V1)), activate(V2))U42(tt, V2) → U43(isNeList(activate(V2)))
U43(tt) → ttU51(tt, V1, V2) → U52(isNeList(activate(V1)), activate(V2))
U52(tt, V2) → U53(isList(activate(V2)))U53(tt) → tt
U61(tt, V) → U62(isQid(activate(V)))U62(tt) → tt
U71(tt, V) → U72(isNePal(activate(V)))U72(tt) → tt
and(tt, X) → activate(X)isList(V) → U11(isPalListKind(activate(V)), activate(V))
isList(n__nil) → ttisList(n____(V1, V2)) → U21(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isNeList(V) → U31(isPalListKind(activate(V)), activate(V))isNeList(n____(V1, V2)) → U41(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isNeList(n____(V1, V2)) → U51(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))isNePal(V) → U61(isPalListKind(activate(V)), activate(V))
isNePal(n____(I, __(P, I))) → and(and(isQid(activate(I)), n__isPalListKind(activate(I))), n__and(isPal(activate(P)), n__isPalListKind(activate(P))))isPal(V) → U71(isPalListKind(activate(V)), activate(V))
isPal(n__nil) → ttisPalListKind(n__a) → tt
isPalListKind(n__e) → ttisPalListKind(n__i) → tt
isPalListKind(n__nil) → ttisPalListKind(n__o) → tt
isPalListKind(n__u) → ttisPalListKind(n____(V1, V2)) → and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2)))
isQid(n__a) → ttisQid(n__e) → tt
isQid(n__i) → ttisQid(n__o) → tt
isQid(n__u) → ttnil → n__nil
__(X1, X2) → n____(X1, X2)isPalListKind(X) → n__isPalListKind(X)
and(X1, X2) → n__and(X1, X2)a → n__a
e → n__ei → n__i
o → n__ou → n__u
activate(n__nil) → nilactivate(n____(X1, X2)) → __(X1, X2)
activate(n__isPalListKind(X)) → isPalListKind(X)activate(n__and(X1, X2)) → and(X1, X2)
activate(n__a) → aactivate(n__e) → e
activate(n__i) → iactivate(n__o) → o
activate(n__u) → uactivate(X) → X

Original Signature

Termination of terms over the following signature is verified: isList, isNeList, __, activate, U62, n__u, U61, U43, U42, n__o, U41, isNePal, n__nil, U23, U21, U22, n__e, e, isPalListKind, n__a, a, o, isPal, n__i, U71, and, i, U72, n__and, u, U51, tt, U53, U52, U11, U12, isQid, U31, U32, n____, nil, n__isPalListKind

Strategy


Polynomial Interpretation

Standard Usable rules

U11(tt, V) → U12(isNeList(activate(V)))U53(tt) → tt
U51(tt, V1, V2) → U52(isNeList(activate(V1)), activate(V2))isNeList(n____(V1, V2)) → U51(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
U52(tt, V2) → U53(isList(activate(V2)))U22(tt, V2) → U23(isList(activate(V2)))
activate(n__a) → aisPalListKind(X) → n__isPalListKind(X)
U43(tt) → ttactivate(n__i) → i
U12(tt) → ttisQid(n__i) → tt
and(tt, X) → activate(X)isList(n____(V1, V2)) → U21(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
activate(n__isPalListKind(X)) → isPalListKind(X)U21(tt, V1, V2) → U22(isList(activate(V1)), activate(V2))
activate(X) → X__(nil, X) → X
u → n__ui → n__i
activate(n__and(X1, X2)) → and(X1, X2)o → n__o
nil → n__nilisQid(n__o) → tt
isPalListKind(n__i) → tt__(__(X, Y), Z) → __(X, __(Y, Z))
__(X, nil) → XisNeList(V) → U31(isPalListKind(activate(V)), activate(V))
a → n__aisPalListKind(n____(V1, V2)) → and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2)))
activate(n__nil) → nilisPalListKind(n__nil) → tt
U31(tt, V) → U32(isQid(activate(V)))isList(V) → U11(isPalListKind(activate(V)), activate(V))
isQid(n__u) → ttU32(tt) → tt
isPalListKind(n__a) → ttisPalListKind(n__e) → tt
isQid(n__e) → tt__(X1, X2) → n____(X1, X2)
e → n__eisPalListKind(n__o) → tt
U23(tt) → ttand(X1, X2) → n__and(X1, X2)
isList(n__nil) → ttisNeList(n____(V1, V2)) → U41(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isQid(n__a) → ttisPalListKind(n__u) → tt
activate(n____(X1, X2)) → __(X1, X2)U42(tt, V2) → U43(isNeList(activate(V2)))
activate(n__u) → uU41(tt, V1, V2) → U42(isList(activate(V1)), activate(V2))
activate(n__o) → oactivate(n__e) → e

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

isNeList#(n____(V1, V2)) → U51#(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))

Problem 6: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U42#(tt, V2) → isNeList#(activate(V2))U51#(tt, V1, V2) → U52#(isNeList(activate(V1)), activate(V2))
U52#(tt, V2) → isList#(activate(V2))U21#(tt, V1, V2) → U22#(isList(activate(V1)), activate(V2))
U11#(tt, V) → isNeList#(activate(V))isList#(n____(V1, V2)) → U21#(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
U21#(tt, V1, V2) → isList#(activate(V1))isNeList#(n____(V1, V2)) → U41#(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isList#(V) → U11#(isPalListKind(activate(V)), activate(V))U41#(tt, V1, V2) → U42#(isList(activate(V1)), activate(V2))
U51#(tt, V1, V2) → isNeList#(activate(V1))U41#(tt, V1, V2) → isList#(activate(V1))
U22#(tt, V2) → isList#(activate(V2))

Rewrite Rules

__(__(X, Y), Z) → __(X, __(Y, Z))__(X, nil) → X
__(nil, X) → XU11(tt, V) → U12(isNeList(activate(V)))
U12(tt) → ttU21(tt, V1, V2) → U22(isList(activate(V1)), activate(V2))
U22(tt, V2) → U23(isList(activate(V2)))U23(tt) → tt
U31(tt, V) → U32(isQid(activate(V)))U32(tt) → tt
U41(tt, V1, V2) → U42(isList(activate(V1)), activate(V2))U42(tt, V2) → U43(isNeList(activate(V2)))
U43(tt) → ttU51(tt, V1, V2) → U52(isNeList(activate(V1)), activate(V2))
U52(tt, V2) → U53(isList(activate(V2)))U53(tt) → tt
U61(tt, V) → U62(isQid(activate(V)))U62(tt) → tt
U71(tt, V) → U72(isNePal(activate(V)))U72(tt) → tt
and(tt, X) → activate(X)isList(V) → U11(isPalListKind(activate(V)), activate(V))
isList(n__nil) → ttisList(n____(V1, V2)) → U21(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isNeList(V) → U31(isPalListKind(activate(V)), activate(V))isNeList(n____(V1, V2)) → U41(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isNeList(n____(V1, V2)) → U51(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))isNePal(V) → U61(isPalListKind(activate(V)), activate(V))
isNePal(n____(I, __(P, I))) → and(and(isQid(activate(I)), n__isPalListKind(activate(I))), n__and(isPal(activate(P)), n__isPalListKind(activate(P))))isPal(V) → U71(isPalListKind(activate(V)), activate(V))
isPal(n__nil) → ttisPalListKind(n__a) → tt
isPalListKind(n__e) → ttisPalListKind(n__i) → tt
isPalListKind(n__nil) → ttisPalListKind(n__o) → tt
isPalListKind(n__u) → ttisPalListKind(n____(V1, V2)) → and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2)))
isQid(n__a) → ttisQid(n__e) → tt
isQid(n__i) → ttisQid(n__o) → tt
isQid(n__u) → ttnil → n__nil
__(X1, X2) → n____(X1, X2)isPalListKind(X) → n__isPalListKind(X)
and(X1, X2) → n__and(X1, X2)a → n__a
e → n__ei → n__i
o → n__ou → n__u
activate(n__nil) → nilactivate(n____(X1, X2)) → __(X1, X2)
activate(n__isPalListKind(X)) → isPalListKind(X)activate(n__and(X1, X2)) → and(X1, X2)
activate(n__a) → aactivate(n__e) → e
activate(n__i) → iactivate(n__o) → o
activate(n__u) → uactivate(X) → X

Original Signature

Termination of terms over the following signature is verified: isList, isNeList, __, activate, n__u, U62, U43, U61, n__o, U42, U41, isNePal, n__nil, U23, U21, U22, n__e, e, isPalListKind, n__a, a, o, isPal, n__i, i, and, U71, n__and, U72, u, U51, tt, U53, U52, U11, U12, U31, isQid, U32, n____, n__isPalListKind, nil

Strategy


The following SCCs where found

isList#(n____(V1, V2)) → U21#(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))U21#(tt, V1, V2) → isList#(activate(V1))
U42#(tt, V2) → isNeList#(activate(V2))isNeList#(n____(V1, V2)) → U41#(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isList#(V) → U11#(isPalListKind(activate(V)), activate(V))U41#(tt, V1, V2) → isList#(activate(V1))
U41#(tt, V1, V2) → U42#(isList(activate(V1)), activate(V2))U21#(tt, V1, V2) → U22#(isList(activate(V1)), activate(V2))
U22#(tt, V2) → isList#(activate(V2))U11#(tt, V) → isNeList#(activate(V))

Problem 9: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

isList#(n____(V1, V2)) → U21#(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))U21#(tt, V1, V2) → isList#(activate(V1))
U42#(tt, V2) → isNeList#(activate(V2))isNeList#(n____(V1, V2)) → U41#(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isList#(V) → U11#(isPalListKind(activate(V)), activate(V))U41#(tt, V1, V2) → isList#(activate(V1))
U41#(tt, V1, V2) → U42#(isList(activate(V1)), activate(V2))U21#(tt, V1, V2) → U22#(isList(activate(V1)), activate(V2))
U22#(tt, V2) → isList#(activate(V2))U11#(tt, V) → isNeList#(activate(V))

Rewrite Rules

__(__(X, Y), Z) → __(X, __(Y, Z))__(X, nil) → X
__(nil, X) → XU11(tt, V) → U12(isNeList(activate(V)))
U12(tt) → ttU21(tt, V1, V2) → U22(isList(activate(V1)), activate(V2))
U22(tt, V2) → U23(isList(activate(V2)))U23(tt) → tt
U31(tt, V) → U32(isQid(activate(V)))U32(tt) → tt
U41(tt, V1, V2) → U42(isList(activate(V1)), activate(V2))U42(tt, V2) → U43(isNeList(activate(V2)))
U43(tt) → ttU51(tt, V1, V2) → U52(isNeList(activate(V1)), activate(V2))
U52(tt, V2) → U53(isList(activate(V2)))U53(tt) → tt
U61(tt, V) → U62(isQid(activate(V)))U62(tt) → tt
U71(tt, V) → U72(isNePal(activate(V)))U72(tt) → tt
and(tt, X) → activate(X)isList(V) → U11(isPalListKind(activate(V)), activate(V))
isList(n__nil) → ttisList(n____(V1, V2)) → U21(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isNeList(V) → U31(isPalListKind(activate(V)), activate(V))isNeList(n____(V1, V2)) → U41(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isNeList(n____(V1, V2)) → U51(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))isNePal(V) → U61(isPalListKind(activate(V)), activate(V))
isNePal(n____(I, __(P, I))) → and(and(isQid(activate(I)), n__isPalListKind(activate(I))), n__and(isPal(activate(P)), n__isPalListKind(activate(P))))isPal(V) → U71(isPalListKind(activate(V)), activate(V))
isPal(n__nil) → ttisPalListKind(n__a) → tt
isPalListKind(n__e) → ttisPalListKind(n__i) → tt
isPalListKind(n__nil) → ttisPalListKind(n__o) → tt
isPalListKind(n__u) → ttisPalListKind(n____(V1, V2)) → and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2)))
isQid(n__a) → ttisQid(n__e) → tt
isQid(n__i) → ttisQid(n__o) → tt
isQid(n__u) → ttnil → n__nil
__(X1, X2) → n____(X1, X2)isPalListKind(X) → n__isPalListKind(X)
and(X1, X2) → n__and(X1, X2)a → n__a
e → n__ei → n__i
o → n__ou → n__u
activate(n__nil) → nilactivate(n____(X1, X2)) → __(X1, X2)
activate(n__isPalListKind(X)) → isPalListKind(X)activate(n__and(X1, X2)) → and(X1, X2)
activate(n__a) → aactivate(n__e) → e
activate(n__i) → iactivate(n__o) → o
activate(n__u) → uactivate(X) → X

Original Signature

Termination of terms over the following signature is verified: isList, isNeList, __, activate, n__u, U62, U43, U61, n__o, U42, U41, isNePal, n__nil, U23, U21, U22, n__e, e, isPalListKind, n__a, a, o, isPal, n__i, i, and, U71, n__and, U72, u, U51, tt, U53, U52, U11, U12, U31, isQid, U32, n____, n__isPalListKind, nil

Strategy


Polynomial Interpretation

Standard Usable rules

U11(tt, V) → U12(isNeList(activate(V)))U53(tt) → tt
U51(tt, V1, V2) → U52(isNeList(activate(V1)), activate(V2))isNeList(n____(V1, V2)) → U51(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
U52(tt, V2) → U53(isList(activate(V2)))U22(tt, V2) → U23(isList(activate(V2)))
activate(n__a) → aisPalListKind(X) → n__isPalListKind(X)
U43(tt) → ttactivate(n__i) → i
U12(tt) → ttisQid(n__i) → tt
and(tt, X) → activate(X)isList(n____(V1, V2)) → U21(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
activate(n__isPalListKind(X)) → isPalListKind(X)U21(tt, V1, V2) → U22(isList(activate(V1)), activate(V2))
activate(X) → X__(nil, X) → X
i → n__iu → n__u
activate(n__and(X1, X2)) → and(X1, X2)nil → n__nil
o → n__oisQid(n__o) → tt
__(__(X, Y), Z) → __(X, __(Y, Z))isPalListKind(n__i) → tt
__(X, nil) → Xa → n__a
isNeList(V) → U31(isPalListKind(activate(V)), activate(V))isPalListKind(n____(V1, V2)) → and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2)))
activate(n__nil) → nilisPalListKind(n__nil) → tt
U31(tt, V) → U32(isQid(activate(V)))isList(V) → U11(isPalListKind(activate(V)), activate(V))
isQid(n__u) → ttU32(tt) → tt
isPalListKind(n__a) → ttisPalListKind(n__e) → tt
isQid(n__e) → tt__(X1, X2) → n____(X1, X2)
e → n__eisPalListKind(n__o) → tt
U23(tt) → ttisList(n__nil) → tt
and(X1, X2) → n__and(X1, X2)isNeList(n____(V1, V2)) → U41(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isQid(n__a) → ttisPalListKind(n__u) → tt
activate(n____(X1, X2)) → __(X1, X2)U42(tt, V2) → U43(isNeList(activate(V2)))
activate(n__u) → uU41(tt, V1, V2) → U42(isList(activate(V1)), activate(V2))
activate(n__o) → oactivate(n__e) → e

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

isList#(n____(V1, V2)) → U21#(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))isList#(V) → U11#(isPalListKind(activate(V)), activate(V))
U41#(tt, V1, V2) → isList#(activate(V1))

Problem 11: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U42#(tt, V2) → isNeList#(activate(V2))U21#(tt, V1, V2) → isList#(activate(V1))
isNeList#(n____(V1, V2)) → U41#(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))U41#(tt, V1, V2) → U42#(isList(activate(V1)), activate(V2))
U21#(tt, V1, V2) → U22#(isList(activate(V1)), activate(V2))U22#(tt, V2) → isList#(activate(V2))
U11#(tt, V) → isNeList#(activate(V))

Rewrite Rules

__(__(X, Y), Z) → __(X, __(Y, Z))__(X, nil) → X
__(nil, X) → XU11(tt, V) → U12(isNeList(activate(V)))
U12(tt) → ttU21(tt, V1, V2) → U22(isList(activate(V1)), activate(V2))
U22(tt, V2) → U23(isList(activate(V2)))U23(tt) → tt
U31(tt, V) → U32(isQid(activate(V)))U32(tt) → tt
U41(tt, V1, V2) → U42(isList(activate(V1)), activate(V2))U42(tt, V2) → U43(isNeList(activate(V2)))
U43(tt) → ttU51(tt, V1, V2) → U52(isNeList(activate(V1)), activate(V2))
U52(tt, V2) → U53(isList(activate(V2)))U53(tt) → tt
U61(tt, V) → U62(isQid(activate(V)))U62(tt) → tt
U71(tt, V) → U72(isNePal(activate(V)))U72(tt) → tt
and(tt, X) → activate(X)isList(V) → U11(isPalListKind(activate(V)), activate(V))
isList(n__nil) → ttisList(n____(V1, V2)) → U21(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isNeList(V) → U31(isPalListKind(activate(V)), activate(V))isNeList(n____(V1, V2)) → U41(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isNeList(n____(V1, V2)) → U51(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))isNePal(V) → U61(isPalListKind(activate(V)), activate(V))
isNePal(n____(I, __(P, I))) → and(and(isQid(activate(I)), n__isPalListKind(activate(I))), n__and(isPal(activate(P)), n__isPalListKind(activate(P))))isPal(V) → U71(isPalListKind(activate(V)), activate(V))
isPal(n__nil) → ttisPalListKind(n__a) → tt
isPalListKind(n__e) → ttisPalListKind(n__i) → tt
isPalListKind(n__nil) → ttisPalListKind(n__o) → tt
isPalListKind(n__u) → ttisPalListKind(n____(V1, V2)) → and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2)))
isQid(n__a) → ttisQid(n__e) → tt
isQid(n__i) → ttisQid(n__o) → tt
isQid(n__u) → ttnil → n__nil
__(X1, X2) → n____(X1, X2)isPalListKind(X) → n__isPalListKind(X)
and(X1, X2) → n__and(X1, X2)a → n__a
e → n__ei → n__i
o → n__ou → n__u
activate(n__nil) → nilactivate(n____(X1, X2)) → __(X1, X2)
activate(n__isPalListKind(X)) → isPalListKind(X)activate(n__and(X1, X2)) → and(X1, X2)
activate(n__a) → aactivate(n__e) → e
activate(n__i) → iactivate(n__o) → o
activate(n__u) → uactivate(X) → X

Original Signature

Termination of terms over the following signature is verified: isList, isNeList, __, activate, U62, n__u, U61, U43, U42, n__o, U41, isNePal, n__nil, U23, U21, U22, n__e, e, isPalListKind, n__a, a, o, isPal, n__i, U71, and, i, U72, n__and, u, U51, tt, U53, U52, U11, U12, isQid, U31, U32, n____, nil, n__isPalListKind

Strategy


The following SCCs where found

U42#(tt, V2) → isNeList#(activate(V2))isNeList#(n____(V1, V2)) → U41#(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
U41#(tt, V1, V2) → U42#(isList(activate(V1)), activate(V2))

Problem 13: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

U42#(tt, V2) → isNeList#(activate(V2))isNeList#(n____(V1, V2)) → U41#(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
U41#(tt, V1, V2) → U42#(isList(activate(V1)), activate(V2))

Rewrite Rules

__(__(X, Y), Z) → __(X, __(Y, Z))__(X, nil) → X
__(nil, X) → XU11(tt, V) → U12(isNeList(activate(V)))
U12(tt) → ttU21(tt, V1, V2) → U22(isList(activate(V1)), activate(V2))
U22(tt, V2) → U23(isList(activate(V2)))U23(tt) → tt
U31(tt, V) → U32(isQid(activate(V)))U32(tt) → tt
U41(tt, V1, V2) → U42(isList(activate(V1)), activate(V2))U42(tt, V2) → U43(isNeList(activate(V2)))
U43(tt) → ttU51(tt, V1, V2) → U52(isNeList(activate(V1)), activate(V2))
U52(tt, V2) → U53(isList(activate(V2)))U53(tt) → tt
U61(tt, V) → U62(isQid(activate(V)))U62(tt) → tt
U71(tt, V) → U72(isNePal(activate(V)))U72(tt) → tt
and(tt, X) → activate(X)isList(V) → U11(isPalListKind(activate(V)), activate(V))
isList(n__nil) → ttisList(n____(V1, V2)) → U21(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isNeList(V) → U31(isPalListKind(activate(V)), activate(V))isNeList(n____(V1, V2)) → U41(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isNeList(n____(V1, V2)) → U51(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))isNePal(V) → U61(isPalListKind(activate(V)), activate(V))
isNePal(n____(I, __(P, I))) → and(and(isQid(activate(I)), n__isPalListKind(activate(I))), n__and(isPal(activate(P)), n__isPalListKind(activate(P))))isPal(V) → U71(isPalListKind(activate(V)), activate(V))
isPal(n__nil) → ttisPalListKind(n__a) → tt
isPalListKind(n__e) → ttisPalListKind(n__i) → tt
isPalListKind(n__nil) → ttisPalListKind(n__o) → tt
isPalListKind(n__u) → ttisPalListKind(n____(V1, V2)) → and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2)))
isQid(n__a) → ttisQid(n__e) → tt
isQid(n__i) → ttisQid(n__o) → tt
isQid(n__u) → ttnil → n__nil
__(X1, X2) → n____(X1, X2)isPalListKind(X) → n__isPalListKind(X)
and(X1, X2) → n__and(X1, X2)a → n__a
e → n__ei → n__i
o → n__ou → n__u
activate(n__nil) → nilactivate(n____(X1, X2)) → __(X1, X2)
activate(n__isPalListKind(X)) → isPalListKind(X)activate(n__and(X1, X2)) → and(X1, X2)
activate(n__a) → aactivate(n__e) → e
activate(n__i) → iactivate(n__o) → o
activate(n__u) → uactivate(X) → X

Original Signature

Termination of terms over the following signature is verified: isList, isNeList, __, activate, U62, n__u, U61, U43, U42, n__o, U41, isNePal, n__nil, U23, U21, U22, n__e, e, isPalListKind, n__a, a, o, isPal, n__i, U71, and, i, U72, n__and, u, U51, tt, U53, U52, U11, U12, isQid, U31, U32, n____, nil, n__isPalListKind

Strategy


Polynomial Interpretation

Standard Usable rules

U11(tt, V) → U12(isNeList(activate(V)))U53(tt) → tt
U51(tt, V1, V2) → U52(isNeList(activate(V1)), activate(V2))isNeList(n____(V1, V2)) → U51(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
U52(tt, V2) → U53(isList(activate(V2)))U22(tt, V2) → U23(isList(activate(V2)))
activate(n__a) → aisPalListKind(X) → n__isPalListKind(X)
U43(tt) → ttactivate(n__i) → i
U12(tt) → ttisQid(n__i) → tt
and(tt, X) → activate(X)isList(n____(V1, V2)) → U21(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
activate(n__isPalListKind(X)) → isPalListKind(X)U21(tt, V1, V2) → U22(isList(activate(V1)), activate(V2))
activate(X) → X__(nil, X) → X
i → n__iu → n__u
activate(n__and(X1, X2)) → and(X1, X2)nil → n__nil
o → n__oisQid(n__o) → tt
__(__(X, Y), Z) → __(X, __(Y, Z))isPalListKind(n__i) → tt
__(X, nil) → Xa → n__a
isNeList(V) → U31(isPalListKind(activate(V)), activate(V))isPalListKind(n____(V1, V2)) → and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2)))
activate(n__nil) → nilisPalListKind(n__nil) → tt
U31(tt, V) → U32(isQid(activate(V)))isList(V) → U11(isPalListKind(activate(V)), activate(V))
isQid(n__u) → ttU32(tt) → tt
isPalListKind(n__a) → ttisPalListKind(n__e) → tt
isQid(n__e) → tt__(X1, X2) → n____(X1, X2)
e → n__eisPalListKind(n__o) → tt
U23(tt) → ttisList(n__nil) → tt
and(X1, X2) → n__and(X1, X2)isNeList(n____(V1, V2)) → U41(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isQid(n__a) → ttisPalListKind(n__u) → tt
activate(n____(X1, X2)) → __(X1, X2)U42(tt, V2) → U43(isNeList(activate(V2)))
activate(n__u) → uU41(tt, V1, V2) → U42(isList(activate(V1)), activate(V2))
activate(n__o) → oactivate(n__e) → e

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

isNeList#(n____(V1, V2)) → U41#(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))

Problem 15: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U42#(tt, V2) → isNeList#(activate(V2))U41#(tt, V1, V2) → U42#(isList(activate(V1)), activate(V2))

Rewrite Rules

__(__(X, Y), Z) → __(X, __(Y, Z))__(X, nil) → X
__(nil, X) → XU11(tt, V) → U12(isNeList(activate(V)))
U12(tt) → ttU21(tt, V1, V2) → U22(isList(activate(V1)), activate(V2))
U22(tt, V2) → U23(isList(activate(V2)))U23(tt) → tt
U31(tt, V) → U32(isQid(activate(V)))U32(tt) → tt
U41(tt, V1, V2) → U42(isList(activate(V1)), activate(V2))U42(tt, V2) → U43(isNeList(activate(V2)))
U43(tt) → ttU51(tt, V1, V2) → U52(isNeList(activate(V1)), activate(V2))
U52(tt, V2) → U53(isList(activate(V2)))U53(tt) → tt
U61(tt, V) → U62(isQid(activate(V)))U62(tt) → tt
U71(tt, V) → U72(isNePal(activate(V)))U72(tt) → tt
and(tt, X) → activate(X)isList(V) → U11(isPalListKind(activate(V)), activate(V))
isList(n__nil) → ttisList(n____(V1, V2)) → U21(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isNeList(V) → U31(isPalListKind(activate(V)), activate(V))isNeList(n____(V1, V2)) → U41(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isNeList(n____(V1, V2)) → U51(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))isNePal(V) → U61(isPalListKind(activate(V)), activate(V))
isNePal(n____(I, __(P, I))) → and(and(isQid(activate(I)), n__isPalListKind(activate(I))), n__and(isPal(activate(P)), n__isPalListKind(activate(P))))isPal(V) → U71(isPalListKind(activate(V)), activate(V))
isPal(n__nil) → ttisPalListKind(n__a) → tt
isPalListKind(n__e) → ttisPalListKind(n__i) → tt
isPalListKind(n__nil) → ttisPalListKind(n__o) → tt
isPalListKind(n__u) → ttisPalListKind(n____(V1, V2)) → and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2)))
isQid(n__a) → ttisQid(n__e) → tt
isQid(n__i) → ttisQid(n__o) → tt
isQid(n__u) → ttnil → n__nil
__(X1, X2) → n____(X1, X2)isPalListKind(X) → n__isPalListKind(X)
and(X1, X2) → n__and(X1, X2)a → n__a
e → n__ei → n__i
o → n__ou → n__u
activate(n__nil) → nilactivate(n____(X1, X2)) → __(X1, X2)
activate(n__isPalListKind(X)) → isPalListKind(X)activate(n__and(X1, X2)) → and(X1, X2)
activate(n__a) → aactivate(n__e) → e
activate(n__i) → iactivate(n__o) → o
activate(n__u) → uactivate(X) → X

Original Signature

Termination of terms over the following signature is verified: isList, isNeList, __, activate, n__u, U62, U43, U61, n__o, U42, U41, isNePal, n__nil, U23, U21, U22, n__e, e, isPalListKind, n__a, a, o, isPal, n__i, i, and, U71, n__and, U72, u, U51, tt, U53, U52, U11, U12, U31, isQid, U32, n____, n__isPalListKind, nil

Strategy


There are no SCCs!

Problem 3: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

isPal#(V) → U71#(isPalListKind(activate(V)), activate(V))U71#(tt, V) → isNePal#(activate(V))
isNePal#(n____(I, __(P, I))) → isPal#(activate(P))

Rewrite Rules

__(__(X, Y), Z) → __(X, __(Y, Z))__(X, nil) → X
__(nil, X) → XU11(tt, V) → U12(isNeList(activate(V)))
U12(tt) → ttU21(tt, V1, V2) → U22(isList(activate(V1)), activate(V2))
U22(tt, V2) → U23(isList(activate(V2)))U23(tt) → tt
U31(tt, V) → U32(isQid(activate(V)))U32(tt) → tt
U41(tt, V1, V2) → U42(isList(activate(V1)), activate(V2))U42(tt, V2) → U43(isNeList(activate(V2)))
U43(tt) → ttU51(tt, V1, V2) → U52(isNeList(activate(V1)), activate(V2))
U52(tt, V2) → U53(isList(activate(V2)))U53(tt) → tt
U61(tt, V) → U62(isQid(activate(V)))U62(tt) → tt
U71(tt, V) → U72(isNePal(activate(V)))U72(tt) → tt
and(tt, X) → activate(X)isList(V) → U11(isPalListKind(activate(V)), activate(V))
isList(n__nil) → ttisList(n____(V1, V2)) → U21(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isNeList(V) → U31(isPalListKind(activate(V)), activate(V))isNeList(n____(V1, V2)) → U41(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isNeList(n____(V1, V2)) → U51(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))isNePal(V) → U61(isPalListKind(activate(V)), activate(V))
isNePal(n____(I, __(P, I))) → and(and(isQid(activate(I)), n__isPalListKind(activate(I))), n__and(isPal(activate(P)), n__isPalListKind(activate(P))))isPal(V) → U71(isPalListKind(activate(V)), activate(V))
isPal(n__nil) → ttisPalListKind(n__a) → tt
isPalListKind(n__e) → ttisPalListKind(n__i) → tt
isPalListKind(n__nil) → ttisPalListKind(n__o) → tt
isPalListKind(n__u) → ttisPalListKind(n____(V1, V2)) → and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2)))
isQid(n__a) → ttisQid(n__e) → tt
isQid(n__i) → ttisQid(n__o) → tt
isQid(n__u) → ttnil → n__nil
__(X1, X2) → n____(X1, X2)isPalListKind(X) → n__isPalListKind(X)
and(X1, X2) → n__and(X1, X2)a → n__a
e → n__ei → n__i
o → n__ou → n__u
activate(n__nil) → nilactivate(n____(X1, X2)) → __(X1, X2)
activate(n__isPalListKind(X)) → isPalListKind(X)activate(n__and(X1, X2)) → and(X1, X2)
activate(n__a) → aactivate(n__e) → e
activate(n__i) → iactivate(n__o) → o
activate(n__u) → uactivate(X) → X

Original Signature

Termination of terms over the following signature is verified: isList, isNeList, __, activate, U62, n__u, U61, U43, U42, n__o, U41, isNePal, n__nil, U23, U21, U22, n__e, e, isPalListKind, n__a, a, o, isPal, n__i, U71, and, i, U72, n__and, u, U51, tt, U53, U52, U11, U12, isQid, U31, U32, n____, nil, n__isPalListKind

Strategy


Polynomial Interpretation

Standard Usable rules

isPalListKind(n__i) → tt__(__(X, Y), Z) → __(X, __(Y, Z))
__(X, nil) → Xa → n__a
isPalListKind(n____(V1, V2)) → and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2)))activate(n__nil) → nil
isPalListKind(n__nil) → ttisPalListKind(n__a) → tt
isPalListKind(n__e) → tt__(X1, X2) → n____(X1, X2)
activate(n__a) → aisPalListKind(X) → n__isPalListKind(X)
e → n__eactivate(n__i) → i
isPalListKind(n__o) → ttand(X1, X2) → n__and(X1, X2)
isPalListKind(n__u) → ttactivate(n____(X1, X2)) → __(X1, X2)
and(tt, X) → activate(X)activate(n__isPalListKind(X)) → isPalListKind(X)
activate(X) → Xactivate(n__u) → u
__(nil, X) → Xi → n__i
u → n__uactivate(n__and(X1, X2)) → and(X1, X2)
activate(n__o) → onil → n__nil
o → n__oactivate(n__e) → e

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

isNePal#(n____(I, __(P, I))) → isPal#(activate(P))

Problem 7: DependencyGraph



Dependency Pair Problem

Dependency Pairs

isPal#(V) → U71#(isPalListKind(activate(V)), activate(V))U71#(tt, V) → isNePal#(activate(V))

Rewrite Rules

__(__(X, Y), Z) → __(X, __(Y, Z))__(X, nil) → X
__(nil, X) → XU11(tt, V) → U12(isNeList(activate(V)))
U12(tt) → ttU21(tt, V1, V2) → U22(isList(activate(V1)), activate(V2))
U22(tt, V2) → U23(isList(activate(V2)))U23(tt) → tt
U31(tt, V) → U32(isQid(activate(V)))U32(tt) → tt
U41(tt, V1, V2) → U42(isList(activate(V1)), activate(V2))U42(tt, V2) → U43(isNeList(activate(V2)))
U43(tt) → ttU51(tt, V1, V2) → U52(isNeList(activate(V1)), activate(V2))
U52(tt, V2) → U53(isList(activate(V2)))U53(tt) → tt
U61(tt, V) → U62(isQid(activate(V)))U62(tt) → tt
U71(tt, V) → U72(isNePal(activate(V)))U72(tt) → tt
and(tt, X) → activate(X)isList(V) → U11(isPalListKind(activate(V)), activate(V))
isList(n__nil) → ttisList(n____(V1, V2)) → U21(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isNeList(V) → U31(isPalListKind(activate(V)), activate(V))isNeList(n____(V1, V2)) → U41(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isNeList(n____(V1, V2)) → U51(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))isNePal(V) → U61(isPalListKind(activate(V)), activate(V))
isNePal(n____(I, __(P, I))) → and(and(isQid(activate(I)), n__isPalListKind(activate(I))), n__and(isPal(activate(P)), n__isPalListKind(activate(P))))isPal(V) → U71(isPalListKind(activate(V)), activate(V))
isPal(n__nil) → ttisPalListKind(n__a) → tt
isPalListKind(n__e) → ttisPalListKind(n__i) → tt
isPalListKind(n__nil) → ttisPalListKind(n__o) → tt
isPalListKind(n__u) → ttisPalListKind(n____(V1, V2)) → and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2)))
isQid(n__a) → ttisQid(n__e) → tt
isQid(n__i) → ttisQid(n__o) → tt
isQid(n__u) → ttnil → n__nil
__(X1, X2) → n____(X1, X2)isPalListKind(X) → n__isPalListKind(X)
and(X1, X2) → n__and(X1, X2)a → n__a
e → n__ei → n__i
o → n__ou → n__u
activate(n__nil) → nilactivate(n____(X1, X2)) → __(X1, X2)
activate(n__isPalListKind(X)) → isPalListKind(X)activate(n__and(X1, X2)) → and(X1, X2)
activate(n__a) → aactivate(n__e) → e
activate(n__i) → iactivate(n__o) → o
activate(n__u) → uactivate(X) → X

Original Signature

Termination of terms over the following signature is verified: isList, isNeList, __, activate, n__u, U62, U43, U61, n__o, U42, U41, isNePal, n__nil, U23, U21, U22, n__e, e, isPalListKind, n__a, a, o, isPal, n__i, i, and, U71, n__and, U72, u, U51, tt, U53, U52, U11, U12, U31, isQid, U32, n____, n__isPalListKind, nil

Strategy


There are no SCCs!

Problem 4: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

__#(__(X, Y), Z) → __#(X, __(Y, Z))__#(__(X, Y), Z) → __#(Y, Z)

Rewrite Rules

__(__(X, Y), Z) → __(X, __(Y, Z))__(X, nil) → X
__(nil, X) → XU11(tt, V) → U12(isNeList(activate(V)))
U12(tt) → ttU21(tt, V1, V2) → U22(isList(activate(V1)), activate(V2))
U22(tt, V2) → U23(isList(activate(V2)))U23(tt) → tt
U31(tt, V) → U32(isQid(activate(V)))U32(tt) → tt
U41(tt, V1, V2) → U42(isList(activate(V1)), activate(V2))U42(tt, V2) → U43(isNeList(activate(V2)))
U43(tt) → ttU51(tt, V1, V2) → U52(isNeList(activate(V1)), activate(V2))
U52(tt, V2) → U53(isList(activate(V2)))U53(tt) → tt
U61(tt, V) → U62(isQid(activate(V)))U62(tt) → tt
U71(tt, V) → U72(isNePal(activate(V)))U72(tt) → tt
and(tt, X) → activate(X)isList(V) → U11(isPalListKind(activate(V)), activate(V))
isList(n__nil) → ttisList(n____(V1, V2)) → U21(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isNeList(V) → U31(isPalListKind(activate(V)), activate(V))isNeList(n____(V1, V2)) → U41(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isNeList(n____(V1, V2)) → U51(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))isNePal(V) → U61(isPalListKind(activate(V)), activate(V))
isNePal(n____(I, __(P, I))) → and(and(isQid(activate(I)), n__isPalListKind(activate(I))), n__and(isPal(activate(P)), n__isPalListKind(activate(P))))isPal(V) → U71(isPalListKind(activate(V)), activate(V))
isPal(n__nil) → ttisPalListKind(n__a) → tt
isPalListKind(n__e) → ttisPalListKind(n__i) → tt
isPalListKind(n__nil) → ttisPalListKind(n__o) → tt
isPalListKind(n__u) → ttisPalListKind(n____(V1, V2)) → and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2)))
isQid(n__a) → ttisQid(n__e) → tt
isQid(n__i) → ttisQid(n__o) → tt
isQid(n__u) → ttnil → n__nil
__(X1, X2) → n____(X1, X2)isPalListKind(X) → n__isPalListKind(X)
and(X1, X2) → n__and(X1, X2)a → n__a
e → n__ei → n__i
o → n__ou → n__u
activate(n__nil) → nilactivate(n____(X1, X2)) → __(X1, X2)
activate(n__isPalListKind(X)) → isPalListKind(X)activate(n__and(X1, X2)) → and(X1, X2)
activate(n__a) → aactivate(n__e) → e
activate(n__i) → iactivate(n__o) → o
activate(n__u) → uactivate(X) → X

Original Signature

Termination of terms over the following signature is verified: isList, isNeList, __, activate, U62, n__u, U61, U43, U42, n__o, U41, isNePal, n__nil, U23, U21, U22, n__e, e, isPalListKind, n__a, a, o, isPal, n__i, U71, and, i, U72, n__and, u, U51, tt, U53, U52, U11, U12, isQid, U31, U32, n____, nil, n__isPalListKind

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

__#(__(X, Y), Z) → __#(X, __(Y, Z))__#(__(X, Y), Z) → __#(Y, Z)

Problem 5: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

activate#(n__isPalListKind(X)) → isPalListKind#(X)isPalListKind#(n____(V1, V2)) → activate#(V2)
and#(tt, X) → activate#(X)isPalListKind#(n____(V1, V2)) → activate#(V1)
isPalListKind#(n____(V1, V2)) → isPalListKind#(activate(V1))activate#(n__and(X1, X2)) → and#(X1, X2)
isPalListKind#(n____(V1, V2)) → and#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2)))

Rewrite Rules

__(__(X, Y), Z) → __(X, __(Y, Z))__(X, nil) → X
__(nil, X) → XU11(tt, V) → U12(isNeList(activate(V)))
U12(tt) → ttU21(tt, V1, V2) → U22(isList(activate(V1)), activate(V2))
U22(tt, V2) → U23(isList(activate(V2)))U23(tt) → tt
U31(tt, V) → U32(isQid(activate(V)))U32(tt) → tt
U41(tt, V1, V2) → U42(isList(activate(V1)), activate(V2))U42(tt, V2) → U43(isNeList(activate(V2)))
U43(tt) → ttU51(tt, V1, V2) → U52(isNeList(activate(V1)), activate(V2))
U52(tt, V2) → U53(isList(activate(V2)))U53(tt) → tt
U61(tt, V) → U62(isQid(activate(V)))U62(tt) → tt
U71(tt, V) → U72(isNePal(activate(V)))U72(tt) → tt
and(tt, X) → activate(X)isList(V) → U11(isPalListKind(activate(V)), activate(V))
isList(n__nil) → ttisList(n____(V1, V2)) → U21(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isNeList(V) → U31(isPalListKind(activate(V)), activate(V))isNeList(n____(V1, V2)) → U41(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isNeList(n____(V1, V2)) → U51(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))isNePal(V) → U61(isPalListKind(activate(V)), activate(V))
isNePal(n____(I, __(P, I))) → and(and(isQid(activate(I)), n__isPalListKind(activate(I))), n__and(isPal(activate(P)), n__isPalListKind(activate(P))))isPal(V) → U71(isPalListKind(activate(V)), activate(V))
isPal(n__nil) → ttisPalListKind(n__a) → tt
isPalListKind(n__e) → ttisPalListKind(n__i) → tt
isPalListKind(n__nil) → ttisPalListKind(n__o) → tt
isPalListKind(n__u) → ttisPalListKind(n____(V1, V2)) → and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2)))
isQid(n__a) → ttisQid(n__e) → tt
isQid(n__i) → ttisQid(n__o) → tt
isQid(n__u) → ttnil → n__nil
__(X1, X2) → n____(X1, X2)isPalListKind(X) → n__isPalListKind(X)
and(X1, X2) → n__and(X1, X2)a → n__a
e → n__ei → n__i
o → n__ou → n__u
activate(n__nil) → nilactivate(n____(X1, X2)) → __(X1, X2)
activate(n__isPalListKind(X)) → isPalListKind(X)activate(n__and(X1, X2)) → and(X1, X2)
activate(n__a) → aactivate(n__e) → e
activate(n__i) → iactivate(n__o) → o
activate(n__u) → uactivate(X) → X

Original Signature

Termination of terms over the following signature is verified: isList, isNeList, __, activate, U62, n__u, U61, U43, U42, n__o, U41, isNePal, n__nil, U23, U21, U22, n__e, e, isPalListKind, n__a, a, o, isPal, n__i, U71, and, i, U72, n__and, u, U51, tt, U53, U52, U11, U12, isQid, U31, U32, n____, nil, n__isPalListKind

Strategy


Polynomial Interpretation

Standard Usable rules

isPalListKind(n__i) → tt__(__(X, Y), Z) → __(X, __(Y, Z))
__(X, nil) → Xa → n__a
isPalListKind(n____(V1, V2)) → and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2)))activate(n__nil) → nil
isPalListKind(n__nil) → ttisPalListKind(n__a) → tt
isPalListKind(n__e) → tt__(X1, X2) → n____(X1, X2)
activate(n__a) → aisPalListKind(X) → n__isPalListKind(X)
e → n__eactivate(n__i) → i
isPalListKind(n__o) → ttand(X1, X2) → n__and(X1, X2)
isPalListKind(n__u) → ttactivate(n____(X1, X2)) → __(X1, X2)
and(tt, X) → activate(X)activate(n__isPalListKind(X)) → isPalListKind(X)
activate(X) → Xactivate(n__u) → u
__(nil, X) → Xi → n__i
u → n__uactivate(n__and(X1, X2)) → and(X1, X2)
activate(n__o) → onil → n__nil
o → n__oactivate(n__e) → e

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

and#(tt, X) → activate#(X)

Problem 8: DependencyGraph



Dependency Pair Problem

Dependency Pairs

activate#(n__isPalListKind(X)) → isPalListKind#(X)isPalListKind#(n____(V1, V2)) → activate#(V2)
isPalListKind#(n____(V1, V2)) → activate#(V1)isPalListKind#(n____(V1, V2)) → isPalListKind#(activate(V1))
activate#(n__and(X1, X2)) → and#(X1, X2)isPalListKind#(n____(V1, V2)) → and#(isPalListKind(activate(V1)), n__isPalListKind(activate(V2)))

Rewrite Rules

__(__(X, Y), Z) → __(X, __(Y, Z))__(X, nil) → X
__(nil, X) → XU11(tt, V) → U12(isNeList(activate(V)))
U12(tt) → ttU21(tt, V1, V2) → U22(isList(activate(V1)), activate(V2))
U22(tt, V2) → U23(isList(activate(V2)))U23(tt) → tt
U31(tt, V) → U32(isQid(activate(V)))U32(tt) → tt
U41(tt, V1, V2) → U42(isList(activate(V1)), activate(V2))U42(tt, V2) → U43(isNeList(activate(V2)))
U43(tt) → ttU51(tt, V1, V2) → U52(isNeList(activate(V1)), activate(V2))
U52(tt, V2) → U53(isList(activate(V2)))U53(tt) → tt
U61(tt, V) → U62(isQid(activate(V)))U62(tt) → tt
U71(tt, V) → U72(isNePal(activate(V)))U72(tt) → tt
and(tt, X) → activate(X)isList(V) → U11(isPalListKind(activate(V)), activate(V))
isList(n__nil) → ttisList(n____(V1, V2)) → U21(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isNeList(V) → U31(isPalListKind(activate(V)), activate(V))isNeList(n____(V1, V2)) → U41(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isNeList(n____(V1, V2)) → U51(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))isNePal(V) → U61(isPalListKind(activate(V)), activate(V))
isNePal(n____(I, __(P, I))) → and(and(isQid(activate(I)), n__isPalListKind(activate(I))), n__and(isPal(activate(P)), n__isPalListKind(activate(P))))isPal(V) → U71(isPalListKind(activate(V)), activate(V))
isPal(n__nil) → ttisPalListKind(n__a) → tt
isPalListKind(n__e) → ttisPalListKind(n__i) → tt
isPalListKind(n__nil) → ttisPalListKind(n__o) → tt
isPalListKind(n__u) → ttisPalListKind(n____(V1, V2)) → and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2)))
isQid(n__a) → ttisQid(n__e) → tt
isQid(n__i) → ttisQid(n__o) → tt
isQid(n__u) → ttnil → n__nil
__(X1, X2) → n____(X1, X2)isPalListKind(X) → n__isPalListKind(X)
and(X1, X2) → n__and(X1, X2)a → n__a
e → n__ei → n__i
o → n__ou → n__u
activate(n__nil) → nilactivate(n____(X1, X2)) → __(X1, X2)
activate(n__isPalListKind(X)) → isPalListKind(X)activate(n__and(X1, X2)) → and(X1, X2)
activate(n__a) → aactivate(n__e) → e
activate(n__i) → iactivate(n__o) → o
activate(n__u) → uactivate(X) → X

Original Signature

Termination of terms over the following signature is verified: isList, isNeList, __, activate, n__u, U62, U43, U61, n__o, U42, U41, isNePal, n__nil, U23, U21, U22, n__e, e, isPalListKind, n__a, a, o, isPal, n__i, i, and, U71, n__and, U72, u, U51, tt, U53, U52, U11, U12, U31, isQid, U32, n____, n__isPalListKind, nil

Strategy


The following SCCs where found

activate#(n__isPalListKind(X)) → isPalListKind#(X)isPalListKind#(n____(V1, V2)) → activate#(V2)
isPalListKind#(n____(V1, V2)) → activate#(V1)isPalListKind#(n____(V1, V2)) → isPalListKind#(activate(V1))

Problem 10: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

activate#(n__isPalListKind(X)) → isPalListKind#(X)isPalListKind#(n____(V1, V2)) → activate#(V2)
isPalListKind#(n____(V1, V2)) → activate#(V1)isPalListKind#(n____(V1, V2)) → isPalListKind#(activate(V1))

Rewrite Rules

__(__(X, Y), Z) → __(X, __(Y, Z))__(X, nil) → X
__(nil, X) → XU11(tt, V) → U12(isNeList(activate(V)))
U12(tt) → ttU21(tt, V1, V2) → U22(isList(activate(V1)), activate(V2))
U22(tt, V2) → U23(isList(activate(V2)))U23(tt) → tt
U31(tt, V) → U32(isQid(activate(V)))U32(tt) → tt
U41(tt, V1, V2) → U42(isList(activate(V1)), activate(V2))U42(tt, V2) → U43(isNeList(activate(V2)))
U43(tt) → ttU51(tt, V1, V2) → U52(isNeList(activate(V1)), activate(V2))
U52(tt, V2) → U53(isList(activate(V2)))U53(tt) → tt
U61(tt, V) → U62(isQid(activate(V)))U62(tt) → tt
U71(tt, V) → U72(isNePal(activate(V)))U72(tt) → tt
and(tt, X) → activate(X)isList(V) → U11(isPalListKind(activate(V)), activate(V))
isList(n__nil) → ttisList(n____(V1, V2)) → U21(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isNeList(V) → U31(isPalListKind(activate(V)), activate(V))isNeList(n____(V1, V2)) → U41(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isNeList(n____(V1, V2)) → U51(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))isNePal(V) → U61(isPalListKind(activate(V)), activate(V))
isNePal(n____(I, __(P, I))) → and(and(isQid(activate(I)), n__isPalListKind(activate(I))), n__and(isPal(activate(P)), n__isPalListKind(activate(P))))isPal(V) → U71(isPalListKind(activate(V)), activate(V))
isPal(n__nil) → ttisPalListKind(n__a) → tt
isPalListKind(n__e) → ttisPalListKind(n__i) → tt
isPalListKind(n__nil) → ttisPalListKind(n__o) → tt
isPalListKind(n__u) → ttisPalListKind(n____(V1, V2)) → and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2)))
isQid(n__a) → ttisQid(n__e) → tt
isQid(n__i) → ttisQid(n__o) → tt
isQid(n__u) → ttnil → n__nil
__(X1, X2) → n____(X1, X2)isPalListKind(X) → n__isPalListKind(X)
and(X1, X2) → n__and(X1, X2)a → n__a
e → n__ei → n__i
o → n__ou → n__u
activate(n__nil) → nilactivate(n____(X1, X2)) → __(X1, X2)
activate(n__isPalListKind(X)) → isPalListKind(X)activate(n__and(X1, X2)) → and(X1, X2)
activate(n__a) → aactivate(n__e) → e
activate(n__i) → iactivate(n__o) → o
activate(n__u) → uactivate(X) → X

Original Signature

Termination of terms over the following signature is verified: isList, isNeList, __, activate, n__u, U62, U43, U61, n__o, U42, U41, isNePal, n__nil, U23, U21, U22, n__e, e, isPalListKind, n__a, a, o, isPal, n__i, i, and, U71, n__and, U72, u, U51, tt, U53, U52, U11, U12, U31, isQid, U32, n____, n__isPalListKind, nil

Strategy


Polynomial Interpretation

Standard Usable rules

isPalListKind(n__i) → tt__(__(X, Y), Z) → __(X, __(Y, Z))
__(X, nil) → Xa → n__a
isPalListKind(n____(V1, V2)) → and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2)))activate(n__nil) → nil
isPalListKind(n__nil) → ttisPalListKind(n__a) → tt
isPalListKind(n__e) → tt__(X1, X2) → n____(X1, X2)
isPalListKind(X) → n__isPalListKind(X)activate(n__a) → a
e → n__eactivate(n__i) → i
isPalListKind(n__o) → ttand(X1, X2) → n__and(X1, X2)
isPalListKind(n__u) → ttactivate(n____(X1, X2)) → __(X1, X2)
and(tt, X) → activate(X)activate(n__isPalListKind(X)) → isPalListKind(X)
activate(X) → Xactivate(n__u) → u
__(nil, X) → Xi → n__i
u → n__uactivate(n__o) → o
activate(n__and(X1, X2)) → and(X1, X2)nil → n__nil
o → n__oactivate(n__e) → e

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

activate#(n__isPalListKind(X)) → isPalListKind#(X)

Problem 12: DependencyGraph



Dependency Pair Problem

Dependency Pairs

isPalListKind#(n____(V1, V2)) → activate#(V2)isPalListKind#(n____(V1, V2)) → activate#(V1)
isPalListKind#(n____(V1, V2)) → isPalListKind#(activate(V1))

Rewrite Rules

__(__(X, Y), Z) → __(X, __(Y, Z))__(X, nil) → X
__(nil, X) → XU11(tt, V) → U12(isNeList(activate(V)))
U12(tt) → ttU21(tt, V1, V2) → U22(isList(activate(V1)), activate(V2))
U22(tt, V2) → U23(isList(activate(V2)))U23(tt) → tt
U31(tt, V) → U32(isQid(activate(V)))U32(tt) → tt
U41(tt, V1, V2) → U42(isList(activate(V1)), activate(V2))U42(tt, V2) → U43(isNeList(activate(V2)))
U43(tt) → ttU51(tt, V1, V2) → U52(isNeList(activate(V1)), activate(V2))
U52(tt, V2) → U53(isList(activate(V2)))U53(tt) → tt
U61(tt, V) → U62(isQid(activate(V)))U62(tt) → tt
U71(tt, V) → U72(isNePal(activate(V)))U72(tt) → tt
and(tt, X) → activate(X)isList(V) → U11(isPalListKind(activate(V)), activate(V))
isList(n__nil) → ttisList(n____(V1, V2)) → U21(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isNeList(V) → U31(isPalListKind(activate(V)), activate(V))isNeList(n____(V1, V2)) → U41(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isNeList(n____(V1, V2)) → U51(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))isNePal(V) → U61(isPalListKind(activate(V)), activate(V))
isNePal(n____(I, __(P, I))) → and(and(isQid(activate(I)), n__isPalListKind(activate(I))), n__and(isPal(activate(P)), n__isPalListKind(activate(P))))isPal(V) → U71(isPalListKind(activate(V)), activate(V))
isPal(n__nil) → ttisPalListKind(n__a) → tt
isPalListKind(n__e) → ttisPalListKind(n__i) → tt
isPalListKind(n__nil) → ttisPalListKind(n__o) → tt
isPalListKind(n__u) → ttisPalListKind(n____(V1, V2)) → and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2)))
isQid(n__a) → ttisQid(n__e) → tt
isQid(n__i) → ttisQid(n__o) → tt
isQid(n__u) → ttnil → n__nil
__(X1, X2) → n____(X1, X2)isPalListKind(X) → n__isPalListKind(X)
and(X1, X2) → n__and(X1, X2)a → n__a
e → n__ei → n__i
o → n__ou → n__u
activate(n__nil) → nilactivate(n____(X1, X2)) → __(X1, X2)
activate(n__isPalListKind(X)) → isPalListKind(X)activate(n__and(X1, X2)) → and(X1, X2)
activate(n__a) → aactivate(n__e) → e
activate(n__i) → iactivate(n__o) → o
activate(n__u) → uactivate(X) → X

Original Signature

Termination of terms over the following signature is verified: isList, isNeList, __, activate, U62, n__u, U61, U43, U42, n__o, U41, isNePal, n__nil, U23, U21, U22, n__e, e, isPalListKind, n__a, a, o, isPal, n__i, U71, and, i, U72, n__and, u, U51, tt, U53, U52, U11, U12, isQid, U31, U32, n____, nil, n__isPalListKind

Strategy


The following SCCs where found

isPalListKind#(n____(V1, V2)) → isPalListKind#(activate(V1))

Problem 14: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

isPalListKind#(n____(V1, V2)) → isPalListKind#(activate(V1))

Rewrite Rules

__(__(X, Y), Z) → __(X, __(Y, Z))__(X, nil) → X
__(nil, X) → XU11(tt, V) → U12(isNeList(activate(V)))
U12(tt) → ttU21(tt, V1, V2) → U22(isList(activate(V1)), activate(V2))
U22(tt, V2) → U23(isList(activate(V2)))U23(tt) → tt
U31(tt, V) → U32(isQid(activate(V)))U32(tt) → tt
U41(tt, V1, V2) → U42(isList(activate(V1)), activate(V2))U42(tt, V2) → U43(isNeList(activate(V2)))
U43(tt) → ttU51(tt, V1, V2) → U52(isNeList(activate(V1)), activate(V2))
U52(tt, V2) → U53(isList(activate(V2)))U53(tt) → tt
U61(tt, V) → U62(isQid(activate(V)))U62(tt) → tt
U71(tt, V) → U72(isNePal(activate(V)))U72(tt) → tt
and(tt, X) → activate(X)isList(V) → U11(isPalListKind(activate(V)), activate(V))
isList(n__nil) → ttisList(n____(V1, V2)) → U21(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isNeList(V) → U31(isPalListKind(activate(V)), activate(V))isNeList(n____(V1, V2)) → U41(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))
isNeList(n____(V1, V2)) → U51(and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2))), activate(V1), activate(V2))isNePal(V) → U61(isPalListKind(activate(V)), activate(V))
isNePal(n____(I, __(P, I))) → and(and(isQid(activate(I)), n__isPalListKind(activate(I))), n__and(isPal(activate(P)), n__isPalListKind(activate(P))))isPal(V) → U71(isPalListKind(activate(V)), activate(V))
isPal(n__nil) → ttisPalListKind(n__a) → tt
isPalListKind(n__e) → ttisPalListKind(n__i) → tt
isPalListKind(n__nil) → ttisPalListKind(n__o) → tt
isPalListKind(n__u) → ttisPalListKind(n____(V1, V2)) → and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2)))
isQid(n__a) → ttisQid(n__e) → tt
isQid(n__i) → ttisQid(n__o) → tt
isQid(n__u) → ttnil → n__nil
__(X1, X2) → n____(X1, X2)isPalListKind(X) → n__isPalListKind(X)
and(X1, X2) → n__and(X1, X2)a → n__a
e → n__ei → n__i
o → n__ou → n__u
activate(n__nil) → nilactivate(n____(X1, X2)) → __(X1, X2)
activate(n__isPalListKind(X)) → isPalListKind(X)activate(n__and(X1, X2)) → and(X1, X2)
activate(n__a) → aactivate(n__e) → e
activate(n__i) → iactivate(n__o) → o
activate(n__u) → uactivate(X) → X

Original Signature

Termination of terms over the following signature is verified: isList, isNeList, __, activate, U62, n__u, U61, U43, U42, n__o, U41, isNePal, n__nil, U23, U21, U22, n__e, e, isPalListKind, n__a, a, o, isPal, n__i, U71, and, i, U72, n__and, u, U51, tt, U53, U52, U11, U12, isQid, U31, U32, n____, nil, n__isPalListKind

Strategy


Polynomial Interpretation

Standard Usable rules

isPalListKind(n__i) → tt__(__(X, Y), Z) → __(X, __(Y, Z))
__(X, nil) → Xa → n__a
isPalListKind(n____(V1, V2)) → and(isPalListKind(activate(V1)), n__isPalListKind(activate(V2)))activate(n__nil) → nil
isPalListKind(n__nil) → ttisPalListKind(n__a) → tt
isPalListKind(n__e) → tt__(X1, X2) → n____(X1, X2)
isPalListKind(X) → n__isPalListKind(X)activate(n__a) → a
e → n__eactivate(n__i) → i
isPalListKind(n__o) → ttand(X1, X2) → n__and(X1, X2)
isPalListKind(n__u) → ttactivate(n____(X1, X2)) → __(X1, X2)
and(tt, X) → activate(X)activate(n__isPalListKind(X)) → isPalListKind(X)
activate(X) → Xactivate(n__u) → u
__(nil, X) → Xi → n__i
u → n__uactivate(n__o) → o
activate(n__and(X1, X2)) → and(X1, X2)nil → n__nil
o → n__oactivate(n__e) → e

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

isPalListKind#(n____(V1, V2)) → isPalListKind#(activate(V1))