YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (543ms).
 | – Problem 2 was processed with processor SubtermCriterion (1ms).
 | – Problem 3 was processed with processor PolynomialLinearRange4 (300ms).
 |    | – Problem 4 was processed with processor PolynomialLinearRange4 (255ms).
 |    |    | – Problem 5 was processed with processor PolynomialLinearRange4 (338ms).
 |    |    |    | – Problem 6 was processed with processor DependencyGraph (28ms).
 |    |    |    |    | – Problem 7 was processed with processor PolynomialLinearRange4 (100ms).
 |    |    |    |    |    | – Problem 8 was processed with processor DependencyGraph (1ms).

Problem 1: 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__o) → o#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)
isList#(n____(V1, V2)) → activate#(V1)isNeList#(n____(V1, V2)) → isList#(activate(V1))
activate#(n__a) → a#isList#(n____(V1, V2)) → activate#(V2)
isNeList#(V) → activate#(V)isNeList#(n____(V1, V2)) → activate#(V1)
isNePal#(n____(I, __(P, I))) → and#(isQid(activate(I)), n__isPal(activate(P)))__#(__(X, Y), Z) → __#(X, __(Y, Z))
activate#(n__isList(X)) → isList#(X)isNeList#(V) → isQid#(activate(V))
activate#(n__isNeList(X)) → isNeList#(X)isNePal#(n____(I, __(P, I))) → activate#(P)
isPal#(V) → isNePal#(activate(V))activate#(n__u) → u#
activate#(n____(X1, X2)) → __#(X1, X2)activate#(n__nil) → nil#
isNePal#(n____(I, __(P, I))) → activate#(I)activate#(n__e) → e#
isNePal#(n____(I, __(P, I))) → isQid#(activate(I))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, __(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)) → __(X1, 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)isNePal#(n____(I, __(P, I))) → and#(isQid(activate(I)), n__isPal(activate(P)))
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)isNePal#(n____(I, __(P, I))) → activate#(P)
isPal#(V) → isNePal#(activate(V))isNePal#(V) → activate#(V)
isNeList#(n____(V1, V2)) → isList#(activate(V1))isList#(n____(V1, V2)) → activate#(V1)
isList#(n____(V1, V2)) → activate#(V2)isNeList#(V) → activate#(V)
isNePal#(n____(I, __(P, I))) → activate#(I)isNeList#(n____(V1, V2)) → activate#(V2)
isNeList#(n____(V1, V2)) → activate#(V1)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))

__#(__(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, __(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)) → __(X1, 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

and#(tt, X) → activate#(X)isNePal#(n____(I, __(P, I))) → and#(isQid(activate(I)), n__isPal(activate(P)))
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)))
isNePal#(n____(I, __(P, I))) → activate#(P)activate#(n__isNeList(X)) → isNeList#(X)
isPal#(V) → isNePal#(activate(V))isNePal#(V) → activate#(V)
isList#(n____(V1, V2)) → activate#(V1)isNeList#(n____(V1, V2)) → isList#(activate(V1))
isList#(n____(V1, V2)) → activate#(V2)isNeList#(V) → activate#(V)
isNePal#(n____(I, __(P, I))) → activate#(I)isNeList#(n____(V1, V2)) → activate#(V2)
isNeList#(n____(V1, V2)) → activate#(V1)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, __(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)) → __(X1, 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
isPal(n__nil) → ttisPal(X) → n__isPal(X)
isQid(n__u) → ttisQid(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) → a
e → n__eactivate(n__i) → i
isList(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) → tt
isNePal(n____(I, __(P, I))) → and(isQid(activate(I)), n__isPal(activate(P)))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____(X1, X2)) → __(X1, X2)activate(n__isNeList(X)) → isNeList(X)
activate(X) → XisList(X) → n__isList(X)
isPal(V) → isNePal(activate(V))activate(n__u) → u
__(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, __(P, I))) → activate#(P)isNePal#(V) → activate#(V)
isNePal#(n____(I, __(P, I))) → activate#(I)isPal#(V) → activate#(V)

Problem 4: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

and#(tt, X) → activate#(X)isNePal#(n____(I, __(P, I))) → and#(isQid(activate(I)), n__isPal(activate(P)))
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))
isList#(n____(V1, V2)) → activate#(V1)isNeList#(n____(V1, V2)) → isList#(activate(V1))
isList#(n____(V1, V2)) → activate#(V2)isNeList#(V) → activate#(V)
isNeList#(n____(V1, V2)) → activate#(V2)isNeList#(n____(V1, V2)) → activate#(V1)
activate#(n__isPal(X)) → isPal#(X)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, __(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)) → __(X1, 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
isPal(n__nil) → ttisPal(X) → n__isPal(X)
isQid(n__u) → ttisQid(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) → a
e → n__eactivate(n__i) → i
isList(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) → tt
isNePal(n____(I, __(P, I))) → and(isQid(activate(I)), n__isPal(activate(P)))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____(X1, X2)) → __(X1, X2)activate(n__isNeList(X)) → isNeList(X)
activate(X) → XisList(X) → n__isList(X)
isPal(V) → isNePal(activate(V))activate(n__u) → u
__(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#(V2)
isNeList#(n____(V1, V2)) → activate#(V1)isList#(V) → activate#(V)

Problem 5: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

and#(tt, X) → activate#(X)isNePal#(n____(I, __(P, I))) → and#(isQid(activate(I)), n__isPal(activate(P)))
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))
isNeList#(n____(V1, V2)) → isList#(activate(V1))activate#(n__isPal(X)) → isPal#(X)
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, __(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)) → __(X1, 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
isPal(n__nil) → ttisPal(X) → n__isPal(X)
isQid(n__u) → ttisQid(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) → a
e → n__eactivate(n__i) → i
isList(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) → tt
isNePal(n____(I, __(P, I))) → and(isQid(activate(I)), n__isPal(activate(P)))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____(X1, X2)) → __(X1, X2)activate(n__isNeList(X)) → isNeList(X)
activate(X) → XisList(X) → n__isList(X)
isPal(V) → isNePal(activate(V))activate(n__u) → u
__(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:

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

Problem 6: DependencyGraph



Dependency Pair Problem

Dependency Pairs

and#(tt, X) → activate#(X)isNePal#(n____(I, __(P, I))) → and#(isQid(activate(I)), n__isPal(activate(P)))
isNeList#(n____(V1, V2)) → and#(isNeList(activate(V1)), n__isList(activate(V2)))isNeList#(n____(V1, V2)) → and#(isList(activate(V1)), n__isNeList(activate(V2)))
activate#(n__isPal(X)) → isPal#(X)isPal#(V) → isNePal#(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, __(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)) → __(X1, 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)isNePal#(n____(I, __(P, I))) → and#(isQid(activate(I)), n__isPal(activate(P)))
activate#(n__isPal(X)) → isPal#(X)isPal#(V) → isNePal#(activate(V))

Problem 7: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

and#(tt, X) → activate#(X)isNePal#(n____(I, __(P, I))) → and#(isQid(activate(I)), n__isPal(activate(P)))
activate#(n__isPal(X)) → isPal#(X)isPal#(V) → isNePal#(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, __(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)) → __(X1, 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
isPal(n__nil) → ttisPal(X) → n__isPal(X)
isQid(n__u) → ttisQid(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) → a
e → n__eactivate(n__i) → i
isList(n____(V1, V2)) → and(isList(activate(V1)), n__isList(activate(V2)))isList(n__nil) → tt
isNeList(V) → isQid(activate(V))isNeList(n____(V1, V2)) → and(isList(activate(V1)), n__isNeList(activate(V2)))
isQid(n__a) → ttisNePal(n____(I, __(P, I))) → and(isQid(activate(I)), n__isPal(activate(P)))
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____(X1, X2)) → __(X1, X2)activate(n__isNeList(X)) → isNeList(X)
activate(X) → XisList(X) → n__isList(X)
isPal(V) → isNePal(activate(V))activate(n__u) → u
__(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__isPal(X)) → isPal#(X)

Problem 8: DependencyGraph



Dependency Pair Problem

Dependency Pairs

and#(tt, X) → activate#(X)isNePal#(n____(I, __(P, I))) → and#(isQid(activate(I)), n__isPal(activate(P)))
isPal#(V) → isNePal#(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, __(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)) → __(X1, 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!