Certification Problem

Input (TPDB TRS_Standard/Transformed_CSR_04/PALINDROME_nosorts_noand_C)

The rewrite relation of the following TRS is considered.

active(__(__(X,Y),Z)) mark(__(X,__(Y,Z))) (1)
active(__(X,nil)) mark(X) (2)
active(__(nil,X)) mark(X) (3)
active(U11(tt)) mark(U12(tt)) (4)
active(U12(tt)) mark(tt) (5)
active(isNePal(__(I,__(P,I)))) mark(U11(tt)) (6)
active(__(X1,X2)) __(active(X1),X2) (7)
active(__(X1,X2)) __(X1,active(X2)) (8)
active(U11(X)) U11(active(X)) (9)
active(U12(X)) U12(active(X)) (10)
active(isNePal(X)) isNePal(active(X)) (11)
__(mark(X1),X2) mark(__(X1,X2)) (12)
__(X1,mark(X2)) mark(__(X1,X2)) (13)
U11(mark(X)) mark(U11(X)) (14)
U12(mark(X)) mark(U12(X)) (15)
isNePal(mark(X)) mark(isNePal(X)) (16)
proper(__(X1,X2)) __(proper(X1),proper(X2)) (17)
proper(nil) ok(nil) (18)
proper(U11(X)) U11(proper(X)) (19)
proper(tt) ok(tt) (20)
proper(U12(X)) U12(proper(X)) (21)
proper(isNePal(X)) isNePal(proper(X)) (22)
__(ok(X1),ok(X2)) ok(__(X1,X2)) (23)
U11(ok(X)) ok(U11(X)) (24)
U12(ok(X)) ok(U12(X)) (25)
isNePal(ok(X)) ok(isNePal(X)) (26)
top(mark(X)) top(proper(X)) (27)
top(ok(X)) top(active(X)) (28)

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
[tt] =
0 0 0
1 0 0
1 0 0
[proper(x1)] =
1 0 0
0 1 0
0 1 0
· x1 +
0 0 0
0 0 0
0 0 0
[active(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
0 0 0
1 0 0
0 0 0
[nil] =
1 0 0
1 0 0
1 0 0
[U11(x1)] =
1 0 0
0 1 0
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[top(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
0 0 0
0 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 +
0 0 0
1 0 0
0 0 0
[isNePal(x1)] =
1 0 0
0 1 0
0 0 1
· x1 +
0 0 0
0 0 0
0 0 0
[ok(x1)] =
1 0 0
0 0 0
0 0 1
· x1 +
0 0 0
1 0 0
0 0 0
[U12(x1)] =
1 0 0
0 1 0
0 0 1
· x1 +
0 0 0
0 0 0
0 0 0
[mark(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
0 0 0
1 0 0
0 0 0
all of the following rules can be deleted.
active(__(X,nil)) mark(X) (2)
active(__(nil,X)) mark(X) (3)

1.1 Rule Removal

Using the linear polynomial interpretation over (3 x 3)-matrices with strict dimension 1 over the naturals
[tt] =
0 0 0
0 0 0
0 0 0
[proper(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[active(x1)] =
1 0 0
0 0 0
0 1 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 0
· x1 +
0 0 0
0 0 0
0 0 0
[top(x1)] =
1 1 1
0 0 0
0 0 0
· x1 +
1 0 0
0 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 +
0 0 0
0 0 0
0 0 0
[isNePal(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
1 0 0
0 0 0
0 0 0
[ok(x1)] =
1 0 0
0 1 0
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[U12(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[mark(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
all of the following rules can be deleted.
active(isNePal(__(I,__(P,I)))) mark(U11(tt)) (6)

1.1.1 Rule Removal

Using the linear polynomial interpretation over (3 x 3)-matrices with strict dimension 1 over the naturals
[tt] =
1 0 0
0 0 0
0 0 0
[proper(x1)] =
1 0 1
0 0 0
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[active(x1)] =
1 0 0
0 0 0
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 1 0
0 0 1
· x1 +
1 0 0
0 0 0
0 0 0
[top(x1)] =
1 0 1
0 0 0
0 0 0
· x1 +
1 0 0
0 0 0
0 0 0
[__(x1, x2)] =
1 1 1
0 0 0
0 0 0
· x1 +
1 1 1
0 0 0
0 0 0
· x2 +
0 0 0
0 0 0
0 0 0
[isNePal(x1)] =
1 0 0
0 1 0
0 0 1
· x1 +
0 0 0
0 0 0
0 0 0
[ok(x1)] =
1 0 0
0 1 1
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[U12(x1)] =
1 0 0
0 1 0
0 0 1
· x1 +
0 0 0
0 0 0
0 0 0
[mark(x1)] =
1 0 0
0 0 0
0 1 1
· x1 +
0 0 0
0 0 0
0 0 0
all of the following rules can be deleted.
active(U11(tt)) mark(U12(tt)) (4)

1.1.1.1 Rule Removal

Using the linear polynomial interpretation over (3 x 3)-matrices with strict dimension 1 over the naturals
[tt] =
0 0 0
0 0 0
0 0 0
[proper(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[active(x1)] =
1 0 0
0 1 0
1 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
[top(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[__(x1, x2)] =
1 1 0
0 0 0
0 0 0
· x1 +
1 0 0
0 1 0
0 0 0
· x2 +
0 0 0
0 0 0
0 0 0
[isNePal(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[ok(x1)] =
1 0 0
0 1 0
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[U12(x1)] =
1 1 0
0 0 0
0 0 1
· x1 +
1 0 0
0 0 0
0 0 0
[mark(x1)] =
1 0 0
0 1 0
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
all of the following rules can be deleted.
active(U12(tt)) mark(tt) (5)

1.1.1.1.1 Dependency Pair Transformation

The following set of initial dependency pairs has been identified.
active#(__(__(X,Y),Z)) __#(Y,Z) (29)
active#(__(__(X,Y),Z)) __#(X,__(Y,Z)) (30)
active#(__(X1,X2)) active#(X1) (31)
active#(__(X1,X2)) __#(active(X1),X2) (32)
active#(__(X1,X2)) active#(X2) (33)
active#(__(X1,X2)) __#(X1,active(X2)) (34)
active#(U11(X)) active#(X) (35)
active#(U11(X)) U11#(active(X)) (36)
active#(U12(X)) active#(X) (37)
active#(U12(X)) U12#(active(X)) (38)
active#(isNePal(X)) active#(X) (39)
active#(isNePal(X)) isNePal#(active(X)) (40)
__#(mark(X1),X2) __#(X1,X2) (41)
__#(X1,mark(X2)) __#(X1,X2) (42)
U11#(mark(X)) U11#(X) (43)
U12#(mark(X)) U12#(X) (44)
isNePal#(mark(X)) isNePal#(X) (45)
proper#(__(X1,X2)) proper#(X2) (46)
proper#(__(X1,X2)) proper#(X1) (47)
proper#(__(X1,X2)) __#(proper(X1),proper(X2)) (48)
proper#(U11(X)) proper#(X) (49)
proper#(U11(X)) U11#(proper(X)) (50)
proper#(U12(X)) proper#(X) (51)
proper#(U12(X)) U12#(proper(X)) (52)
proper#(isNePal(X)) proper#(X) (53)
proper#(isNePal(X)) isNePal#(proper(X)) (54)
__#(ok(X1),ok(X2)) __#(X1,X2) (55)
U11#(ok(X)) U11#(X) (56)
U12#(ok(X)) U12#(X) (57)
isNePal#(ok(X)) isNePal#(X) (58)
top#(mark(X)) proper#(X) (59)
top#(mark(X)) top#(proper(X)) (60)
top#(ok(X)) active#(X) (61)
top#(ok(X)) top#(active(X)) (62)

1.1.1.1.1.1 Dependency Graph Processor

The dependency pairs are split into 7 components.