Certification Problem

Input (TPDB TRS_Standard/Transformed_CSR_04/PALINDROME_nosorts_iGM)

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(and(tt,X)) mark(X) (4)
active(isNePal(__(I,__(P,I)))) mark(tt) (5)
mark(__(X1,X2)) active(__(mark(X1),mark(X2))) (6)
mark(nil) active(nil) (7)
mark(and(X1,X2)) active(and(mark(X1),X2)) (8)
mark(tt) active(tt) (9)
mark(isNePal(X)) active(isNePal(mark(X))) (10)
__(mark(X1),X2) __(X1,X2) (11)
__(X1,mark(X2)) __(X1,X2) (12)
__(active(X1),X2) __(X1,X2) (13)
__(X1,active(X2)) __(X1,X2) (14)
and(mark(X1),X2) and(X1,X2) (15)
and(X1,mark(X2)) and(X1,X2) (16)
and(active(X1),X2) and(X1,X2) (17)
and(X1,active(X2)) and(X1,X2) (18)
isNePal(mark(X)) isNePal(X) (19)
isNePal(active(X)) isNePal(X) (20)

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
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
[and(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
[__(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
[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(tt) (5)

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
[active(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
[and(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
[__(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 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(__(X,nil)) mark(X) (2)
active(__(nil,X)) mark(X) (3)

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
[active(x1)] =
1 0 0
0 1 0
1 1 0
· x1 +
0 0 0
0 0 0
0 0 0
[nil] =
0 0 0
0 0 0
0 0 0
[and(x1, x2)] =
1 0 0
1 0 0
0 0 0
· x1 +
1 1 0
0 1 0
0 0 0
· x2 +
1 0 0
0 0 0
1 0 0
[__(x1, x2)] =
1 0 0
1 0 0
0 0 0
· x1 +
1 0 0
0 0 0
0 1 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
[mark(x1)] =
1 0 0
0 1 0
1 1 0
· x1 +
0 0 0
0 0 0
0 0 0
all of the following rules can be deleted.
active(and(tt,X)) mark(X) (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
[active(x1)] =
1 0 0
0 1 1
0 0 0
· x1 +
0 0 0
0 0 0
1 0 0
[nil] =
0 0 0
0 0 0
0 0 0
[and(x1, x2)] =
1 0 0
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
[__(x1, x2)] =
1 0 0
1 0 0
0 0 0
· x1 +
1 0 0
1 0 0
0 0 0
· x2 +
1 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
[mark(x1)] =
1 0 0
0 1 0
0 0 1
· x1 +
0 0 0
0 0 0
1 0 0
all of the following rules can be deleted.
and(X1,mark(X2)) and(X1,X2) (16)
and(X1,active(X2)) and(X1,X2) (18)

1.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
[active(x1)] =
1 1 0
0 0 0
0 0 1
· x1 +
0 0 0
0 0 0
0 0 0
[nil] =
0 0 0
0 0 0
0 0 0
[and(x1, x2)] =
1 1 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
[__(x1, x2)] =
1 1 0
0 0 1
1 1 0
· x1 +
1 1 0
0 0 0
0 0 1
· x2 +
1 0 0
0 0 0
1 0 0
[isNePal(x1)] =
1 1 0
0 0 0
0 0 1
· x1 +
0 0 0
0 0 0
1 0 0
[mark(x1)] =
1 1 0
0 0 0
0 0 1
· x1 +
0 0 0
0 0 0
0 0 0
all of the following rules can be deleted.
active(__(__(X,Y),Z)) mark(__(X,__(Y,Z))) (1)

1.1.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
1 0 0
1 0 0
[active(x1)] =
1 1 0
0 0 0
0 1 1
· x1 +
0 0 0
0 0 0
0 0 0
[nil] =
0 0 0
1 0 0
1 0 0
[and(x1, x2)] =
1 0 1
0 0 0
1 0 1
· x1 +
1 0 0
1 0 0
1 0 0
· x2 +
0 0 0
0 0 0
1 0 0
[__(x1, x2)] =
1 0 1
0 0 0
1 0 1
· x1 +
1 0 0
0 0 0
0 0 1
· x2 +
1 0 0
0 0 0
1 0 0
[isNePal(x1)] =
1 0 1
0 0 0
1 0 1
· x1 +
0 0 0
0 0 0
1 0 0
[mark(x1)] =
1 0 1
0 0 0
1 0 1
· x1 +
0 0 0
0 0 0
1 0 0
all of the following rules can be deleted.
__(mark(X1),X2) __(X1,X2) (11)
and(mark(X1),X2) and(X1,X2) (15)
isNePal(mark(X)) isNePal(X) (19)

1.1.1.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
1 0 0
0 0 0
[active(x1)] =
1 0 0
0 1 0
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[nil] =
1 0 0
1 0 0
0 0 0
[and(x1, x2)] =
1 1 0
1 1 0
0 0 0
· x1 +
1 0 0
0 1 1
0 0 0
· x2 +
1 0 0
1 0 0
0 0 0
[__(x1, x2)] =
1 1 0
1 1 0
1 1 0
· x1 +
1 0 0
0 1 0
0 1 0
· x2 +
1 0 0
1 0 0
0 0 0
[isNePal(x1)] =
1 0 0
0 1 0
1 0 0
· x1 +
1 0 0
1 0 0
0 0 0
[mark(x1)] =
1 1 0
1 1 0
0 0 0
· x1 +
0 0 0
1 0 0
0 0 0
all of the following rules can be deleted.
mark(nil) active(nil) (7)
mark(tt) active(tt) (9)
mark(isNePal(X)) active(isNePal(mark(X))) (10)

1.1.1.1.1.1.1.1 Rule Removal

Using the linear polynomial interpretation over (3 x 3)-matrices with strict dimension 1 over the naturals
[active(x1)] =
1 1 1
0 0 0
0 1 0
· x1 +
0 0 0
1 0 0
0 0 0
[and(x1, x2)] =
1 0 1
0 0 0
0 0 0
· x1 +
1 0 0
0 0 0
0 0 0
· x2 +
0 0 0
0 0 0
1 0 0
[__(x1, x2)] =
1 0 1
0 0 0
0 0 0
· x1 +
1 0 1
0 0 0
0 0 0
· x2 +
0 0 0
0 0 0
1 0 0
[isNePal(x1)] =
1 1 0
0 0 0
0 0 0
· x1 +
1 0 0
0 0 0
0 0 0
[mark(x1)] =
1 0 1
1 0 1
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
all of the following rules can be deleted.
isNePal(active(X)) isNePal(X) (20)

1.1.1.1.1.1.1.1.1 Rule Removal

Using the linear polynomial interpretation over (3 x 3)-matrices with strict dimension 1 over the naturals
[active(x1)] =
1 0 0
0 0 1
0 1 0
· x1 +
0 0 0
0 0 0
0 0 0
[and(x1, x2)] =
1 0 0
0 0 0
0 1 1
· x1 +
1 0 0
0 0 0
1 0 0
· x2 +
0 0 0
0 0 0
0 0 0
[__(x1, x2)] =
1 1 1
0 0 0
1 1 1
· x1 +
1 1 1
0 0 0
1 1 1
· x2 +
1 0 0
1 0 0
1 0 0
[mark(x1)] =
1 1 1
1 0 1
0 1 0
· x1 +
0 0 0
1 0 0
0 0 0
all of the following rules can be deleted.
__(X1,mark(X2)) __(X1,X2) (12)

1.1.1.1.1.1.1.1.1.1 Rule Removal

Using the linear polynomial interpretation over (3 x 3)-matrices with strict dimension 1 over the naturals
[active(x1)] =
1 0 0
0 0 1
0 1 0
· x1 +
0 0 0
0 0 0
0 0 0
[and(x1, x2)] =
1 0 0
0 0 0
0 1 1
· x1 +
1 0 1
0 0 0
0 0 0
· x2 +
1 0 0
0 0 0
0 0 0
[__(x1, x2)] =
1 1 1
0 0 0
1 0 0
· x1 +
1 0 0
0 0 0
0 1 1
· x2 +
1 0 0
0 0 0
1 0 0
[mark(x1)] =
1 0 1
1 0 0
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
all of the following rules can be deleted.
mark(__(X1,X2)) active(__(mark(X1),mark(X2))) (6)

1.1.1.1.1.1.1.1.1.1.1 Dependency Pair Transformation

The following set of initial dependency pairs has been identified.
mark#(and(X1,X2)) mark#(X1) (21)
mark#(and(X1,X2)) and#(mark(X1),X2) (22)
__#(active(X1),X2) __#(X1,X2) (23)
__#(X1,active(X2)) __#(X1,X2) (24)
and#(active(X1),X2) and#(X1,X2) (25)

1.1.1.1.1.1.1.1.1.1.1.1 Dependency Graph Processor

The dependency pairs are split into 3 components.