Certification Problem

Input (TPDB TRS_Standard/Transformed_CSR_04/PALINDROME_complete_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,V) U12(isNeList(activate(V))) (4)
U12(tt) tt (5)
U21(tt,V1,V2) U22(isList(activate(V1)),activate(V2)) (6)
U22(tt,V2) U23(isList(activate(V2))) (7)
U23(tt) tt (8)
U31(tt,V) U32(isQid(activate(V))) (9)
U32(tt) tt (10)
U41(tt,V1,V2) U42(isList(activate(V1)),activate(V2)) (11)
U42(tt,V2) U43(isNeList(activate(V2))) (12)
U43(tt) tt (13)
U51(tt,V1,V2) U52(isNeList(activate(V1)),activate(V2)) (14)
U52(tt,V2) U53(isList(activate(V2))) (15)
U53(tt) tt (16)
U61(tt,V) U62(isQid(activate(V))) (17)
U62(tt) tt (18)
U71(tt,V) U72(isNePal(activate(V))) (19)
U72(tt) tt (20)
and(tt,X) activate(X) (21)
isList(V) U11(isPalListKind(activate(V)),activate(V)) (22)
isList(n__nil) tt (23)
isList(n____(V1,V2)) U21(and(isPalListKind(activate(V1)),n__isPalListKind(activate(V2))),activate(V1),activate(V2)) (24)
isNeList(V) U31(isPalListKind(activate(V)),activate(V)) (25)
isNeList(n____(V1,V2)) U41(and(isPalListKind(activate(V1)),n__isPalListKind(activate(V2))),activate(V1),activate(V2)) (26)
isNeList(n____(V1,V2)) U51(and(isPalListKind(activate(V1)),n__isPalListKind(activate(V2))),activate(V1),activate(V2)) (27)
isNePal(V) U61(isPalListKind(activate(V)),activate(V)) (28)
isNePal(n____(I,n____(P,I))) and(and(isQid(activate(I)),n__isPalListKind(activate(I))),n__and(n__isPal(activate(P)),n__isPalListKind(activate(P)))) (29)
isPal(V) U71(isPalListKind(activate(V)),activate(V)) (30)
isPal(n__nil) tt (31)
isPalListKind(n__a) tt (32)
isPalListKind(n__e) tt (33)
isPalListKind(n__i) tt (34)
isPalListKind(n__nil) tt (35)
isPalListKind(n__o) tt (36)
isPalListKind(n__u) tt (37)
isPalListKind(n____(V1,V2)) and(isPalListKind(activate(V1)),n__isPalListKind(activate(V2))) (38)
isQid(n__a) tt (39)
isQid(n__e) tt (40)
isQid(n__i) tt (41)
isQid(n__o) tt (42)
isQid(n__u) tt (43)
nil n__nil (44)
__(X1,X2) n____(X1,X2) (45)
isPalListKind(X) n__isPalListKind(X) (46)
and(X1,X2) n__and(X1,X2) (47)
isPal(X) n__isPal(X) (48)
a n__a (49)
e n__e (50)
i n__i (51)
o n__o (52)
u n__u (53)
activate(n__nil) nil (54)
activate(n____(X1,X2)) __(activate(X1),activate(X2)) (55)
activate(n__isPalListKind(X)) isPalListKind(X) (56)
activate(n__and(X1,X2)) and(activate(X1),X2) (57)
activate(n__isPal(X)) isPal(X) (58)
activate(n__a) a (59)
activate(n__e) e (60)
activate(n__i) i (61)
activate(n__o) o (62)
activate(n__u) u (63)
activate(X) X (64)

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.
isNePal#(n____(I,n____(P,I))) and#(isQid(activate(I)),n__isPalListKind(activate(I))) (65)
isNeList#(n____(V1,V2)) activate#(V1) (66)
U51#(tt,V1,V2) isNeList#(activate(V1)) (67)
activate#(n__and(X1,X2)) and#(activate(X1),X2) (68)
isList#(n____(V1,V2)) activate#(V2) (69)
isNeList#(n____(V1,V2)) isPalListKind#(activate(V1)) (70)
isNeList#(n____(V1,V2)) U51#(and(isPalListKind(activate(V1)),n__isPalListKind(activate(V2))),activate(V1),activate(V2)) (71)
activate#(n__o) o# (72)
U51#(tt,V1,V2) U52#(isNeList(activate(V1)),activate(V2)) (73)
U11#(tt,V) U12#(isNeList(activate(V))) (74)
activate#(n__isPalListKind(X)) isPalListKind#(X) (75)
isList#(n____(V1,V2)) activate#(V2) (69)
U11#(tt,V) activate#(V) (76)
activate#(n__nil) nil# (77)
activate#(n__e) e# (78)
isPal#(V) U71#(isPalListKind(activate(V)),activate(V)) (79)
isNeList#(V) activate#(V) (80)
isNeList#(n____(V1,V2)) activate#(V1) (66)
isPal#(V) isPalListKind#(activate(V)) (81)
U61#(tt,V) isQid#(activate(V)) (82)
U61#(tt,V) U62#(isQid(activate(V))) (83)
isNePal#(V) U61#(isPalListKind(activate(V)),activate(V)) (84)
isNePal#(V) activate#(V) (85)
U42#(tt,V2) U43#(isNeList(activate(V2))) (86)
isNePal#(n____(I,n____(P,I))) activate#(P) (87)
isNePal#(V) isPalListKind#(activate(V)) (88)
U22#(tt,V2) U23#(isList(activate(V2))) (89)
isNeList#(n____(V1,V2)) and#(isPalListKind(activate(V1)),n__isPalListKind(activate(V2))) (90)
U42#(tt,V2) activate#(V2) (91)
__#(__(X,Y),Z) __#(Y,Z) (92)
isNeList#(V) U31#(isPalListKind(activate(V)),activate(V)) (93)
isPalListKind#(n____(V1,V2)) activate#(V2) (94)
activate#(n__i) i# (95)
isPalListKind#(n____(V1,V2)) isPalListKind#(activate(V1)) (96)
U22#(tt,V2) activate#(V2) (97)
U61#(tt,V) activate#(V) (98)
U52#(tt,V2) activate#(V2) (99)
U31#(tt,V) activate#(V) (100)
isNeList#(n____(V1,V2)) activate#(V2) (101)
U31#(tt,V) isQid#(activate(V)) (102)
isNeList#(n____(V1,V2)) U41#(and(isPalListKind(activate(V1)),n__isPalListKind(activate(V2))),activate(V1),activate(V2)) (103)
U71#(tt,V) isNePal#(activate(V)) (104)
U51#(tt,V1,V2) activate#(V2) (105)
U11#(tt,V) isNeList#(activate(V)) (106)
isNeList#(n____(V1,V2)) activate#(V1) (66)
isPalListKind#(n____(V1,V2)) activate#(V1) (107)
isList#(n____(V1,V2)) U21#(and(isPalListKind(activate(V1)),n__isPalListKind(activate(V2))),activate(V1),activate(V2)) (108)
U71#(tt,V) activate#(V) (109)
U22#(tt,V2) isList#(activate(V2)) (110)
__#(__(X,Y),Z) __#(X,__(Y,Z)) (111)
isNeList#(n____(V1,V2)) and#(isPalListKind(activate(V1)),n__isPalListKind(activate(V2))) (90)
U21#(tt,V1,V2) U22#(isList(activate(V1)),activate(V2)) (112)
isList#(V) U11#(isPalListKind(activate(V)),activate(V)) (113)
activate#(n__and(X1,X2)) activate#(X1) (114)
isNeList#(V) isPalListKind#(activate(V)) (115)
isPal#(V) activate#(V) (116)
U41#(tt,V1,V2) U42#(isList(activate(V1)),activate(V2)) (117)
activate#(n____(X1,X2)) activate#(X1) (118)
and#(tt,X) activate#(X) (119)
isNePal#(n____(I,n____(P,I))) activate#(P) (87)
U42#(tt,V2) isNeList#(activate(V2)) (120)
isPalListKind#(n____(V1,V2)) and#(isPalListKind(activate(V1)),n__isPalListKind(activate(V2))) (121)
U52#(tt,V2) U53#(isList(activate(V2))) (122)
U52#(tt,V2) isList#(activate(V2)) (123)
isList#(V) activate#(V) (124)
isList#(n____(V1,V2)) isPalListKind#(activate(V1)) (125)
isNeList#(n____(V1,V2)) activate#(V2) (101)
isNePal#(n____(I,n____(P,I))) activate#(I) (126)
U51#(tt,V1,V2) activate#(V1) (127)
isList#(V) activate#(V) (124)
U41#(tt,V1,V2) activate#(V2) (128)
U31#(tt,V) U32#(isQid(activate(V))) (129)
isList#(n____(V1,V2)) activate#(V1) (130)
isNeList#(n____(V1,V2)) activate#(V1) (66)
isNeList#(n____(V1,V2)) activate#(V2) (101)
U41#(tt,V1,V2) activate#(V1) (131)
isNePal#(V) activate#(V) (85)
U21#(tt,V1,V2) activate#(V2) (132)
isList#(n____(V1,V2)) and#(isPalListKind(activate(V1)),n__isPalListKind(activate(V2))) (133)
activate#(n____(X1,X2)) __#(activate(X1),activate(X2)) (134)
isList#(V) isPalListKind#(activate(V)) (135)
U41#(tt,V1,V2) isList#(activate(V1)) (136)
isNeList#(n____(V1,V2)) activate#(V2) (101)
isNeList#(n____(V1,V2)) isPalListKind#(activate(V1)) (70)
isList#(n____(V1,V2)) activate#(V1) (130)
activate#(n____(X1,X2)) activate#(X2) (137)
U21#(tt,V1,V2) activate#(V1) (138)
isNePal#(n____(I,n____(P,I))) isQid#(activate(I)) (139)
U71#(tt,V) U72#(isNePal(activate(V))) (140)
isNePal#(n____(I,n____(P,I))) and#(and(isQid(activate(I)),n__isPalListKind(activate(I))),n__and(n__isPal(activate(P)),n__isPalListKind(activate(P)))) (141)
isNeList#(V) activate#(V) (80)
activate#(n__isPal(X)) isPal#(X) (142)
U21#(tt,V1,V2) isList#(activate(V1)) (143)
isNePal#(n____(I,n____(P,I))) activate#(I) (126)
activate#(n__u) u# (144)
isPal#(V) activate#(V) (116)
activate#(n__a) a# (145)

1.1 Dependency Graph Processor

The dependency pairs are split into 3 components.