Certification Problem

Input (TPDB TRS_Standard/Transformed_CSR_04/PALINDROME_nokinds-noand_FR)

The rewrite relation of the following TRS is considered.

__(__(X,Y),Z) __(X,__(Y,Z)) (1)
__(X,nil) X (2)
__(nil,X) X (3)
U11(tt) tt (4)
U21(tt,V2) U22(isList(activate(V2))) (5)
U22(tt) tt (6)
U31(tt) tt (7)
U41(tt,V2) U42(isNeList(activate(V2))) (8)
U42(tt) tt (9)
U51(tt,V2) U52(isList(activate(V2))) (10)
U52(tt) tt (11)
U61(tt) tt (12)
U71(tt,P) U72(isPal(activate(P))) (13)
U72(tt) tt (14)
U81(tt) tt (15)
isList(V) U11(isNeList(activate(V))) (16)
isList(n__nil) tt (17)
isList(n____(V1,V2)) U21(isList(activate(V1)),activate(V2)) (18)
isNeList(V) U31(isQid(activate(V))) (19)
isNeList(n____(V1,V2)) U41(isList(activate(V1)),activate(V2)) (20)
isNeList(n____(V1,V2)) U51(isNeList(activate(V1)),activate(V2)) (21)
isNePal(V) U61(isQid(activate(V))) (22)
isNePal(n____(I,n____(P,I))) U71(isQid(activate(I)),activate(P)) (23)
isPal(V) U81(isNePal(activate(V))) (24)
isPal(n__nil) tt (25)
isQid(n__a) tt (26)
isQid(n__e) tt (27)
isQid(n__i) tt (28)
isQid(n__o) tt (29)
isQid(n__u) tt (30)
nil n__nil (31)
__(X1,X2) n____(X1,X2) (32)
a n__a (33)
e n__e (34)
i n__i (35)
o n__o (36)
u n__u (37)
activate(n__nil) nil (38)
activate(n____(X1,X2)) __(activate(X1),activate(X2)) (39)
activate(n__a) a (40)
activate(n__e) e (41)
activate(n__i) i (42)
activate(n__o) o (43)
activate(n__u) u (44)
activate(X) X (45)

Property / Task

Prove or disprove termination.

Answer / Result

Yes.

Proof (by ttt2 @ termCOMP 2023)

1 Rule Removal

Using the linear polynomial interpretation over (3 x 3)-matrices with strict dimension 1 over the naturals
[U81(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
1 0 0
0 0 0
0 0 0
[U21(x1, x2)] =
1 0 0
0 0 0
0 0 0
· x1 +
1 0 0
0 0 0
0 0 1
· x2 +
1 0 0
0 0 0
0 0 0
[U71(x1, x2)] =
1 0 0
0 0 0
1 0 0
· x1 +
1 0 0
0 0 0
0 0 0
· x2 +
1 0 0
0 0 0
1 0 0
[U31(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
0 0 0
0 0 0
1 0 0
[nil] =
1 0 0
1 0 0
1 0 0
[U11(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
0 0 0
1 0 0
0 0 0
[isPal(x1)] =
1 0 0
0 0 0
1 1 1
· x1 +
1 0 0
1 0 0
0 0 0
[isQid(x1)] =
1 0 0
0 0 0
0 0 1
· x1 +
0 0 0
0 0 0
1 0 0
[n__o] =
1 0 0
0 0 0
0 0 0
[u] =
1 0 0
0 0 0
0 0 0
[n__nil] =
1 0 0
1 0 0
1 0 0
[U72(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[n__u] =
1 0 0
0 0 0
0 0 0
[isNePal(x1)] =
1 0 0
1 0 0
1 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[a] =
1 0 0
1 0 0
0 0 0
[activate(x1)] =
1 0 0
0 1 0
0 0 1
· x1 +
0 0 0
0 0 0
0 0 0
[isNeList(x1)] =
1 0 0
1 0 0
0 0 0
· x1 +
0 0 0
0 0 0
1 0 0
[__(x1, x2)] =
1 0 0
1 1 0
0 0 1
· x1 +
1 0 0
0 1 0
0 0 1
· x2 +
1 0 0
0 0 0
0 0 0
[U22(x1)] =
1 1 0
0 0 0
0 0 0
· x1 +
1 0 0
0 0 0
0 0 0
[n____(x1, x2)] =
1 0 0
1 1 0
0 0 1
· x1 +
1 0 0
0 1 0
0 0 1
· x2 +
1 0 0
0 0 0
0 0 0
[n__i] =
1 0 0
0 0 0
0 0 0
[i] =
1 0 0
0 0 0
0 0 0
[U61(x1)] =
1 0 0
0 0 0
1 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[o] =
1 0 0
0 0 0
0 0 0
[U51(x1, x2)] =
1 0 0
0 0 0
0 0 0
· x1 +
1 0 0
0 0 0
0 0 0
· x2 +
0 0 0
1 0 0
1 0 0
[n__a] =
1 0 0
1 0 0
0 0 0
[n__e] =
1 0 0
0 0 0
1 0 0
[U42(x1)] =
1 0 1
0 1 0
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[U41(x1, x2)] =
1 1 0
1 0 0
0 0 0
· x1 +
1 0 0
1 0 0
0 0 0
· x2 +
0 0 0
0 0 0
0 0 0
[U52(x1)] =
1 0 0
0 1 0
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[isList(x1)] =
1 0 0
0 0 0
0 0 1
· x1 +
0 0 0
1 0 0
0 0 0
[e] =
1 0 0
0 0 0
1 0 0
[tt] =
1 0 0
0 0 0
0 0 0
all of the following rules can be deleted.
__(X,nil) X (2)
__(nil,X) X (3)
U22(tt) tt (6)
U51(tt,V2) U52(isList(activate(V2))) (10)
U71(tt,P) U72(isPal(activate(P))) (13)
U81(tt) tt (15)
isNeList(n____(V1,V2)) U51(isNeList(activate(V1)),activate(V2)) (21)
isNePal(n____(I,n____(P,I))) U71(isQid(activate(I)),activate(P)) (23)
isPal(n__nil) tt (25)

1.1 Rule Removal

Using the linear polynomial interpretation over (3 x 3)-matrices with strict dimension 1 over the naturals
[U81(x1)] =
1 0 0
0 1 0
0 1 0
· x1 +
0 0 0
0 0 0
0 0 0
[U21(x1, x2)] =
1 0 0
0 0 0
1 0 0
· x1 +
1 0 0
0 0 0
1 0 0
· x2 +
0 0 0
0 0 0
0 0 0
[U31(x1)] =
1 0 0
0 0 1
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[nil] =
0 0 0
0 0 0
0 0 0
[U11(x1)] =
1 0 0
0 0 0
0 0 1
· x1 +
0 0 0
0 0 0
0 0 0
[isPal(x1)] =
1 0 0
1 0 1
1 1 1
· x1 +
1 0 0
1 0 0
1 0 0
[isQid(x1)] =
1 0 0
1 1 0
0 0 1
· x1 +
0 0 0
0 0 0
1 0 0
[n__o] =
0 0 0
1 0 0
0 0 0
[u] =
1 0 0
0 0 0
1 0 0
[n__nil] =
0 0 0
0 0 0
0 0 0
[U72(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[n__u] =
1 0 0
0 0 0
1 0 0
[isNePal(x1)] =
1 0 0
0 0 1
1 0 1
· x1 +
1 0 0
0 0 0
0 0 0
[a] =
0 0 0
0 0 0
1 0 0
[activate(x1)] =
1 0 0
1 1 0
1 0 1
· x1 +
0 0 0
0 0 0
0 0 0
[isNeList(x1)] =
1 0 0
1 1 1
0 0 1
· x1 +
0 0 0
1 0 0
0 0 0
[__(x1, x2)] =
1 0 0
0 0 0
0 0 0
· x1 +
1 0 0
0 0 0
0 0 0
· x2 +
1 0 0
0 0 0
1 0 0
[U22(x1)] =
1 0 0
0 0 0
1 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[n____(x1, x2)] =
1 0 0
0 0 0
0 0 0
· x1 +
1 0 0
0 0 0
0 0 0
· x2 +
1 0 0
0 0 0
1 0 0
[n__i] =
1 0 0
0 0 0
0 0 0
[i] =
1 0 0
0 0 0
0 0 0
[U61(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
1 0 0
0 0 0
0 0 0
[o] =
0 0 0
1 0 0
0 0 0
[n__a] =
0 0 0
0 0 0
1 0 0
[n__e] =
0 0 0
0 0 0
1 0 0
[U42(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
1 0 0
1 0 0
0 0 0
[U41(x1, x2)] =
1 0 0
1 0 0
0 0 0
· x1 +
1 0 0
0 0 0
0 0 0
· x2 +
1 0 0
1 0 0
1 0 0
[U52(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[isList(x1)] =
1 0 0
0 0 0
1 0 1
· x1 +
0 0 0
0 0 0
0 0 0
[e] =
0 0 0
0 0 0
1 0 0
[tt] =
0 0 0
0 0 0
0 0 0
all of the following rules can be deleted.
U42(tt) tt (9)
U61(tt) tt (12)
isList(n____(V1,V2)) U21(isList(activate(V1)),activate(V2)) (18)
isQid(n__i) tt (28)
isQid(n__u) tt (30)

1.1.1 Rule Removal

Using the linear polynomial interpretation over (3 x 3)-matrices with strict dimension 1 over the naturals
[U81(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
0 0 0
1 0 0
0 0 0
[U21(x1, x2)] =
1 0 0
0 0 0
0 0 0
· x1 +
1 0 0
0 0 0
1 1 0
· x2 +
0 0 0
0 0 0
0 0 0
[U31(x1)] =
1 0 0
0 0 1
0 0 1
· x1 +
0 0 0
0 0 0
0 0 0
[nil] =
1 0 0
0 0 0
1 0 0
[U11(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[isPal(x1)] =
1 0 0
0 1 1
1 1 1
· x1 +
1 0 0
1 0 0
1 0 0
[isQid(x1)] =
1 0 0
0 1 0
1 1 0
· x1 +
0 0 0
0 0 0
0 0 0
[n__o] =
0 0 0
0 0 0
0 0 0
[u] =
0 0 0
0 0 0
0 0 0
[n__nil] =
1 0 0
0 0 0
1 0 0
[U72(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[n__u] =
0 0 0
0 0 0
0 0 0
[isNePal(x1)] =
1 0 0
0 1 1
0 0 1
· x1 +
1 0 0
1 0 0
0 0 0
[a] =
1 0 0
0 0 0
0 0 0
[activate(x1)] =
1 0 0
0 1 0
0 0 1
· x1 +
0 0 0
0 0 0
0 0 0
[isNeList(x1)] =
1 0 0
1 1 0
1 1 0
· x1 +
0 0 0
0 0 0
0 0 0
[__(x1, x2)] =
1 0 0
0 1 1
0 0 0
· x1 +
1 1 1
0 0 0
0 0 0
· x2 +
0 0 0
0 0 0
0 0 0
[U22(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[n____(x1, x2)] =
1 0 0
0 1 1
0 0 0
· x1 +
1 1 1
0 0 0
0 0 0
· x2 +
0 0 0
0 0 0
0 0 0
[n__i] =
0 0 0
1 0 0
0 0 0
[i] =
0 0 0
1 0 0
0 0 0
[U61(x1)] =
1 0 0
0 1 0
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[o] =
0 0 0
0 0 0
0 0 0
[n__a] =
1 0 0
0 0 0
0 0 0
[n__e] =
0 0 0
0 0 0
0 0 0
[U42(x1)] =
1 0 0
1 0 0
0 0 1
· x1 +
0 0 0
0 0 0
0 0 0
[U41(x1, x2)] =
1 0 0
0 1 0
0 0 0
· x1 +
1 0 1
1 0 0
1 1 1
· x2 +
0 0 0
0 0 0
0 0 0
[U52(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[isList(x1)] =
1 0 0
1 0 0
1 0 1
· x1 +
0 0 0
0 0 0
1 0 0
[e] =
0 0 0
0 0 0
0 0 0
[tt] =
0 0 0
0 0 0
0 0 0
all of the following rules can be deleted.
isList(n__nil) tt (17)
isNePal(V) U61(isQid(activate(V))) (22)
isQid(n__a) tt (26)

1.1.1.1 Rule Removal

Using the linear polynomial interpretation over (3 x 3)-matrices with strict dimension 1 over the naturals
[U81(x1)] =
1 0 1
0 1 0
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[U21(x1, x2)] =
1 0 0
0 0 0
1 0 0
· x1 +
1 0 0
0 0 1
1 0 1
· x2 +
0 0 0
1 0 0
0 0 0
[U31(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[nil] =
1 0 0
0 0 0
0 0 0
[U11(x1)] =
1 0 0
0 0 0
1 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[isPal(x1)] =
1 1 1
0 1 1
0 1 1
· x1 +
1 0 0
0 0 0
0 0 0
[isQid(x1)] =
1 0 0
0 1 1
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[n__o] =
1 0 0
1 0 0
1 0 0
[u] =
0 0 0
0 0 0
0 0 0
[n__nil] =
1 0 0
0 0 0
0 0 0
[U72(x1)] =
1 0 0
1 0 0
0 0 0
· x1 +
0 0 0
1 0 0
0 0 0
[n__u] =
0 0 0
0 0 0
0 0 0
[isNePal(x1)] =
1 0 0
0 0 1
0 1 0
· x1 +
0 0 0
0 0 0
0 0 0
[a] =
0 0 0
1 0 0
1 0 0
[activate(x1)] =
1 0 0
0 1 1
0 1 1
· x1 +
0 0 0
0 0 0
0 0 0
[isNeList(x1)] =
1 0 0
1 0 1
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[__(x1, x2)] =
1 0 0
1 0 0
0 0 0
· x1 +
1 0 0
0 0 0
0 0 0
· x2 +
1 0 0
1 0 0
0 0 0
[U22(x1)] =
1 0 0
0 0 0
1 0 0
· x1 +
0 0 0
1 0 0
0 0 0
[n____(x1, x2)] =
1 0 0
1 0 0
0 0 0
· x1 +
1 0 0
0 0 0
0 0 0
· x2 +
1 0 0
1 0 0
0 0 0
[n__i] =
0 0 0
1 0 0
1 0 0
[i] =
0 0 0
1 0 0
1 0 0
[o] =
1 0 0
1 0 0
1 0 0
[n__a] =
0 0 0
0 0 0
1 0 0
[n__e] =
1 0 0
1 0 0
0 0 0
[U42(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[U41(x1, x2)] =
1 0 0
0 0 0
0 0 0
· x1 +
1 0 0
0 0 0
0 0 0
· x2 +
1 0 0
0 0 0
0 0 0
[U52(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
0 0 0
0 0 0
1 0 0
[isList(x1)] =
1 0 0
0 0 0
1 1 0
· x1 +
0 0 0
0 0 0
0 0 0
[e] =
1 0 0
1 0 0
1 0 0
[tt] =
1 0 0
0 0 0
0 0 0
all of the following rules can be deleted.
U21(tt,V2) U22(isList(activate(V2))) (5)
U41(tt,V2) U42(isNeList(activate(V2))) (8)
isPal(V) U81(isNePal(activate(V))) (24)

1.1.1.1.1 Rule Removal

Using the linear polynomial interpretation over (3 x 3)-matrices with strict dimension 1 over the naturals
[U31(x1)] =
1 0 1
1 0 0
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[nil] =
1 0 0
0 0 0
0 0 0
[U11(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[isQid(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
0 0 0
0 0 0
1 0 0
[n__o] =
1 0 0
1 0 0
1 0 0
[u] =
0 0 0
0 0 0
0 0 0
[n__nil] =
1 0 0
0 0 0
0 0 0
[U72(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
1 0 0
0 0 0
1 0 0
[n__u] =
0 0 0
0 0 0
0 0 0
[a] =
0 0 0
0 0 0
0 0 0
[activate(x1)] =
1 0 0
0 1 1
0 0 1
· x1 +
0 0 0
0 0 0
0 0 0
[isNeList(x1)] =
1 0 0
1 0 1
0 0 0
· x1 +
1 0 0
0 0 0
1 0 0
[__(x1, x2)] =
1 0 0
1 0 0
1 0 0
· x1 +
1 0 0
0 0 1
0 0 0
· x2 +
0 0 0
0 0 0
0 0 0
[n____(x1, x2)] =
1 0 0
0 0 0
1 0 0
· x1 +
1 0 0
0 0 1
0 0 0
· x2 +
0 0 0
0 0 0
0 0 0
[n__i] =
0 0 0
0 0 0
0 0 0
[i] =
0 0 0
0 0 0
0 0 0
[o] =
1 0 0
1 0 0
1 0 0
[n__a] =
0 0 0
0 0 0
0 0 0
[n__e] =
0 0 0
0 0 0
1 0 0
[U41(x1, x2)] =
1 0 0
0 0 0
0 0 0
· x1 +
1 0 0
1 0 0
0 0 0
· x2 +
0 0 0
0 0 0
1 0 0
[U52(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
1 0 0
0 0 0
0 0 0
[isList(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
1 0 0
0 0 0
0 0 0
[e] =
0 0 0
1 0 0
1 0 0
[tt] =
0 0 0
0 0 0
0 0 0
all of the following rules can be deleted.
U52(tt) tt (11)
U72(tt) tt (14)
isQid(n__o) tt (29)

1.1.1.1.1.1 Dependency Pair Transformation

The following set of initial dependency pairs has been identified.
__#(__(X,Y),Z) __#(Y,Z) (46)
__#(__(X,Y),Z) __#(X,__(Y,Z)) (47)
isList#(V) activate#(V) (48)
isList#(V) isNeList#(activate(V)) (49)
isList#(V) U11#(isNeList(activate(V))) (50)
isNeList#(V) activate#(V) (51)
isNeList#(V) isQid#(activate(V)) (52)
isNeList#(V) U31#(isQid(activate(V))) (53)
isNeList#(n____(V1,V2)) activate#(V2) (54)
isNeList#(n____(V1,V2)) activate#(V1) (55)
isNeList#(n____(V1,V2)) isList#(activate(V1)) (56)
activate#(n__nil) nil# (57)
activate#(n____(X1,X2)) activate#(X2) (58)
activate#(n____(X1,X2)) activate#(X1) (59)
activate#(n____(X1,X2)) __#(activate(X1),activate(X2)) (60)
activate#(n__a) a# (61)
activate#(n__e) e# (62)
activate#(n__i) i# (63)
activate#(n__o) o# (64)
activate#(n__u) u# (65)

1.1.1.1.1.1.1 Dependency Graph Processor

The dependency pairs are split into 3 components.