Certification Problem

Input (TPDB TRS_Standard/Transformed_CSR_04/PALINDROME_nosorts_noand_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(U11(tt)) mark(U12(tt)) (4)
active(U12(tt)) mark(tt) (5)
active(isNePal(__(I,__(P,I)))) mark(U11(tt)) (6)
mark(__(X1,X2)) active(__(mark(X1),mark(X2))) (7)
mark(nil) active(nil) (8)
mark(U11(X)) active(U11(mark(X))) (9)
mark(tt) active(tt) (10)
mark(U12(X)) active(U12(mark(X))) (11)
mark(isNePal(X)) active(isNePal(mark(X))) (12)
__(mark(X1),X2) __(X1,X2) (13)
__(X1,mark(X2)) __(X1,X2) (14)
__(active(X1),X2) __(X1,X2) (15)
__(X1,active(X2)) __(X1,X2) (16)
U11(mark(X)) U11(X) (17)
U11(active(X)) U11(X) (18)
U12(mark(X)) U12(X) (19)
U12(active(X)) U12(X) (20)
isNePal(mark(X)) isNePal(X) (21)
isNePal(active(X)) isNePal(X) (22)

Property / Task

Prove or disprove termination.

Answer / Result

Yes.

Proof (by NaTT @ termCOMP 2023)

1 Dependency Pair Transformation

The following set of initial dependency pairs has been identified.
active#(isNePal(__(I,__(P,I)))) mark#(U11(tt)) (23)
active#(__(__(X,Y),Z)) __#(X,__(Y,Z)) (24)
U11#(active(X)) U11#(X) (25)
mark#(U11(X)) U11#(mark(X)) (26)
mark#(isNePal(X)) mark#(X) (27)
mark#(U12(X)) U12#(mark(X)) (28)
mark#(isNePal(X)) active#(isNePal(mark(X))) (29)
U12#(mark(X)) U12#(X) (30)
U11#(mark(X)) U11#(X) (31)
mark#(isNePal(X)) isNePal#(mark(X)) (32)
mark#(nil) active#(nil) (33)
__#(X1,mark(X2)) __#(X1,X2) (34)
active#(__(__(X,Y),Z)) __#(Y,Z) (35)
isNePal#(mark(X)) isNePal#(X) (36)
mark#(tt) active#(tt) (37)
mark#(U11(X)) mark#(X) (38)
mark#(U12(X)) mark#(X) (39)
active#(U11(tt)) mark#(U12(tt)) (40)
mark#(U11(X)) active#(U11(mark(X))) (41)
active#(__(__(X,Y),Z)) mark#(__(X,__(Y,Z))) (42)
isNePal#(active(X)) isNePal#(X) (43)
active#(U11(tt)) U12#(tt) (44)
active#(__(nil,X)) mark#(X) (45)
mark#(__(X1,X2)) __#(mark(X1),mark(X2)) (46)
__#(active(X1),X2) __#(X1,X2) (47)
mark#(__(X1,X2)) mark#(X2) (48)
__#(X1,active(X2)) __#(X1,X2) (49)
active#(U12(tt)) mark#(tt) (50)
mark#(__(X1,X2)) active#(__(mark(X1),mark(X2))) (51)
active#(isNePal(__(I,__(P,I)))) U11#(tt) (52)
active#(__(X,nil)) mark#(X) (53)
mark#(U12(X)) active#(U12(mark(X))) (54)
U12#(active(X)) U12#(X) (55)
__#(mark(X1),X2) __#(X1,X2) (56)
mark#(__(X1,X2)) mark#(X1) (57)

1.1 Dependency Graph Processor

The dependency pairs are split into 5 components.