YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (469ms).
 | – Problem 2 was processed with processor SubtermCriterion (1ms).
 | – Problem 3 was processed with processor PolynomialLinearRange4 (300ms).
 |    | – Problem 4 was processed with processor PolynomialLinearRange4 (203ms).
 |    |    | – Problem 5 was processed with processor DependencyGraph (79ms).
 |    |    |    | – Problem 6 was processed with processor PolynomialLinearRange4 (310ms).
 |    |    |    |    | – Problem 7 was processed with processor DependencyGraph (11ms).
 |    |    |    |    |    | – Problem 8 was processed with processor PolynomialLinearRange4 (124ms).
 |    |    |    |    |    |    | – Problem 9 was processed with processor DependencyGraph (1ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

isNePal#(n____(I, n____(P, I))) → activate#(P)and#(tt, X) → activate#(X)
isNeList#(n____(V1, V2)) → and#(isNeList(activate(V1)), n__isList(activate(V2)))activate#(n__o) → o#
isNePal#(n____(I, n____(P, I))) → activate#(I)activate#(n____(X1, X2)) → activate#(X2)
isNeList#(n____(V1, V2)) → and#(isList(activate(V1)), n__isNeList(activate(V2)))isList#(n____(V1, V2)) → and#(isList(activate(V1)), n__isList(activate(V2)))
isNePal#(V) → isQid#(activate(V))isNePal#(V) → activate#(V)
__#(__(X, Y), Z) → __#(Y, Z)activate#(n____(X1, X2)) → __#(activate(X1), activate(X2))
isNeList#(n____(V1, V2)) → isList#(activate(V1))isList#(n____(V1, V2)) → activate#(V1)
activate#(n__a) → a#isNePal#(n____(I, n____(P, I))) → and#(isQid(activate(I)), n__isPal(activate(P)))
isList#(n____(V1, V2)) → activate#(V2)isNePal#(n____(I, n____(P, I))) → isQid#(activate(I))
activate#(n____(X1, X2)) → activate#(X1)isNeList#(V) → activate#(V)
isNeList#(n____(V1, V2)) → activate#(V1)__#(__(X, Y), Z) → __#(X, __(Y, Z))
activate#(n__isList(X)) → isList#(X)isNeList#(V) → isQid#(activate(V))
activate#(n__isNeList(X)) → isNeList#(X)isPal#(V) → isNePal#(activate(V))
activate#(n__u) → u#activate#(n__nil) → nil#
activate#(n__e) → e#isNeList#(n____(V1, V2)) → activate#(V2)
activate#(n__i) → i#activate#(n__isPal(X)) → isPal#(X)
isPal#(V) → activate#(V)isList#(V) → activate#(V)
isNeList#(n____(V1, V2)) → isNeList#(activate(V1))isList#(V) → isNeList#(activate(V))
isList#(n____(V1, V2)) → isList#(activate(V1))

Rewrite Rules

__(__(X, Y), Z) → __(X, __(Y, Z))__(X, nil) → X
__(nil, X) → Xand(tt, X) → activate(X)
isList(V) → isNeList(activate(V))isList(n__nil) → tt
isList(n____(V1, V2)) → and(isList(activate(V1)), n__isList(activate(V2)))isNeList(V) → isQid(activate(V))
isNeList(n____(V1, V2)) → and(isList(activate(V1)), n__isNeList(activate(V2)))isNeList(n____(V1, V2)) → and(isNeList(activate(V1)), n__isList(activate(V2)))
isNePal(V) → isQid(activate(V))isNePal(n____(I, n____(P, I))) → and(isQid(activate(I)), n__isPal(activate(P)))
isPal(V) → isNePal(activate(V))isPal(n__nil) → tt
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)isList(X) → n__isList(X)
isNeList(X) → n__isNeList(X)isPal(X) → n__isPal(X)
a → n__ae → n__e
i → n__io → n__o
u → n__uactivate(n__nil) → nil
activate(n____(X1, X2)) → __(activate(X1), activate(X2))activate(n__isList(X)) → isList(X)
activate(n__isNeList(X)) → isNeList(X)activate(n__isPal(X)) → isPal(X)
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, n__o, isNePal, n__nil, n__e, e, n__a, a, o, isPal, n__i, and, i, u, tt, isQid, n____, n__isNeList, n__isList, nil, n__isPal

Strategy


The following SCCs where found

isNePal#(n____(I, n____(P, I))) → activate#(P)and#(tt, X) → activate#(X)
isNeList#(n____(V1, V2)) → and#(isNeList(activate(V1)), n__isList(activate(V2)))isNePal#(n____(I, n____(P, I))) → activate#(I)
activate#(n____(X1, X2)) → activate#(X2)isNeList#(n____(V1, V2)) → and#(isList(activate(V1)), n__isNeList(activate(V2)))
isList#(n____(V1, V2)) → and#(isList(activate(V1)), n__isList(activate(V2)))isNePal#(V) → activate#(V)
isNeList#(n____(V1, V2)) → isList#(activate(V1))isList#(n____(V1, V2)) → activate#(V1)
isNePal#(n____(I, n____(P, I))) → and#(isQid(activate(I)), n__isPal(activate(P)))isList#(n____(V1, V2)) → activate#(V2)
isNeList#(V) → activate#(V)activate#(n____(X1, X2)) → activate#(X1)
isNeList#(n____(V1, V2)) → activate#(V1)activate#(n__isList(X)) → isList#(X)
activate#(n__isNeList(X)) → isNeList#(X)isPal#(V) → isNePal#(activate(V))
isNeList#(n____(V1, V2)) → activate#(V2)activate#(n__isPal(X)) → isPal#(X)
isList#(V) → activate#(V)isPal#(V) → activate#(V)
isNeList#(n____(V1, V2)) → isNeList#(activate(V1))isList#(V) → isNeList#(activate(V))
isList#(n____(V1, V2)) → isList#(activate(V1))

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

Problem 2: 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) → Xand(tt, X) → activate(X)
isList(V) → isNeList(activate(V))isList(n__nil) → tt
isList(n____(V1, V2)) → and(isList(activate(V1)), n__isList(activate(V2)))isNeList(V) → isQid(activate(V))
isNeList(n____(V1, V2)) → and(isList(activate(V1)), n__isNeList(activate(V2)))isNeList(n____(V1, V2)) → and(isNeList(activate(V1)), n__isList(activate(V2)))
isNePal(V) → isQid(activate(V))isNePal(n____(I, n____(P, I))) → and(isQid(activate(I)), n__isPal(activate(P)))
isPal(V) → isNePal(activate(V))isPal(n__nil) → tt
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)isList(X) → n__isList(X)
isNeList(X) → n__isNeList(X)isPal(X) → n__isPal(X)
a → n__ae → n__e
i → n__io → n__o
u → n__uactivate(n__nil) → nil
activate(n____(X1, X2)) → __(activate(X1), activate(X2))activate(n__isList(X)) → isList(X)
activate(n__isNeList(X)) → isNeList(X)activate(n__isPal(X)) → isPal(X)
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, n__o, isNePal, n__nil, n__e, e, n__a, a, o, isPal, n__i, and, i, u, tt, isQid, n____, n__isNeList, n__isList, nil, n__isPal

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 3: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

isNePal#(n____(I, n____(P, I))) → activate#(P)and#(tt, X) → activate#(X)
isNeList#(n____(V1, V2)) → and#(isNeList(activate(V1)), n__isList(activate(V2)))isNePal#(n____(I, n____(P, I))) → activate#(I)
activate#(n____(X1, X2)) → activate#(X2)isNeList#(n____(V1, V2)) → and#(isList(activate(V1)), n__isNeList(activate(V2)))
isList#(n____(V1, V2)) → and#(isList(activate(V1)), n__isList(activate(V2)))isNePal#(V) → activate#(V)
isNeList#(n____(V1, V2)) → isList#(activate(V1))isList#(n____(V1, V2)) → activate#(V1)
isNePal#(n____(I, n____(P, I))) → and#(isQid(activate(I)), n__isPal(activate(P)))isList#(n____(V1, V2)) → activate#(V2)
activate#(n____(X1, X2)) → activate#(X1)isNeList#(V) → activate#(V)
isNeList#(n____(V1, V2)) → activate#(V1)activate#(n__isList(X)) → isList#(X)
activate#(n__isNeList(X)) → isNeList#(X)isPal#(V) → isNePal#(activate(V))
isNeList#(n____(V1, V2)) → activate#(V2)activate#(n__isPal(X)) → isPal#(X)
isPal#(V) → activate#(V)isList#(V) → activate#(V)
isNeList#(n____(V1, V2)) → isNeList#(activate(V1))isList#(n____(V1, V2)) → isList#(activate(V1))
isList#(V) → isNeList#(activate(V))

Rewrite Rules

__(__(X, Y), Z) → __(X, __(Y, Z))__(X, nil) → X
__(nil, X) → Xand(tt, X) → activate(X)
isList(V) → isNeList(activate(V))isList(n__nil) → tt
isList(n____(V1, V2)) → and(isList(activate(V1)), n__isList(activate(V2)))isNeList(V) → isQid(activate(V))
isNeList(n____(V1, V2)) → and(isList(activate(V1)), n__isNeList(activate(V2)))isNeList(n____(V1, V2)) → and(isNeList(activate(V1)), n__isList(activate(V2)))
isNePal(V) → isQid(activate(V))isNePal(n____(I, n____(P, I))) → and(isQid(activate(I)), n__isPal(activate(P)))
isPal(V) → isNePal(activate(V))isPal(n__nil) → tt
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)isList(X) → n__isList(X)
isNeList(X) → n__isNeList(X)isPal(X) → n__isPal(X)
a → n__ae → n__e
i → n__io → n__o
u → n__uactivate(n__nil) → nil
activate(n____(X1, X2)) → __(activate(X1), activate(X2))activate(n__isList(X)) → isList(X)
activate(n__isNeList(X)) → isNeList(X)activate(n__isPal(X)) → isPal(X)
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, n__o, isNePal, n__nil, n__e, e, n__a, a, o, isPal, n__i, and, i, u, tt, isQid, n____, n__isNeList, n__isList, nil, n__isPal

Strategy


Polynomial Interpretation

Standard Usable rules

__(__(X, Y), Z) → __(X, __(Y, Z))__(X, nil) → X
a → n__aactivate(n__nil) → nil
activate(n____(X1, X2)) → __(activate(X1), activate(X2))isPal(n__nil) → tt
isPal(X) → n__isPal(X)isQid(n__u) → tt
isQid(n__e) → tt__(X1, X2) → n____(X1, X2)
isNePal(V) → isQid(activate(V))activate(n__isPal(X)) → isPal(X)
isNeList(X) → n__isNeList(X)isList(V) → isNeList(activate(V))
activate(n__a) → ae → n__e
activate(n__i) → iisList(n____(V1, V2)) → and(isList(activate(V1)), n__isList(activate(V2)))
isNeList(n____(V1, V2)) → and(isList(activate(V1)), n__isNeList(activate(V2)))isNeList(V) → isQid(activate(V))
isList(n__nil) → ttisQid(n__a) → tt
isNeList(n____(V1, V2)) → and(isNeList(activate(V1)), n__isList(activate(V2)))activate(n__isList(X)) → isList(X)
isQid(n__i) → ttand(tt, X) → activate(X)
activate(n__isNeList(X)) → isNeList(X)activate(X) → X
isList(X) → n__isList(X)isPal(V) → isNePal(activate(V))
activate(n__u) → uisNePal(n____(I, n____(P, I))) → and(isQid(activate(I)), n__isPal(activate(P)))
__(nil, X) → Xi → n__i
u → n__uactivate(n__o) → o
o → n__onil → n__nil
isQid(n__o) → ttactivate(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)) → activate#(V1)isList#(n____(V1, V2)) → activate#(V2)
isNeList#(V) → activate#(V)isNeList#(n____(V1, V2)) → activate#(V1)
isNeList#(n____(V1, V2)) → activate#(V2)isList#(V) → activate#(V)

Problem 4: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

isNePal#(n____(I, n____(P, I))) → activate#(P)and#(tt, X) → activate#(X)
isNeList#(n____(V1, V2)) → and#(isNeList(activate(V1)), n__isList(activate(V2)))isNePal#(n____(I, n____(P, I))) → activate#(I)
activate#(n__isList(X)) → isList#(X)activate#(n____(X1, X2)) → activate#(X2)
isNeList#(n____(V1, V2)) → and#(isList(activate(V1)), n__isNeList(activate(V2)))isList#(n____(V1, V2)) → and#(isList(activate(V1)), n__isList(activate(V2)))
activate#(n__isNeList(X)) → isNeList#(X)isPal#(V) → isNePal#(activate(V))
isNePal#(V) → activate#(V)isNeList#(n____(V1, V2)) → isList#(activate(V1))
isNePal#(n____(I, n____(P, I))) → and#(isQid(activate(I)), n__isPal(activate(P)))activate#(n____(X1, X2)) → activate#(X1)
activate#(n__isPal(X)) → isPal#(X)isPal#(V) → activate#(V)
isNeList#(n____(V1, V2)) → isNeList#(activate(V1))isList#(V) → isNeList#(activate(V))
isList#(n____(V1, V2)) → isList#(activate(V1))

Rewrite Rules

__(__(X, Y), Z) → __(X, __(Y, Z))__(X, nil) → X
__(nil, X) → Xand(tt, X) → activate(X)
isList(V) → isNeList(activate(V))isList(n__nil) → tt
isList(n____(V1, V2)) → and(isList(activate(V1)), n__isList(activate(V2)))isNeList(V) → isQid(activate(V))
isNeList(n____(V1, V2)) → and(isList(activate(V1)), n__isNeList(activate(V2)))isNeList(n____(V1, V2)) → and(isNeList(activate(V1)), n__isList(activate(V2)))
isNePal(V) → isQid(activate(V))isNePal(n____(I, n____(P, I))) → and(isQid(activate(I)), n__isPal(activate(P)))
isPal(V) → isNePal(activate(V))isPal(n__nil) → tt
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)isList(X) → n__isList(X)
isNeList(X) → n__isNeList(X)isPal(X) → n__isPal(X)
a → n__ae → n__e
i → n__io → n__o
u → n__uactivate(n__nil) → nil
activate(n____(X1, X2)) → __(activate(X1), activate(X2))activate(n__isList(X)) → isList(X)
activate(n__isNeList(X)) → isNeList(X)activate(n__isPal(X)) → isPal(X)
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, n__o, isNePal, n__nil, n__e, e, n__a, a, o, isPal, n__i, and, i, u, tt, isQid, n____, n__isNeList, n__isList, nil, n__isPal

Strategy


Polynomial Interpretation

Standard Usable rules

__(__(X, Y), Z) → __(X, __(Y, Z))__(X, nil) → X
a → n__aactivate(n__nil) → nil
activate(n____(X1, X2)) → __(activate(X1), activate(X2))isPal(n__nil) → tt
isPal(X) → n__isPal(X)isQid(n__u) → tt
isQid(n__e) → tt__(X1, X2) → n____(X1, X2)
isNePal(V) → isQid(activate(V))activate(n__isPal(X)) → isPal(X)
isNeList(X) → n__isNeList(X)isList(V) → isNeList(activate(V))
activate(n__a) → ae → n__e
activate(n__i) → iisList(n____(V1, V2)) → and(isList(activate(V1)), n__isList(activate(V2)))
isNeList(n____(V1, V2)) → and(isList(activate(V1)), n__isNeList(activate(V2)))isNeList(V) → isQid(activate(V))
isList(n__nil) → ttisQid(n__a) → tt
isNeList(n____(V1, V2)) → and(isNeList(activate(V1)), n__isList(activate(V2)))activate(n__isList(X)) → isList(X)
isQid(n__i) → ttand(tt, X) → activate(X)
activate(n__isNeList(X)) → isNeList(X)activate(X) → X
isList(X) → n__isList(X)isPal(V) → isNePal(activate(V))
activate(n__u) → uisNePal(n____(I, n____(P, I))) → and(isQid(activate(I)), n__isPal(activate(P)))
__(nil, X) → Xi → n__i
u → n__uactivate(n__o) → o
o → n__onil → n__nil
isQid(n__o) → ttactivate(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, n____(P, I))) → activate#(P)isNePal#(n____(I, n____(P, I))) → activate#(I)
activate#(n____(X1, X2)) → activate#(X2)activate#(n____(X1, X2)) → activate#(X1)
activate#(n__isPal(X)) → isPal#(X)

Problem 5: DependencyGraph



Dependency Pair Problem

Dependency Pairs

and#(tt, X) → activate#(X)isNeList#(n____(V1, V2)) → and#(isNeList(activate(V1)), n__isList(activate(V2)))
activate#(n__isList(X)) → isList#(X)isNeList#(n____(V1, V2)) → and#(isList(activate(V1)), n__isNeList(activate(V2)))
isList#(n____(V1, V2)) → and#(isList(activate(V1)), n__isList(activate(V2)))activate#(n__isNeList(X)) → isNeList#(X)
isPal#(V) → isNePal#(activate(V))isNePal#(V) → activate#(V)
isNeList#(n____(V1, V2)) → isList#(activate(V1))isNePal#(n____(I, n____(P, I))) → and#(isQid(activate(I)), n__isPal(activate(P)))
isPal#(V) → activate#(V)isNeList#(n____(V1, V2)) → isNeList#(activate(V1))
isList#(n____(V1, V2)) → isList#(activate(V1))isList#(V) → isNeList#(activate(V))

Rewrite Rules

__(__(X, Y), Z) → __(X, __(Y, Z))__(X, nil) → X
__(nil, X) → Xand(tt, X) → activate(X)
isList(V) → isNeList(activate(V))isList(n__nil) → tt
isList(n____(V1, V2)) → and(isList(activate(V1)), n__isList(activate(V2)))isNeList(V) → isQid(activate(V))
isNeList(n____(V1, V2)) → and(isList(activate(V1)), n__isNeList(activate(V2)))isNeList(n____(V1, V2)) → and(isNeList(activate(V1)), n__isList(activate(V2)))
isNePal(V) → isQid(activate(V))isNePal(n____(I, n____(P, I))) → and(isQid(activate(I)), n__isPal(activate(P)))
isPal(V) → isNePal(activate(V))isPal(n__nil) → tt
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)isList(X) → n__isList(X)
isNeList(X) → n__isNeList(X)isPal(X) → n__isPal(X)
a → n__ae → n__e
i → n__io → n__o
u → n__uactivate(n__nil) → nil
activate(n____(X1, X2)) → __(activate(X1), activate(X2))activate(n__isList(X)) → isList(X)
activate(n__isNeList(X)) → isNeList(X)activate(n__isPal(X)) → isPal(X)
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, n__o, isNePal, n__nil, n__e, e, n__a, a, o, isPal, n__i, and, i, u, tt, isQid, n____, n__isNeList, n__isList, nil, n__isPal

Strategy


The following SCCs where found

and#(tt, X) → activate#(X)isNeList#(n____(V1, V2)) → and#(isNeList(activate(V1)), n__isList(activate(V2)))
activate#(n__isList(X)) → isList#(X)isNeList#(n____(V1, V2)) → and#(isList(activate(V1)), n__isNeList(activate(V2)))
isList#(n____(V1, V2)) → and#(isList(activate(V1)), n__isList(activate(V2)))activate#(n__isNeList(X)) → isNeList#(X)
isNeList#(n____(V1, V2)) → isNeList#(activate(V1))isList#(V) → isNeList#(activate(V))
isNeList#(n____(V1, V2)) → isList#(activate(V1))isList#(n____(V1, V2)) → isList#(activate(V1))

Problem 6: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

and#(tt, X) → activate#(X)isNeList#(n____(V1, V2)) → and#(isNeList(activate(V1)), n__isList(activate(V2)))
activate#(n__isList(X)) → isList#(X)isNeList#(n____(V1, V2)) → and#(isList(activate(V1)), n__isNeList(activate(V2)))
isList#(n____(V1, V2)) → and#(isList(activate(V1)), n__isList(activate(V2)))activate#(n__isNeList(X)) → isNeList#(X)
isNeList#(n____(V1, V2)) → isNeList#(activate(V1))isList#(V) → isNeList#(activate(V))
isNeList#(n____(V1, V2)) → isList#(activate(V1))isList#(n____(V1, V2)) → isList#(activate(V1))

Rewrite Rules

__(__(X, Y), Z) → __(X, __(Y, Z))__(X, nil) → X
__(nil, X) → Xand(tt, X) → activate(X)
isList(V) → isNeList(activate(V))isList(n__nil) → tt
isList(n____(V1, V2)) → and(isList(activate(V1)), n__isList(activate(V2)))isNeList(V) → isQid(activate(V))
isNeList(n____(V1, V2)) → and(isList(activate(V1)), n__isNeList(activate(V2)))isNeList(n____(V1, V2)) → and(isNeList(activate(V1)), n__isList(activate(V2)))
isNePal(V) → isQid(activate(V))isNePal(n____(I, n____(P, I))) → and(isQid(activate(I)), n__isPal(activate(P)))
isPal(V) → isNePal(activate(V))isPal(n__nil) → tt
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)isList(X) → n__isList(X)
isNeList(X) → n__isNeList(X)isPal(X) → n__isPal(X)
a → n__ae → n__e
i → n__io → n__o
u → n__uactivate(n__nil) → nil
activate(n____(X1, X2)) → __(activate(X1), activate(X2))activate(n__isList(X)) → isList(X)
activate(n__isNeList(X)) → isNeList(X)activate(n__isPal(X)) → isPal(X)
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, n__o, isNePal, n__nil, n__e, e, n__a, a, o, isPal, n__i, and, i, u, tt, isQid, n____, n__isNeList, n__isList, nil, n__isPal

Strategy


Polynomial Interpretation

Standard Usable rules

__(__(X, Y), Z) → __(X, __(Y, Z))__(X, nil) → X
a → n__aactivate(n__nil) → nil
activate(n____(X1, X2)) → __(activate(X1), activate(X2))isPal(n__nil) → tt
isQid(n__u) → ttisPal(X) → n__isPal(X)
isQid(n__e) → tt__(X1, X2) → n____(X1, X2)
isNePal(V) → isQid(activate(V))activate(n__isPal(X)) → isPal(X)
isNeList(X) → n__isNeList(X)isList(V) → isNeList(activate(V))
activate(n__a) → ae → n__e
activate(n__i) → iisList(n____(V1, V2)) → and(isList(activate(V1)), n__isList(activate(V2)))
isNeList(n____(V1, V2)) → and(isList(activate(V1)), n__isNeList(activate(V2)))isNeList(V) → isQid(activate(V))
isList(n__nil) → ttisQid(n__a) → tt
activate(n__isList(X)) → isList(X)isNeList(n____(V1, V2)) → and(isNeList(activate(V1)), n__isList(activate(V2)))
isQid(n__i) → ttand(tt, X) → activate(X)
activate(n__isNeList(X)) → isNeList(X)activate(X) → X
isList(X) → n__isList(X)isPal(V) → isNePal(activate(V))
activate(n__u) → uisNePal(n____(I, n____(P, I))) → and(isQid(activate(I)), n__isPal(activate(P)))
__(nil, X) → Xi → n__i
u → n__uactivate(n__o) → o
nil → n__nilo → n__o
isQid(n__o) → ttactivate(n__e) → e

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

activate#(n__isList(X)) → isList#(X)activate#(n__isNeList(X)) → isNeList#(X)

Problem 7: DependencyGraph



Dependency Pair Problem

Dependency Pairs

and#(tt, X) → activate#(X)isNeList#(n____(V1, V2)) → and#(isNeList(activate(V1)), n__isList(activate(V2)))
isNeList#(n____(V1, V2)) → and#(isList(activate(V1)), n__isNeList(activate(V2)))isList#(n____(V1, V2)) → and#(isList(activate(V1)), n__isList(activate(V2)))
isNeList#(n____(V1, V2)) → isNeList#(activate(V1))isList#(n____(V1, V2)) → isList#(activate(V1))
isNeList#(n____(V1, V2)) → isList#(activate(V1))isList#(V) → isNeList#(activate(V))

Rewrite Rules

__(__(X, Y), Z) → __(X, __(Y, Z))__(X, nil) → X
__(nil, X) → Xand(tt, X) → activate(X)
isList(V) → isNeList(activate(V))isList(n__nil) → tt
isList(n____(V1, V2)) → and(isList(activate(V1)), n__isList(activate(V2)))isNeList(V) → isQid(activate(V))
isNeList(n____(V1, V2)) → and(isList(activate(V1)), n__isNeList(activate(V2)))isNeList(n____(V1, V2)) → and(isNeList(activate(V1)), n__isList(activate(V2)))
isNePal(V) → isQid(activate(V))isNePal(n____(I, n____(P, I))) → and(isQid(activate(I)), n__isPal(activate(P)))
isPal(V) → isNePal(activate(V))isPal(n__nil) → tt
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)isList(X) → n__isList(X)
isNeList(X) → n__isNeList(X)isPal(X) → n__isPal(X)
a → n__ae → n__e
i → n__io → n__o
u → n__uactivate(n__nil) → nil
activate(n____(X1, X2)) → __(activate(X1), activate(X2))activate(n__isList(X)) → isList(X)
activate(n__isNeList(X)) → isNeList(X)activate(n__isPal(X)) → isPal(X)
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, n__o, isNePal, n__nil, n__e, e, n__a, a, o, isPal, n__i, and, i, u, tt, isQid, n____, n__isNeList, n__isList, nil, n__isPal

Strategy


The following SCCs where found

isNeList#(n____(V1, V2)) → isNeList#(activate(V1))isNeList#(n____(V1, V2)) → isList#(activate(V1))
isList#(n____(V1, V2)) → isList#(activate(V1))isList#(V) → isNeList#(activate(V))

Problem 8: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

isNeList#(n____(V1, V2)) → isNeList#(activate(V1))isNeList#(n____(V1, V2)) → isList#(activate(V1))
isList#(n____(V1, V2)) → isList#(activate(V1))isList#(V) → isNeList#(activate(V))

Rewrite Rules

__(__(X, Y), Z) → __(X, __(Y, Z))__(X, nil) → X
__(nil, X) → Xand(tt, X) → activate(X)
isList(V) → isNeList(activate(V))isList(n__nil) → tt
isList(n____(V1, V2)) → and(isList(activate(V1)), n__isList(activate(V2)))isNeList(V) → isQid(activate(V))
isNeList(n____(V1, V2)) → and(isList(activate(V1)), n__isNeList(activate(V2)))isNeList(n____(V1, V2)) → and(isNeList(activate(V1)), n__isList(activate(V2)))
isNePal(V) → isQid(activate(V))isNePal(n____(I, n____(P, I))) → and(isQid(activate(I)), n__isPal(activate(P)))
isPal(V) → isNePal(activate(V))isPal(n__nil) → tt
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)isList(X) → n__isList(X)
isNeList(X) → n__isNeList(X)isPal(X) → n__isPal(X)
a → n__ae → n__e
i → n__io → n__o
u → n__uactivate(n__nil) → nil
activate(n____(X1, X2)) → __(activate(X1), activate(X2))activate(n__isList(X)) → isList(X)
activate(n__isNeList(X)) → isNeList(X)activate(n__isPal(X)) → isPal(X)
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, n__o, isNePal, n__nil, n__e, e, n__a, a, o, isPal, n__i, and, i, u, tt, isQid, n____, n__isNeList, n__isList, nil, n__isPal

Strategy


Polynomial Interpretation

Standard Usable rules

__(__(X, Y), Z) → __(X, __(Y, Z))__(X, nil) → X
a → n__aactivate(n__nil) → nil
activate(n____(X1, X2)) → __(activate(X1), activate(X2))isPal(n__nil) → tt
isPal(X) → n__isPal(X)isQid(n__u) → tt
isQid(n__e) → ttactivate(n__isPal(X)) → isPal(X)
isNePal(V) → isQid(activate(V))__(X1, X2) → n____(X1, X2)
isNeList(X) → n__isNeList(X)activate(n__a) → a
isList(V) → isNeList(activate(V))e → n__e
activate(n__i) → iisList(n____(V1, V2)) → and(isList(activate(V1)), n__isList(activate(V2)))
isList(n__nil) → ttisNeList(V) → isQid(activate(V))
isNeList(n____(V1, V2)) → and(isList(activate(V1)), n__isNeList(activate(V2)))isQid(n__a) → tt
isNeList(n____(V1, V2)) → and(isNeList(activate(V1)), n__isList(activate(V2)))activate(n__isList(X)) → isList(X)
isQid(n__i) → ttand(tt, X) → activate(X)
activate(n__isNeList(X)) → isNeList(X)activate(X) → X
isList(X) → n__isList(X)isPal(V) → isNePal(activate(V))
activate(n__u) → uisNePal(n____(I, n____(P, I))) → and(isQid(activate(I)), n__isPal(activate(P)))
__(nil, X) → Xu → n__u
i → n__iactivate(n__o) → o
o → n__onil → n__nil
isQid(n__o) → ttactivate(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)) → isNeList#(activate(V1))isList#(n____(V1, V2)) → isList#(activate(V1))
isNeList#(n____(V1, V2)) → isList#(activate(V1))

Problem 9: DependencyGraph



Dependency Pair Problem

Dependency Pairs

isList#(V) → isNeList#(activate(V))

Rewrite Rules

__(__(X, Y), Z) → __(X, __(Y, Z))__(X, nil) → X
__(nil, X) → Xand(tt, X) → activate(X)
isList(V) → isNeList(activate(V))isList(n__nil) → tt
isList(n____(V1, V2)) → and(isList(activate(V1)), n__isList(activate(V2)))isNeList(V) → isQid(activate(V))
isNeList(n____(V1, V2)) → and(isList(activate(V1)), n__isNeList(activate(V2)))isNeList(n____(V1, V2)) → and(isNeList(activate(V1)), n__isList(activate(V2)))
isNePal(V) → isQid(activate(V))isNePal(n____(I, n____(P, I))) → and(isQid(activate(I)), n__isPal(activate(P)))
isPal(V) → isNePal(activate(V))isPal(n__nil) → tt
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)isList(X) → n__isList(X)
isNeList(X) → n__isNeList(X)isPal(X) → n__isPal(X)
a → n__ae → n__e
i → n__io → n__o
u → n__uactivate(n__nil) → nil
activate(n____(X1, X2)) → __(activate(X1), activate(X2))activate(n__isList(X)) → isList(X)
activate(n__isNeList(X)) → isNeList(X)activate(n__isPal(X)) → isPal(X)
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, n__o, isNePal, n__nil, n__e, e, n__a, a, o, isPal, n__i, and, i, u, tt, isQid, n____, n__isNeList, n__isList, nil, n__isPal

Strategy


There are no SCCs!