Certification Problem
Input (TPDB TRS_Standard/Transformed_CSR_04/PALINDROME_nokinds_noand_C)
The rewrite relation of the following TRS is considered.
There are 103 ruless (increase limit for explicit display).
Property / Task
Prove or disprove termination.Answer / Result
Yes.Proof (by AProVE @ termCOMP 2023)
1 Rule Removal
Using the
linear polynomial interpretation over the naturals
[active(x1)] |
= |
1 · x1
|
[__(x1, x2)] |
= |
2 · x1 + 1 · x2
|
[mark(x1)] |
= |
1 · x1
|
[nil] |
= |
0 |
[U11(x1)] |
= |
1 · x1
|
[tt] |
= |
0 |
[U21(x1, x2)] |
= |
2 · x1 + 1 · x2
|
[U22(x1)] |
= |
1 · x1
|
[isList(x1)] |
= |
1 · x1
|
[U31(x1)] |
= |
1 · x1
|
[U41(x1, x2)] |
= |
1 · x1 + 1 · x2
|
[U42(x1)] |
= |
1 · x1
|
[isNeList(x1)] |
= |
1 · x1
|
[U51(x1, x2)] |
= |
2 · x1 + 1 · x2
|
[U52(x1)] |
= |
1 · x1
|
[U61(x1)] |
= |
2 · x1
|
[U71(x1, x2)] |
= |
2 · x1 + 2 · x2
|
[U72(x1)] |
= |
1 · x1
|
[isPal(x1)] |
= |
2 · x1
|
[U81(x1)] |
= |
1 · x1
|
[isQid(x1)] |
= |
1 · x1
|
[isNePal(x1)] |
= |
2 · x1
|
[a] |
= |
2 |
[e] |
= |
2 |
[i] |
= |
2 |
[o] |
= |
2 |
[u] |
= |
2 |
[proper(x1)] |
= |
1 · x1
|
[ok(x1)] |
= |
1 · x1
|
[top(x1)] |
= |
2 · x1
|
all of the following rules can be deleted.
active(isQid(a)) |
→ |
mark(tt) |
(26) |
active(isQid(e)) |
→ |
mark(tt) |
(27) |
active(isQid(i)) |
→ |
mark(tt) |
(28) |
active(isQid(o)) |
→ |
mark(tt) |
(29) |
active(isQid(u)) |
→ |
mark(tt) |
(30) |
1.1 Rule Removal
Using the
linear polynomial interpretation over the naturals
[active(x1)] |
= |
1 · x1
|
[__(x1, x2)] |
= |
2 + 2 · x1 + 1 · x2
|
[mark(x1)] |
= |
1 · x1
|
[nil] |
= |
2 |
[U11(x1)] |
= |
1 · x1
|
[tt] |
= |
2 |
[U21(x1, x2)] |
= |
1 + 1 · x1 + 1 · x2
|
[U22(x1)] |
= |
1 · x1
|
[isList(x1)] |
= |
1 · x1
|
[U31(x1)] |
= |
1 · x1
|
[U41(x1, x2)] |
= |
1 + 2 · x1 + 1 · x2
|
[U42(x1)] |
= |
1 · x1
|
[isNeList(x1)] |
= |
1 · x1
|
[U51(x1, x2)] |
= |
2 · x1 + 1 · x2
|
[U52(x1)] |
= |
1 · x1
|
[U61(x1)] |
= |
2 · x1
|
[U71(x1, x2)] |
= |
2 · x1 + 2 · x2
|
[U72(x1)] |
= |
2 + 1 · x1
|
[isPal(x1)] |
= |
1 + 2 · x1
|
[U81(x1)] |
= |
1 · x1
|
[isQid(x1)] |
= |
1 · x1
|
[isNePal(x1)] |
= |
2 · x1
|
[proper(x1)] |
= |
1 · x1
|
[ok(x1)] |
= |
1 · x1
|
[a] |
= |
0 |
[e] |
= |
0 |
[i] |
= |
0 |
[o] |
= |
0 |
[u] |
= |
0 |
[top(x1)] |
= |
1 · x1
|
all of the following rules can be deleted.
active(__(__(X,Y),Z)) |
→ |
mark(__(X,__(Y,Z))) |
(1) |
active(__(X,nil)) |
→ |
mark(X) |
(2) |
active(__(nil,X)) |
→ |
mark(X) |
(3) |
active(U21(tt,V2)) |
→ |
mark(U22(isList(V2))) |
(5) |
active(U41(tt,V2)) |
→ |
mark(U42(isNeList(V2))) |
(8) |
active(U51(tt,V2)) |
→ |
mark(U52(isList(V2))) |
(10) |
active(U61(tt)) |
→ |
mark(tt) |
(12) |
active(U71(tt,P)) |
→ |
mark(U72(isPal(P))) |
(13) |
active(U72(tt)) |
→ |
mark(tt) |
(14) |
active(isList(__(V1,V2))) |
→ |
mark(U21(isList(V1),V2)) |
(18) |
active(isNeList(__(V1,V2))) |
→ |
mark(U41(isList(V1),V2)) |
(20) |
active(isNeList(__(V1,V2))) |
→ |
mark(U51(isNeList(V1),V2)) |
(21) |
active(isNePal(__(I,__(P,I)))) |
→ |
mark(U71(isQid(I),P)) |
(23) |
active(isPal(V)) |
→ |
mark(U81(isNePal(V))) |
(24) |
active(isPal(nil)) |
→ |
mark(tt) |
(25) |
1.1.1 Rule Removal
Using the
linear polynomial interpretation over the naturals
[active(x1)] |
= |
1 · x1
|
[U11(x1)] |
= |
1 + 2 · x1
|
[tt] |
= |
0 |
[mark(x1)] |
= |
1 · x1
|
[U22(x1)] |
= |
2 · x1
|
[U31(x1)] |
= |
1 · x1
|
[U42(x1)] |
= |
1 · x1
|
[U52(x1)] |
= |
2 · x1
|
[U81(x1)] |
= |
1 · x1
|
[isList(x1)] |
= |
1 + 2 · x1
|
[isNeList(x1)] |
= |
1 · x1
|
[nil] |
= |
0 |
[isQid(x1)] |
= |
1 · x1
|
[isNePal(x1)] |
= |
2 · x1
|
[U61(x1)] |
= |
2 · x1
|
[__(x1, x2)] |
= |
1 · x1 + 2 · x2
|
[U21(x1, x2)] |
= |
2 · x1 + 2 · x2
|
[U41(x1, x2)] |
= |
2 · x1 + 2 · x2
|
[U51(x1, x2)] |
= |
1 · x1 + 1 · x2
|
[U71(x1, x2)] |
= |
2 · x1 + 2 · x2
|
[U72(x1)] |
= |
2 · x1
|
[proper(x1)] |
= |
1 · x1
|
[ok(x1)] |
= |
1 · x1
|
[isPal(x1)] |
= |
1 · x1
|
[a] |
= |
0 |
[e] |
= |
0 |
[i] |
= |
0 |
[o] |
= |
0 |
[u] |
= |
0 |
[top(x1)] |
= |
2 · x1
|
all of the following rules can be deleted.
active(U11(tt)) |
→ |
mark(tt) |
(4) |
active(isList(nil)) |
→ |
mark(tt) |
(17) |
1.1.1.1 Rule Removal
Using the
linear polynomial interpretation over the naturals
[active(x1)] |
= |
1 · x1
|
[U22(x1)] |
= |
2 + 2 · x1
|
[tt] |
= |
0 |
[mark(x1)] |
= |
1 · x1
|
[U31(x1)] |
= |
1 · x1
|
[U42(x1)] |
= |
1 · x1
|
[U52(x1)] |
= |
1 · x1
|
[U81(x1)] |
= |
2 · x1
|
[isList(x1)] |
= |
2 · x1
|
[U11(x1)] |
= |
2 · x1
|
[isNeList(x1)] |
= |
1 · x1
|
[isQid(x1)] |
= |
1 · x1
|
[isNePal(x1)] |
= |
2 · x1
|
[U61(x1)] |
= |
2 · x1
|
[__(x1, x2)] |
= |
1 · x1 + 1 · x2
|
[U21(x1, x2)] |
= |
2 · x1 + 2 · x2
|
[U41(x1, x2)] |
= |
1 · x1 + 2 · x2
|
[U51(x1, x2)] |
= |
1 · x1 + 1 · x2
|
[U71(x1, x2)] |
= |
2 · x1 + 1 · x2
|
[U72(x1)] |
= |
2 · x1
|
[proper(x1)] |
= |
1 · x1
|
[nil] |
= |
0 |
[ok(x1)] |
= |
1 · x1
|
[isPal(x1)] |
= |
2 · x1
|
[a] |
= |
0 |
[e] |
= |
0 |
[i] |
= |
0 |
[o] |
= |
0 |
[u] |
= |
0 |
[top(x1)] |
= |
1 · x1
|
all of the following rules can be deleted.
active(U22(tt)) |
→ |
mark(tt) |
(6) |
1.1.1.1.1 Rule Removal
Using the
linear polynomial interpretation over the naturals
[active(x1)] |
= |
1 · x1
|
[U31(x1)] |
= |
1 · x1
|
[tt] |
= |
0 |
[mark(x1)] |
= |
1 · x1
|
[U42(x1)] |
= |
2 · x1
|
[U52(x1)] |
= |
2 + 1 · x1
|
[U81(x1)] |
= |
2 · x1
|
[isList(x1)] |
= |
2 + 2 · x1
|
[U11(x1)] |
= |
1 + 2 · x1
|
[isNeList(x1)] |
= |
1 · x1
|
[isQid(x1)] |
= |
1 · x1
|
[isNePal(x1)] |
= |
2 · x1
|
[U61(x1)] |
= |
1 · x1
|
[__(x1, x2)] |
= |
2 · x1 + 2 · x2
|
[U21(x1, x2)] |
= |
1 · x1 + 1 · x2
|
[U22(x1)] |
= |
1 · x1
|
[U41(x1, x2)] |
= |
1 · x1 + 2 · x2
|
[U51(x1, x2)] |
= |
1 · x1 + 1 · x2
|
[U71(x1, x2)] |
= |
1 · x1 + 1 · x2
|
[U72(x1)] |
= |
1 · x1
|
[proper(x1)] |
= |
1 · x1
|
[nil] |
= |
0 |
[ok(x1)] |
= |
1 · x1
|
[isPal(x1)] |
= |
1 · x1
|
[a] |
= |
0 |
[e] |
= |
0 |
[i] |
= |
0 |
[o] |
= |
0 |
[u] |
= |
0 |
[top(x1)] |
= |
1 · x1
|
all of the following rules can be deleted.
active(U52(tt)) |
→ |
mark(tt) |
(11) |
active(isList(V)) |
→ |
mark(U11(isNeList(V))) |
(16) |
1.1.1.1.1.1 Rule Removal
Using the
linear polynomial interpretation over the naturals
[active(x1)] |
= |
1 · x1
|
[U31(x1)] |
= |
1 + 1 · x1
|
[tt] |
= |
0 |
[mark(x1)] |
= |
1 · x1
|
[U42(x1)] |
= |
2 · x1
|
[U81(x1)] |
= |
2 · x1
|
[isNeList(x1)] |
= |
2 + 2 · x1
|
[isQid(x1)] |
= |
2 · x1
|
[isNePal(x1)] |
= |
2 + 2 · x1
|
[U61(x1)] |
= |
1 + 1 · x1
|
[__(x1, x2)] |
= |
2 · x1 + 1 · x2
|
[U11(x1)] |
= |
2 · x1
|
[U21(x1, x2)] |
= |
1 · x1 + 1 · x2
|
[U22(x1)] |
= |
1 · x1
|
[U41(x1, x2)] |
= |
1 · x1 + 1 · x2
|
[U51(x1, x2)] |
= |
1 · x1 + 2 · x2
|
[U52(x1)] |
= |
1 · x1
|
[U71(x1, x2)] |
= |
2 · x1 + 2 · x2
|
[U72(x1)] |
= |
2 · x1
|
[proper(x1)] |
= |
1 · x1
|
[nil] |
= |
0 |
[ok(x1)] |
= |
1 · x1
|
[isList(x1)] |
= |
1 · x1
|
[isPal(x1)] |
= |
2 · x1
|
[a] |
= |
0 |
[e] |
= |
0 |
[i] |
= |
0 |
[o] |
= |
0 |
[u] |
= |
0 |
[top(x1)] |
= |
1 · x1
|
all of the following rules can be deleted.
active(U31(tt)) |
→ |
mark(tt) |
(7) |
active(isNeList(V)) |
→ |
mark(U31(isQid(V))) |
(19) |
active(isNePal(V)) |
→ |
mark(U61(isQid(V))) |
(22) |
1.1.1.1.1.1.1 Rule Removal
Using the
linear polynomial interpretation over the naturals
[active(x1)] |
= |
1 · x1
|
[U42(x1)] |
= |
1 · x1
|
[tt] |
= |
1 |
[mark(x1)] |
= |
1 · x1
|
[U81(x1)] |
= |
2 · x1
|
[__(x1, x2)] |
= |
1 · x1 + 2 · x2
|
[U11(x1)] |
= |
1 · x1
|
[U21(x1, x2)] |
= |
2 · x1 + 2 · x2
|
[U22(x1)] |
= |
1 · x1
|
[U31(x1)] |
= |
2 · x1
|
[U41(x1, x2)] |
= |
2 · x1 + 1 · x2
|
[U51(x1, x2)] |
= |
1 · x1 + 1 · x2
|
[U52(x1)] |
= |
2 · x1
|
[U61(x1)] |
= |
1 · x1
|
[U71(x1, x2)] |
= |
2 · x1 + 2 · x2
|
[U72(x1)] |
= |
1 · x1
|
[proper(x1)] |
= |
1 · x1
|
[nil] |
= |
0 |
[ok(x1)] |
= |
1 · x1
|
[isList(x1)] |
= |
1 · x1
|
[isNeList(x1)] |
= |
1 · x1
|
[isPal(x1)] |
= |
1 · x1
|
[isQid(x1)] |
= |
1 · x1
|
[isNePal(x1)] |
= |
2 · x1
|
[a] |
= |
0 |
[e] |
= |
0 |
[i] |
= |
0 |
[o] |
= |
0 |
[u] |
= |
0 |
[top(x1)] |
= |
1 · x1
|
all of the following rules can be deleted.
active(U81(tt)) |
→ |
mark(tt) |
(15) |
1.1.1.1.1.1.1.1 Rule Removal
Using the
linear polynomial interpretation over the naturals
[active(x1)] |
= |
1 · x1
|
[U42(x1)] |
= |
2 · x1
|
[tt] |
= |
1 |
[mark(x1)] |
= |
1 · x1
|
[__(x1, x2)] |
= |
2 · x1 + 2 · x2
|
[U11(x1)] |
= |
1 · x1
|
[U21(x1, x2)] |
= |
2 · x1 + 2 · x2
|
[U22(x1)] |
= |
1 · x1
|
[U31(x1)] |
= |
1 · x1
|
[U41(x1, x2)] |
= |
1 · x1 + 2 · x2
|
[U51(x1, x2)] |
= |
1 · x1 + 2 · x2
|
[U52(x1)] |
= |
1 · x1
|
[U61(x1)] |
= |
1 · x1
|
[U71(x1, x2)] |
= |
2 · x1 + 2 · x2
|
[U72(x1)] |
= |
2 · x1
|
[U81(x1)] |
= |
1 · x1
|
[proper(x1)] |
= |
1 · x1
|
[nil] |
= |
0 |
[ok(x1)] |
= |
1 · x1
|
[isList(x1)] |
= |
1 · x1
|
[isNeList(x1)] |
= |
2 · x1
|
[isPal(x1)] |
= |
1 · x1
|
[isQid(x1)] |
= |
1 · x1
|
[isNePal(x1)] |
= |
2 · x1
|
[a] |
= |
0 |
[e] |
= |
0 |
[i] |
= |
0 |
[o] |
= |
0 |
[u] |
= |
0 |
[top(x1)] |
= |
1 · x1
|
all of the following rules can be deleted.
active(U42(tt)) |
→ |
mark(tt) |
(9) |
1.1.1.1.1.1.1.1.1 Rule Removal
Using the
linear polynomial interpretation over the naturals
[active(x1)] |
= |
1 · x1
|
[__(x1, x2)] |
= |
2 · x1 + 2 · x2
|
[U11(x1)] |
= |
2 · x1
|
[U21(x1, x2)] |
= |
2 · x1 + 1 · x2
|
[U22(x1)] |
= |
2 · x1
|
[U31(x1)] |
= |
2 · x1
|
[U41(x1, x2)] |
= |
2 · x1 + 1 · x2
|
[U42(x1)] |
= |
2 · x1
|
[U51(x1, x2)] |
= |
2 · x1 + 1 · x2
|
[U52(x1)] |
= |
2 · x1
|
[U61(x1)] |
= |
2 · x1
|
[U71(x1, x2)] |
= |
2 · x1 + 2 · x2
|
[U72(x1)] |
= |
2 · x1
|
[U81(x1)] |
= |
2 · x1
|
[mark(x1)] |
= |
2 + 1 · x1
|
[proper(x1)] |
= |
1 · x1
|
[nil] |
= |
0 |
[ok(x1)] |
= |
1 · x1
|
[tt] |
= |
0 |
[isList(x1)] |
= |
1 · x1
|
[isNeList(x1)] |
= |
1 · x1
|
[isPal(x1)] |
= |
2 · x1
|
[isQid(x1)] |
= |
2 · x1
|
[isNePal(x1)] |
= |
2 · x1
|
[a] |
= |
0 |
[e] |
= |
0 |
[i] |
= |
0 |
[o] |
= |
0 |
[u] |
= |
0 |
[top(x1)] |
= |
1 · x1
|
all of the following rules can be deleted.
__(mark(X1),X2) |
→ |
mark(__(X1,X2)) |
(45) |
__(X1,mark(X2)) |
→ |
mark(__(X1,X2)) |
(46) |
U11(mark(X)) |
→ |
mark(U11(X)) |
(47) |
U21(mark(X1),X2) |
→ |
mark(U21(X1,X2)) |
(48) |
U22(mark(X)) |
→ |
mark(U22(X)) |
(49) |
U31(mark(X)) |
→ |
mark(U31(X)) |
(50) |
U41(mark(X1),X2) |
→ |
mark(U41(X1,X2)) |
(51) |
U42(mark(X)) |
→ |
mark(U42(X)) |
(52) |
U51(mark(X1),X2) |
→ |
mark(U51(X1,X2)) |
(53) |
U52(mark(X)) |
→ |
mark(U52(X)) |
(54) |
U61(mark(X)) |
→ |
mark(U61(X)) |
(55) |
U71(mark(X1),X2) |
→ |
mark(U71(X1,X2)) |
(56) |
U72(mark(X)) |
→ |
mark(U72(X)) |
(57) |
U81(mark(X)) |
→ |
mark(U81(X)) |
(58) |
top(mark(X)) |
→ |
top(proper(X)) |
(102) |
1.1.1.1.1.1.1.1.1.1 Rule Removal
Using the
linear polynomial interpretation over the naturals
[active(x1)] |
= |
1 + 2 · x1
|
[__(x1, x2)] |
= |
2 + 1 · x1 + 1 · x2
|
[U11(x1)] |
= |
1 · x1
|
[U21(x1, x2)] |
= |
2 + 1 · x1 + 1 · x2
|
[U22(x1)] |
= |
1 · x1
|
[U31(x1)] |
= |
1 · x1
|
[U41(x1, x2)] |
= |
2 + 1 · x1 + 1 · x2
|
[U42(x1)] |
= |
1 · x1
|
[U51(x1, x2)] |
= |
2 + 1 · x1 + 1 · x2
|
[U52(x1)] |
= |
2 + 2 · x1
|
[U61(x1)] |
= |
1 · x1
|
[U71(x1, x2)] |
= |
2 + 1 · x1 + 1 · x2
|
[U72(x1)] |
= |
2 + 2 · x1
|
[U81(x1)] |
= |
1 · x1
|
[proper(x1)] |
= |
2 + 2 · x1
|
[nil] |
= |
0 |
[ok(x1)] |
= |
2 + 2 · x1
|
[tt] |
= |
0 |
[isList(x1)] |
= |
1 · x1
|
[isNeList(x1)] |
= |
1 · x1
|
[isPal(x1)] |
= |
1 · x1
|
[isQid(x1)] |
= |
1 · x1
|
[isNePal(x1)] |
= |
1 · x1
|
[a] |
= |
1 |
[e] |
= |
1 |
[i] |
= |
0 |
[o] |
= |
0 |
[u] |
= |
0 |
[top(x1)] |
= |
1 · x1
|
all of the following rules can be deleted.
active(__(X1,X2)) |
→ |
__(active(X1),X2) |
(31) |
active(__(X1,X2)) |
→ |
__(X1,active(X2)) |
(32) |
active(U21(X1,X2)) |
→ |
U21(active(X1),X2) |
(34) |
active(U41(X1,X2)) |
→ |
U41(active(X1),X2) |
(37) |
active(U51(X1,X2)) |
→ |
U51(active(X1),X2) |
(39) |
active(U52(X)) |
→ |
U52(active(X)) |
(40) |
active(U71(X1,X2)) |
→ |
U71(active(X1),X2) |
(42) |
active(U72(X)) |
→ |
U72(active(X)) |
(43) |
top(ok(X)) |
→ |
top(active(X)) |
(103) |
1.1.1.1.1.1.1.1.1.1.1 Rule Removal
Using the
linear polynomial interpretation over the naturals
[active(x1)] |
= |
2 · x1
|
[U11(x1)] |
= |
2 · x1
|
[U22(x1)] |
= |
2 · x1
|
[U31(x1)] |
= |
2 · x1
|
[U42(x1)] |
= |
2 · x1
|
[U61(x1)] |
= |
2 + 2 · x1
|
[U81(x1)] |
= |
2 + 1 · x1
|
[proper(x1)] |
= |
2 · x1
|
[__(x1, x2)] |
= |
2 + 2 · x1 + 1 · x2
|
[nil] |
= |
1 |
[ok(x1)] |
= |
1 + 1 · x1
|
[tt] |
= |
2 |
[U21(x1, x2)] |
= |
1 · x1 + 2 · x2
|
[isList(x1)] |
= |
2 · x1
|
[U41(x1, x2)] |
= |
1 · x1 + 2 · x2
|
[isNeList(x1)] |
= |
1 + 2 · x1
|
[U51(x1, x2)] |
= |
1 · x1 + 2 · x2
|
[U52(x1)] |
= |
2 + 2 · x1
|
[U71(x1, x2)] |
= |
1 · x1 + 2 · x2
|
[U72(x1)] |
= |
2 · x1
|
[isPal(x1)] |
= |
1 · x1
|
[isQid(x1)] |
= |
1 · x1
|
[isNePal(x1)] |
= |
2 · x1
|
[a] |
= |
2 |
[e] |
= |
1 |
[i] |
= |
2 |
[o] |
= |
2 |
[u] |
= |
2 |
all of the following rules can be deleted.
active(U61(X)) |
→ |
U61(active(X)) |
(41) |
active(U81(X)) |
→ |
U81(active(X)) |
(44) |
proper(__(X1,X2)) |
→ |
__(proper(X1),proper(X2)) |
(59) |
proper(tt) |
→ |
ok(tt) |
(62) |
proper(isNeList(X)) |
→ |
isNeList(proper(X)) |
(69) |
proper(U52(X)) |
→ |
U52(proper(X)) |
(71) |
proper(U61(X)) |
→ |
U61(proper(X)) |
(72) |
proper(U81(X)) |
→ |
U81(proper(X)) |
(76) |
proper(a) |
→ |
ok(a) |
(79) |
proper(i) |
→ |
ok(i) |
(81) |
proper(o) |
→ |
ok(o) |
(82) |
proper(u) |
→ |
ok(u) |
(83) |
__(ok(X1),ok(X2)) |
→ |
ok(__(X1,X2)) |
(84) |
U11(ok(X)) |
→ |
ok(U11(X)) |
(85) |
U21(ok(X1),ok(X2)) |
→ |
ok(U21(X1,X2)) |
(86) |
U22(ok(X)) |
→ |
ok(U22(X)) |
(87) |
isList(ok(X)) |
→ |
ok(isList(X)) |
(88) |
U31(ok(X)) |
→ |
ok(U31(X)) |
(89) |
U41(ok(X1),ok(X2)) |
→ |
ok(U41(X1,X2)) |
(90) |
U42(ok(X)) |
→ |
ok(U42(X)) |
(91) |
isNeList(ok(X)) |
→ |
ok(isNeList(X)) |
(92) |
U51(ok(X1),ok(X2)) |
→ |
ok(U51(X1,X2)) |
(93) |
U52(ok(X)) |
→ |
ok(U52(X)) |
(94) |
U61(ok(X)) |
→ |
ok(U61(X)) |
(95) |
U71(ok(X1),ok(X2)) |
→ |
ok(U71(X1,X2)) |
(96) |
U72(ok(X)) |
→ |
ok(U72(X)) |
(97) |
isNePal(ok(X)) |
→ |
ok(isNePal(X)) |
(101) |
1.1.1.1.1.1.1.1.1.1.1.1 Rule Removal
Using the
linear polynomial interpretation over the naturals
[active(x1)] |
= |
2 + 2 · x1
|
[U11(x1)] |
= |
1 + 1 · x1
|
[U22(x1)] |
= |
1 + 1 · x1
|
[U31(x1)] |
= |
1 · x1
|
[U42(x1)] |
= |
1 + 1 · x1
|
[proper(x1)] |
= |
2 + 2 · x1
|
[nil] |
= |
1 |
[ok(x1)] |
= |
1 + 1 · x1
|
[U21(x1, x2)] |
= |
2 + 1 · x1 + 1 · x2
|
[isList(x1)] |
= |
2 + 1 · x1
|
[U41(x1, x2)] |
= |
2 + 1 · x1 + 1 · x2
|
[U51(x1, x2)] |
= |
2 + 1 · x1 + 1 · x2
|
[U71(x1, x2)] |
= |
2 + 1 · x1 + 1 · x2
|
[U72(x1)] |
= |
1 + 1 · x1
|
[isPal(x1)] |
= |
2 + 2 · x1
|
[isQid(x1)] |
= |
2 + 2 · x1
|
[isNePal(x1)] |
= |
1 · x1
|
[e] |
= |
0 |
[U81(x1)] |
= |
1 · x1
|
all of the following rules can be deleted.
active(U11(X)) |
→ |
U11(active(X)) |
(33) |
active(U22(X)) |
→ |
U22(active(X)) |
(35) |
active(U42(X)) |
→ |
U42(active(X)) |
(38) |
proper(nil) |
→ |
ok(nil) |
(60) |
proper(U11(X)) |
→ |
U11(proper(X)) |
(61) |
proper(U22(X)) |
→ |
U22(proper(X)) |
(64) |
proper(isList(X)) |
→ |
isList(proper(X)) |
(65) |
proper(U42(X)) |
→ |
U42(proper(X)) |
(68) |
proper(U72(X)) |
→ |
U72(proper(X)) |
(74) |
proper(e) |
→ |
ok(e) |
(80) |
isPal(ok(X)) |
→ |
ok(isPal(X)) |
(98) |
isQid(ok(X)) |
→ |
ok(isQid(X)) |
(100) |
1.1.1.1.1.1.1.1.1.1.1.1.1 Rule Removal
Using the
Knuth Bendix order with w0 = 1 and the following precedence and weight functions
prec(active) |
= |
1 |
|
weight(active) |
= |
2 |
|
|
|
prec(U31) |
= |
0 |
|
weight(U31) |
= |
1 |
|
|
|
prec(proper) |
= |
11 |
|
weight(proper) |
= |
0 |
|
|
|
prec(isPal) |
= |
6 |
|
weight(isPal) |
= |
1 |
|
|
|
prec(isQid) |
= |
7 |
|
weight(isQid) |
= |
1 |
|
|
|
prec(isNePal) |
= |
8 |
|
weight(isNePal) |
= |
1 |
|
|
|
prec(U81) |
= |
10 |
|
weight(U81) |
= |
2 |
|
|
|
prec(ok) |
= |
9 |
|
weight(ok) |
= |
1 |
|
|
|
prec(U21) |
= |
2 |
|
weight(U21) |
= |
0 |
|
|
|
prec(U41) |
= |
3 |
|
weight(U41) |
= |
0 |
|
|
|
prec(U51) |
= |
4 |
|
weight(U51) |
= |
0 |
|
|
|
prec(U71) |
= |
5 |
|
weight(U71) |
= |
0 |
|
|
|
all of the following rules can be deleted.
active(U31(X)) |
→ |
U31(active(X)) |
(36) |
proper(U21(X1,X2)) |
→ |
U21(proper(X1),proper(X2)) |
(63) |
proper(U31(X)) |
→ |
U31(proper(X)) |
(66) |
proper(U41(X1,X2)) |
→ |
U41(proper(X1),proper(X2)) |
(67) |
proper(U51(X1,X2)) |
→ |
U51(proper(X1),proper(X2)) |
(70) |
proper(U71(X1,X2)) |
→ |
U71(proper(X1),proper(X2)) |
(73) |
proper(isPal(X)) |
→ |
isPal(proper(X)) |
(75) |
proper(isQid(X)) |
→ |
isQid(proper(X)) |
(77) |
proper(isNePal(X)) |
→ |
isNePal(proper(X)) |
(78) |
U81(ok(X)) |
→ |
ok(U81(X)) |
(99) |
1.1.1.1.1.1.1.1.1.1.1.1.1.1 R is empty
There are no rules in the TRS. Hence, it is terminating.