YES
Termination Proof using AProVETerm Rewriting System R:
[X, Y, Z, V, V1, V2, I, P]
((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 R to be shown.
TRS
↳CSR to TRS Transformation
Trivial-Transformation successful.
Replacement map:
and(1, 2)
(1, 2)
isPal(1)
isNePal(1)
isList(1)
isQid(1)
isNeList(1)
Old CSR:
((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
new TRS:
((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))
isQid(a) -> tt
isQid(e) -> tt
isQid(i) -> tt
isQid(o) -> tt
isQid(u) -> tt
isNePal(V) -> isQid(V)
isNePal((I, (P, I))) -> and(isQid(I), isPal(P))
isPal(V) -> isNePal(V)
isPal(nil) -> tt
TRS
↳CSRtoTRS
→TRS1
↳Removing Redundant Rules
Removing the following rules from R which fullfill a polynomial ordering:
((X, Y), Z) -> (X, (Y, Z))
(X, nil) -> X
(nil, X) -> X
isList((V1, V2)) -> and(isList(V1), isList(V2))
isNeList((V1, V2)) -> and(isList(V1), isNeList(V2))
isNeList((V1, V2)) -> and(isNeList(V1), isList(V2))
isNePal((I, (P, I))) -> and(isQid(I), isPal(P))
where the Polynomial interpretation:
POL(and(x1, x2)) | = x1 + x2 |
POL(i) | = 0 |
POL(e) | = 0 |
POL(__(x1, x2)) | = 1 + 2·x1 + x2 |
POL(u) | = 0 |
POL(isPal(x1)) | = x1 |
POL(tt) | = 0 |
POL(o) | = 0 |
POL(nil) | = 0 |
POL(isNePal(x1)) | = x1 |
POL(isList(x1)) | = x1 |
POL(a) | = 0 |
POL(isQid(x1)) | = x1 |
POL(isNeList(x1)) | = x1 |
was used.
Not all Rules of R can be deleted, so we still have to regard a part of R.
TRS
↳CSRtoTRS
→TRS1
↳RRRPolo
→TRS2
↳Removing Redundant Rules
Removing the following rules from R which fullfill a polynomial ordering:
isQid(a) -> tt
where the Polynomial interpretation:
POL(and(x1, x2)) | = x1 + x2 |
POL(i) | = 0 |
POL(e) | = 0 |
POL(u) | = 0 |
POL(isPal(x1)) | = x1 |
POL(tt) | = 0 |
POL(o) | = 0 |
POL(nil) | = 0 |
POL(isNePal(x1)) | = x1 |
POL(isList(x1)) | = x1 |
POL(a) | = 1 |
POL(isQid(x1)) | = x1 |
POL(isNeList(x1)) | = x1 |
was used.
Not all Rules of R can be deleted, so we still have to regard a part of R.
TRS
↳CSRtoTRS
→TRS1
↳RRRPolo
→TRS2
↳RRRPolo
...
→TRS3
↳Removing Redundant Rules
Removing the following rules from R which fullfill a polynomial ordering:
isList(V) -> isNeList(V)
isList(nil) -> tt
where the Polynomial interpretation:
POL(isPal(x1)) | = x1 |
POL(and(x1, x2)) | = x1 + x2 |
POL(i) | = 0 |
POL(e) | = 0 |
POL(tt) | = 0 |
POL(o) | = 0 |
POL(nil) | = 0 |
POL(isNePal(x1)) | = x1 |
POL(isList(x1)) | = 1 + x1 |
POL(u) | = 0 |
POL(isNeList(x1)) | = x1 |
POL(isQid(x1)) | = x1 |
was used.
Not all Rules of R can be deleted, so we still have to regard a part of R.
TRS
↳CSRtoTRS
→TRS1
↳RRRPolo
→TRS2
↳RRRPolo
...
→TRS4
↳Removing Redundant Rules
Removing the following rules from R which fullfill a polynomial ordering:
isPal(nil) -> tt
where the Polynomial interpretation:
POL(isPal(x1)) | = x1 |
POL(and(x1, x2)) | = x1 + x2 |
POL(i) | = 0 |
POL(e) | = 0 |
POL(tt) | = 0 |
POL(o) | = 0 |
POL(nil) | = 1 |
POL(isNePal(x1)) | = x1 |
POL(u) | = 0 |
POL(isQid(x1)) | = x1 |
POL(isNeList(x1)) | = x1 |
was used.
Not all Rules of R can be deleted, so we still have to regard a part of R.
TRS
↳CSRtoTRS
→TRS1
↳RRRPolo
→TRS2
↳RRRPolo
...
→TRS5
↳Removing Redundant Rules
Removing the following rules from R which fullfill a polynomial ordering:
isPal(V) -> isNePal(V)
where the Polynomial interpretation:
POL(and(x1, x2)) | = x1 + x2 |
POL(isPal(x1)) | = 1 + x1 |
POL(i) | = 0 |
POL(e) | = 0 |
POL(tt) | = 0 |
POL(o) | = 0 |
POL(isNePal(x1)) | = x1 |
POL(u) | = 0 |
POL(isQid(x1)) | = x1 |
POL(isNeList(x1)) | = x1 |
was used.
Not all Rules of R can be deleted, so we still have to regard a part of R.
TRS
↳CSRtoTRS
→TRS1
↳RRRPolo
→TRS2
↳RRRPolo
...
→TRS6
↳Removing Redundant Rules
Removing the following rules from R which fullfill a polynomial ordering:
and(tt, X) -> X
where the Polynomial interpretation:
POL(and(x1, x2)) | = 1 + x1 + x2 |
POL(i) | = 0 |
POL(e) | = 0 |
POL(tt) | = 0 |
POL(o) | = 0 |
POL(isNePal(x1)) | = x1 |
POL(u) | = 0 |
POL(isQid(x1)) | = x1 |
POL(isNeList(x1)) | = x1 |
was used.
Not all Rules of R can be deleted, so we still have to regard a part of R.
TRS
↳CSRtoTRS
→TRS1
↳RRRPolo
→TRS2
↳RRRPolo
...
→TRS7
↳Removing Redundant Rules
Removing the following rules from R which fullfill a polynomial ordering:
isQid(e) -> tt
where the Polynomial interpretation:
POL(i) | = 0 |
POL(e) | = 1 |
POL(tt) | = 0 |
POL(o) | = 0 |
POL(isNePal(x1)) | = x1 |
POL(u) | = 0 |
POL(isQid(x1)) | = x1 |
POL(isNeList(x1)) | = x1 |
was used.
Not all Rules of R can be deleted, so we still have to regard a part of R.
TRS
↳CSRtoTRS
→TRS1
↳RRRPolo
→TRS2
↳RRRPolo
...
→TRS8
↳Removing Redundant Rules
Removing the following rules from R which fullfill a polynomial ordering:
isQid(u) -> tt
where the Polynomial interpretation:
POL(i) | = 0 |
POL(tt) | = 0 |
POL(o) | = 0 |
POL(isNePal(x1)) | = x1 |
POL(u) | = 1 |
POL(isQid(x1)) | = x1 |
POL(isNeList(x1)) | = x1 |
was used.
Not all Rules of R can be deleted, so we still have to regard a part of R.
TRS
↳CSRtoTRS
→TRS1
↳RRRPolo
→TRS2
↳RRRPolo
...
→TRS9
↳Removing Redundant Rules
Removing the following rules from R which fullfill a polynomial ordering:
isQid(i) -> tt
where the Polynomial interpretation:
POL(i) | = 1 |
POL(o) | = 0 |
POL(tt) | = 0 |
POL(isNePal(x1)) | = x1 |
POL(isQid(x1)) | = x1 |
POL(isNeList(x1)) | = x1 |
was used.
Not all Rules of R can be deleted, so we still have to regard a part of R.
TRS
↳CSRtoTRS
→TRS1
↳RRRPolo
→TRS2
↳RRRPolo
...
→TRS10
↳Removing Redundant Rules
Removing the following rules from R which fullfill a polynomial ordering:
isNeList(V) -> isQid(V)
where the Polynomial interpretation:
POL(o) | = 0 |
POL(tt) | = 0 |
POL(isNePal(x1)) | = x1 |
POL(isQid(x1)) | = x1 |
POL(isNeList(x1)) | = 1 + x1 |
was used.
Not all Rules of R can be deleted, so we still have to regard a part of R.
TRS
↳CSRtoTRS
→TRS1
↳RRRPolo
→TRS2
↳RRRPolo
...
→TRS11
↳Removing Redundant Rules
Removing the following rules from R which fullfill a polynomial ordering:
isNePal(V) -> isQid(V)
where the Polynomial interpretation:
POL(o) | = 0 |
POL(tt) | = 0 |
POL(isNePal(x1)) | = 1 + x1 |
POL(isQid(x1)) | = x1 |
was used.
Not all Rules of R can be deleted, so we still have to regard a part of R.
TRS
↳CSRtoTRS
→TRS1
↳RRRPolo
→TRS2
↳RRRPolo
...
→TRS12
↳Removing Redundant Rules
Removing the following rules from R which fullfill a polynomial ordering:
isQid(o) -> tt
where the Polynomial interpretation:
POL(o) | = 0 |
POL(tt) | = 0 |
POL(isQid(x1)) | = 1 + x1 |
was used.
All Rules of R can be deleted.
TRS
↳CSRtoTRS
→TRS1
↳RRRPolo
→TRS2
↳RRRPolo
...
→TRS13
↳Overlay and local confluence Check
The TRS is overlay and locally confluent (all critical pairs are trivially joinable).Hence, we can switch to innermost.
TRS
↳CSRtoTRS
→TRS1
↳RRRPolo
→TRS2
↳RRRPolo
...
→TRS14
↳Dependency Pair Analysis
R contains no Dependency Pairs and therefore no SCCs.
Termination of R successfully shown.
Duration:
0:03 minutes