YES
The TRS could be proven terminating. The proof took 1094 ms.
Problem 1 was processed with processor DependencyGraph (200ms). | Problem 2 was processed with processor PolynomialLinearRange4 (93ms). | Problem 3 was processed with processor PolynomialLinearRange4 (319ms). | | Problem 4 was processed with processor DependencyGraph (29ms). | | | Problem 5 was processed with processor PolynomialLinearRange4 (17ms). | | | | Problem 6 was processed with processor PolynomialLinearRange4 (34ms). | | | | | Problem 7 was processed with processor PolynomialLinearRange4 (12ms).
and#(tt, X) | → | T(X) | isNePal#(__(I, __(P, I))) | → | isQid#(I) | |
__#(__(X, Y), Z) | → | __#(X, __(Y, Z)) | isNeList#(__(V1, V2)) | → | isNeList#(V1) | |
isNeList#(__(V1, V2)) | → | and#(isNeList(V1), isList(V2)) | isList#(__(V1, V2)) | → | isList#(V1) | |
T(isList(x_1)) | → | T(x_1) | __#(__(X, Y), Z) | → | __#(Y, Z) | |
isNeList#(__(V1, V2)) | → | isList#(V1) | T(isNeList(x_1)) | → | T(x_1) | |
T(isNeList(V2)) | → | isNeList#(V2) | isList#(__(V1, V2)) | → | and#(isList(V1), isList(V2)) | |
isList#(V) | → | isNeList#(V) | isNePal#(__(I, __(P, I))) | → | and#(isQid(I), isPal(P)) | |
T(isPal(P)) | → | isPal#(P) | isNeList#(V) | → | isQid#(V) | |
isPal#(V) | → | isNePal#(V) | T(isPal(x_1)) | → | T(x_1) | |
isNePal#(V) | → | isQid#(V) | T(isList(V2)) | → | isList#(V2) | |
isNeList#(__(V1, V2)) | → | and#(isList(V1), isNeList(V2)) |
__(__(X, Y), Z) | → | __(X, __(Y, Z)) | __(X, nil) | → | X | |
__(nil, X) | → | X | and(tt, X) | → | X | |
isList(V) | → | isNeList(V) | isList(nil) | → | tt | |
isList(__(V1, V2)) | → | and(isList(V1), isList(V2)) | isNeList(V) | → | isQid(V) | |
isNeList(__(V1, V2)) | → | and(isList(V1), isNeList(V2)) | isNeList(__(V1, V2)) | → | and(isNeList(V1), isList(V2)) | |
isNePal(V) | → | isQid(V) | isNePal(__(I, __(P, I))) | → | and(isQid(I), isPal(P)) | |
isPal(V) | → | isNePal(V) | isPal(nil) | → | tt | |
isQid(a) | → | tt | isQid(e) | → | tt | |
isQid(i) | → | tt | isQid(o) | → | tt | |
isQid(u) | → | tt |
Termination of terms over the following signature is verified: isList, e, a, isNeList, __, o, isPal, and, i, u, tt, isNePal, isQid, nil
Context-sensitive strategy:
μ(isList) = μ(e) = μ(isNePal#) = μ(a) = μ(isNeList) = μ(o) = μ(isPal#) = μ(isPal) = μ(i) = μ(isQid#) = μ(isList#) = μ(T) = μ(u) = μ(tt) = μ(isNePal) = μ(isQid) = μ(isNeList#) = μ(nil) = ∅
μ(and#) = μ(and) = {1}
μ(__) = μ(__#) = {1, 2}
and#(tt, X) → T(X) | isNeList#(__(V1, V2)) → isNeList#(V1) |
isNeList#(__(V1, V2)) → and#(isNeList(V1), isList(V2)) | isList#(__(V1, V2)) → isList#(V1) |
T(isList(x_1)) → T(x_1) | isNeList#(__(V1, V2)) → isList#(V1) |
T(isNeList(x_1)) → T(x_1) | T(isNeList(V2)) → isNeList#(V2) |
isList#(__(V1, V2)) → and#(isList(V1), isList(V2)) | isList#(V) → isNeList#(V) |
isNePal#(__(I, __(P, I))) → and#(isQid(I), isPal(P)) | T(isPal(P)) → isPal#(P) |
T(isPal(x_1)) → T(x_1) | isPal#(V) → isNePal#(V) |
T(isList(V2)) → isList#(V2) | isNeList#(__(V1, V2)) → and#(isList(V1), isNeList(V2)) |
__#(__(X, Y), Z) → __#(X, __(Y, Z)) | __#(__(X, Y), Z) → __#(Y, Z) |
__#(__(X, Y), Z) | → | __#(X, __(Y, Z)) | __#(__(X, Y), Z) | → | __#(Y, Z) |
__(__(X, Y), Z) | → | __(X, __(Y, Z)) | __(X, nil) | → | X | |
__(nil, X) | → | X | and(tt, X) | → | X | |
isList(V) | → | isNeList(V) | isList(nil) | → | tt | |
isList(__(V1, V2)) | → | and(isList(V1), isList(V2)) | isNeList(V) | → | isQid(V) | |
isNeList(__(V1, V2)) | → | and(isList(V1), isNeList(V2)) | isNeList(__(V1, V2)) | → | and(isNeList(V1), isList(V2)) | |
isNePal(V) | → | isQid(V) | isNePal(__(I, __(P, I))) | → | and(isQid(I), isPal(P)) | |
isPal(V) | → | isNePal(V) | isPal(nil) | → | tt | |
isQid(a) | → | tt | isQid(e) | → | tt | |
isQid(i) | → | tt | isQid(o) | → | tt | |
isQid(u) | → | tt |
Termination of terms over the following signature is verified: isList, e, a, isNeList, __, o, isPal, and, i, u, tt, isNePal, isQid, nil
Context-sensitive strategy:
μ(isList) = μ(e) = μ(isNePal#) = μ(a) = μ(isNeList) = μ(o) = μ(isPal#) = μ(isPal) = μ(i) = μ(isList#) = μ(isQid#) = μ(T) = μ(u) = μ(tt) = μ(isNePal) = μ(isQid) = μ(isNeList#) = μ(nil) = ∅
μ(and#) = μ(and) = {1}
μ(__) = μ(__#) = {1, 2}
__(__(X, Y), Z) | → | __(X, __(Y, Z)) | __(X, nil) | → | X | |
__(nil, X) | → | X |
The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:
__#(__(X, Y), Z) | → | __#(X, __(Y, Z)) | __#(__(X, Y), Z) | → | __#(Y, Z) |
and#(tt, X) | → | T(X) | isNeList#(__(V1, V2)) | → | isNeList#(V1) | |
isNeList#(__(V1, V2)) | → | and#(isNeList(V1), isList(V2)) | isList#(__(V1, V2)) | → | isList#(V1) | |
T(isList(x_1)) | → | T(x_1) | isNeList#(__(V1, V2)) | → | isList#(V1) | |
T(isNeList(x_1)) | → | T(x_1) | T(isNeList(V2)) | → | isNeList#(V2) | |
isList#(__(V1, V2)) | → | and#(isList(V1), isList(V2)) | isList#(V) | → | isNeList#(V) | |
isNePal#(__(I, __(P, I))) | → | and#(isQid(I), isPal(P)) | T(isPal(P)) | → | isPal#(P) | |
T(isPal(x_1)) | → | T(x_1) | isPal#(V) | → | isNePal#(V) | |
T(isList(V2)) | → | isList#(V2) | isNeList#(__(V1, V2)) | → | and#(isList(V1), isNeList(V2)) |
__(__(X, Y), Z) | → | __(X, __(Y, Z)) | __(X, nil) | → | X | |
__(nil, X) | → | X | and(tt, X) | → | X | |
isList(V) | → | isNeList(V) | isList(nil) | → | tt | |
isList(__(V1, V2)) | → | and(isList(V1), isList(V2)) | isNeList(V) | → | isQid(V) | |
isNeList(__(V1, V2)) | → | and(isList(V1), isNeList(V2)) | isNeList(__(V1, V2)) | → | and(isNeList(V1), isList(V2)) | |
isNePal(V) | → | isQid(V) | isNePal(__(I, __(P, I))) | → | and(isQid(I), isPal(P)) | |
isPal(V) | → | isNePal(V) | isPal(nil) | → | tt | |
isQid(a) | → | tt | isQid(e) | → | tt | |
isQid(i) | → | tt | isQid(o) | → | tt | |
isQid(u) | → | tt |
Termination of terms over the following signature is verified: isList, e, a, isNeList, __, o, isPal, and, i, u, tt, isNePal, isQid, nil
Context-sensitive strategy:
μ(isList) = μ(e) = μ(isNePal#) = μ(a) = μ(isNeList) = μ(o) = μ(isPal#) = μ(isPal) = μ(i) = μ(isList#) = μ(isQid#) = μ(T) = μ(u) = μ(tt) = μ(isNePal) = μ(isQid) = μ(isNeList#) = μ(nil) = ∅
μ(and#) = μ(and) = {1}
μ(__) = μ(__#) = {1, 2}
isQid(i) | → | tt | __(__(X, Y), Z) | → | __(X, __(Y, Z)) | |
isQid(e) | → | tt | __(X, nil) | → | X | |
isQid(u) | → | tt | isList(V) | → | isNeList(V) | |
isNeList(V) | → | isQid(V) | isNePal(V) | → | isQid(V) | |
isPal(nil) | → | tt | isList(nil) | → | tt | |
isNePal(__(I, __(P, I))) | → | and(isQid(I), isPal(P)) | isNeList(__(V1, V2)) | → | and(isList(V1), isNeList(V2)) | |
isPal(V) | → | isNePal(V) | isQid(a) | → | tt | |
and(tt, X) | → | X | __(nil, X) | → | X | |
isNeList(__(V1, V2)) | → | and(isNeList(V1), isList(V2)) | isList(__(V1, V2)) | → | and(isList(V1), isList(V2)) | |
isQid(o) | → | tt |
The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:
isNeList#(__(V1, V2)) | → | isNeList#(V1) | isNeList#(__(V1, V2)) | → | and#(isNeList(V1), isList(V2)) | |
isList#(__(V1, V2)) | → | isList#(V1) | isNeList#(__(V1, V2)) | → | isList#(V1) | |
isList#(__(V1, V2)) | → | and#(isList(V1), isList(V2)) | isNePal#(__(I, __(P, I))) | → | and#(isQid(I), isPal(P)) | |
isNeList#(__(V1, V2)) | → | and#(isList(V1), isNeList(V2)) |
isList#(V) | → | isNeList#(V) | and#(tt, X) | → | T(X) | |
T(isPal(P)) | → | isPal#(P) | isPal#(V) | → | isNePal#(V) | |
T(isPal(x_1)) | → | T(x_1) | T(isList(x_1)) | → | T(x_1) | |
T(isList(V2)) | → | isList#(V2) | T(isNeList(x_1)) | → | T(x_1) | |
T(isNeList(V2)) | → | isNeList#(V2) |
__(__(X, Y), Z) | → | __(X, __(Y, Z)) | __(X, nil) | → | X | |
__(nil, X) | → | X | and(tt, X) | → | X | |
isList(V) | → | isNeList(V) | isList(nil) | → | tt | |
isList(__(V1, V2)) | → | and(isList(V1), isList(V2)) | isNeList(V) | → | isQid(V) | |
isNeList(__(V1, V2)) | → | and(isList(V1), isNeList(V2)) | isNeList(__(V1, V2)) | → | and(isNeList(V1), isList(V2)) | |
isNePal(V) | → | isQid(V) | isNePal(__(I, __(P, I))) | → | and(isQid(I), isPal(P)) | |
isPal(V) | → | isNePal(V) | isPal(nil) | → | tt | |
isQid(a) | → | tt | isQid(e) | → | tt | |
isQid(i) | → | tt | isQid(o) | → | tt | |
isQid(u) | → | tt |
Termination of terms over the following signature is verified: isList, e, a, isNeList, __, o, isPal, and, i, u, tt, isNePal, isQid, nil
Context-sensitive strategy:
μ(isList) = μ(e) = μ(isNePal#) = μ(a) = μ(isNeList) = μ(o) = μ(isPal#) = μ(isPal) = μ(i) = μ(isQid#) = μ(isList#) = μ(T) = μ(u) = μ(tt) = μ(isNePal) = μ(isQid) = μ(isNeList#) = μ(nil) = ∅
μ(and#) = μ(and) = {1}
μ(__) = μ(__#) = {1, 2}
T(isPal(x_1)) → T(x_1) | T(isList(x_1)) → T(x_1) |
T(isNeList(x_1)) → T(x_1) |
T(isPal(x_1)) | → | T(x_1) | T(isList(x_1)) | → | T(x_1) | |
T(isNeList(x_1)) | → | T(x_1) |
__(__(X, Y), Z) | → | __(X, __(Y, Z)) | __(X, nil) | → | X | |
__(nil, X) | → | X | and(tt, X) | → | X | |
isList(V) | → | isNeList(V) | isList(nil) | → | tt | |
isList(__(V1, V2)) | → | and(isList(V1), isList(V2)) | isNeList(V) | → | isQid(V) | |
isNeList(__(V1, V2)) | → | and(isList(V1), isNeList(V2)) | isNeList(__(V1, V2)) | → | and(isNeList(V1), isList(V2)) | |
isNePal(V) | → | isQid(V) | isNePal(__(I, __(P, I))) | → | and(isQid(I), isPal(P)) | |
isPal(V) | → | isNePal(V) | isPal(nil) | → | tt | |
isQid(a) | → | tt | isQid(e) | → | tt | |
isQid(i) | → | tt | isQid(o) | → | tt | |
isQid(u) | → | tt |
Termination of terms over the following signature is verified: isList, e, a, isNeList, __, o, isPal, and, i, u, tt, isNePal, isQid, nil
Context-sensitive strategy:
μ(isList) = μ(e) = μ(isNePal#) = μ(a) = μ(isNeList) = μ(o) = μ(isPal#) = μ(isPal) = μ(i) = μ(isList#) = μ(isQid#) = μ(T) = μ(u) = μ(tt) = μ(isNePal) = μ(isQid) = μ(isNeList#) = μ(nil) = ∅
μ(and#) = μ(and) = {1}
μ(__) = μ(__#) = {1, 2}
There are no usable rules
The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:
T(isList(x_1)) | → | T(x_1) |
T(isPal(x_1)) | → | T(x_1) | T(isNeList(x_1)) | → | T(x_1) |
__(__(X, Y), Z) | → | __(X, __(Y, Z)) | __(X, nil) | → | X | |
__(nil, X) | → | X | and(tt, X) | → | X | |
isList(V) | → | isNeList(V) | isList(nil) | → | tt | |
isList(__(V1, V2)) | → | and(isList(V1), isList(V2)) | isNeList(V) | → | isQid(V) | |
isNeList(__(V1, V2)) | → | and(isList(V1), isNeList(V2)) | isNeList(__(V1, V2)) | → | and(isNeList(V1), isList(V2)) | |
isNePal(V) | → | isQid(V) | isNePal(__(I, __(P, I))) | → | and(isQid(I), isPal(P)) | |
isPal(V) | → | isNePal(V) | isPal(nil) | → | tt | |
isQid(a) | → | tt | isQid(e) | → | tt | |
isQid(i) | → | tt | isQid(o) | → | tt | |
isQid(u) | → | tt |
Termination of terms over the following signature is verified: isList, e, a, isNeList, __, o, isPal, and, i, u, tt, isNePal, isQid, nil
Context-sensitive strategy:
μ(isList) = μ(e) = μ(isNePal#) = μ(a) = μ(isNeList) = μ(o) = μ(isPal#) = μ(isPal) = μ(i) = μ(isQid#) = μ(isList#) = μ(T) = μ(u) = μ(tt) = μ(isNePal) = μ(isQid) = μ(isNeList#) = μ(nil) = ∅
μ(and#) = μ(and) = {1}
μ(__) = μ(__#) = {1, 2}
There are no usable rules
The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:
T(isPal(x_1)) | → | T(x_1) |
T(isNeList(x_1)) | → | T(x_1) |
__(__(X, Y), Z) | → | __(X, __(Y, Z)) | __(X, nil) | → | X | |
__(nil, X) | → | X | and(tt, X) | → | X | |
isList(V) | → | isNeList(V) | isList(nil) | → | tt | |
isList(__(V1, V2)) | → | and(isList(V1), isList(V2)) | isNeList(V) | → | isQid(V) | |
isNeList(__(V1, V2)) | → | and(isList(V1), isNeList(V2)) | isNeList(__(V1, V2)) | → | and(isNeList(V1), isList(V2)) | |
isNePal(V) | → | isQid(V) | isNePal(__(I, __(P, I))) | → | and(isQid(I), isPal(P)) | |
isPal(V) | → | isNePal(V) | isPal(nil) | → | tt | |
isQid(a) | → | tt | isQid(e) | → | tt | |
isQid(i) | → | tt | isQid(o) | → | tt | |
isQid(u) | → | tt |
Termination of terms over the following signature is verified: isList, e, a, isNeList, __, o, isPal, and, i, u, tt, isNePal, isQid, nil
Context-sensitive strategy:
μ(isList) = μ(e) = μ(isNePal#) = μ(a) = μ(isNeList) = μ(o) = μ(isPal#) = μ(isPal) = μ(i) = μ(isList#) = μ(isQid#) = μ(T) = μ(u) = μ(tt) = μ(isNePal) = μ(isQid) = μ(isNeList#) = μ(nil) = ∅
μ(and#) = μ(and) = {1}
μ(__) = μ(__#) = {1, 2}
There are no usable rules
The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:
T(isNeList(x_1)) | → | T(x_1) |