Certification Problem

Input (TPDB TRS_Standard/Transformed_CSR_04/PALINDROME_nokinds_Z)

The rewrite relation of the following TRS is considered.

__(__(X,Y),Z) __(X,__(Y,Z)) (1)
__(X,nil) X (2)
__(nil,X) X (3)
and(tt,X) activate(X) (4)
isList(V) isNeList(activate(V)) (5)
isList(n__nil) tt (6)
isList(n____(V1,V2)) and(isList(activate(V1)),n__isList(activate(V2))) (7)
isNeList(V) isQid(activate(V)) (8)
isNeList(n____(V1,V2)) and(isList(activate(V1)),n__isNeList(activate(V2))) (9)
isNeList(n____(V1,V2)) and(isNeList(activate(V1)),n__isList(activate(V2))) (10)
isNePal(V) isQid(activate(V)) (11)
isNePal(n____(I,__(P,I))) and(isQid(activate(I)),n__isPal(activate(P))) (12)
isPal(V) isNePal(activate(V)) (13)
isPal(n__nil) tt (14)
isQid(n__a) tt (15)
isQid(n__e) tt (16)
isQid(n__i) tt (17)
isQid(n__o) tt (18)
isQid(n__u) tt (19)
nil n__nil (20)
__(X1,X2) n____(X1,X2) (21)
isList(X) n__isList(X) (22)
isNeList(X) n__isNeList(X) (23)
isPal(X) n__isPal(X) (24)
a n__a (25)
e n__e (26)
i n__i (27)
o n__o (28)
u n__u (29)
activate(n__nil) nil (30)
activate(n____(X1,X2)) __(X1,X2) (31)
activate(n__isList(X)) isList(X) (32)
activate(n__isNeList(X)) isNeList(X) (33)
activate(n__isPal(X)) isPal(X) (34)
activate(n__a) a (35)
activate(n__e) e (36)
activate(n__i) i (37)
activate(n__o) o (38)
activate(n__u) u (39)
activate(X) X (40)

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.
activate#(n__i) i# (41)
isList#(V) activate#(V) (42)
isNeList#(V) isQid#(activate(V)) (43)
and#(tt,X) activate#(X) (44)
isNeList#(n____(V1,V2)) and#(isList(activate(V1)),n__isNeList(activate(V2))) (45)
isNePal#(n____(I,__(P,I))) isQid#(activate(I)) (46)
isNeList#(n____(V1,V2)) activate#(V2) (47)
isNePal#(V) activate#(V) (48)
isNeList#(n____(V1,V2)) isNeList#(activate(V1)) (49)
isNeList#(n____(V1,V2)) and#(isNeList(activate(V1)),n__isList(activate(V2))) (50)
isNePal#(n____(I,__(P,I))) and#(isQid(activate(I)),n__isPal(activate(P))) (51)
activate#(n__isList(X)) isList#(X) (52)
isNePal#(n____(I,__(P,I))) activate#(I) (53)
activate#(n__isPal(X)) isPal#(X) (54)
isNeList#(n____(V1,V2)) activate#(V1) (55)
isList#(n____(V1,V2)) activate#(V1) (56)
isNeList#(n____(V1,V2)) isList#(activate(V1)) (57)
isNePal#(V) isQid#(activate(V)) (58)
__#(__(X,Y),Z) __#(X,__(Y,Z)) (59)
isPal#(V) activate#(V) (60)
isList#(V) isNeList#(activate(V)) (61)
activate#(n__u) u# (62)
__#(__(X,Y),Z) __#(Y,Z) (63)
activate#(n__isNeList(X)) isNeList#(X) (64)
activate#(n__nil) nil# (65)
activate#(n__e) e# (66)
isList#(n____(V1,V2)) isList#(activate(V1)) (67)
isNeList#(n____(V1,V2)) activate#(V2) (47)
isNeList#(V) activate#(V) (68)
isList#(n____(V1,V2)) activate#(V2) (69)
activate#(n____(X1,X2)) __#(X1,X2) (70)
activate#(n__o) o# (71)
activate#(n__a) a# (72)
isNeList#(n____(V1,V2)) activate#(V1) (55)
isNePal#(n____(I,__(P,I))) activate#(P) (73)
isPal#(V) isNePal#(activate(V)) (74)
isList#(n____(V1,V2)) and#(isList(activate(V1)),n__isList(activate(V2))) (75)

1.1 Dependency Graph Processor

The dependency pairs are split into 2 components.