Certification Problem

Input (TPDB TRS_Standard/Transformed_CSR_04/Ex5_DLMMU04_GM)

The rewrite relation of the following TRS is considered.

a__pairNs cons(0,incr(oddNs)) (1)
a__oddNs a__incr(a__pairNs) (2)
a__incr(cons(X,XS)) cons(s(mark(X)),incr(XS)) (3)
a__take(0,XS) nil (4)
a__take(s(N),cons(X,XS)) cons(mark(X),take(N,XS)) (5)
a__zip(nil,XS) nil (6)
a__zip(X,nil) nil (7)
a__zip(cons(X,XS),cons(Y,YS)) cons(pair(mark(X),mark(Y)),zip(XS,YS)) (8)
a__tail(cons(X,XS)) mark(XS) (9)
a__repItems(nil) nil (10)
a__repItems(cons(X,XS)) cons(mark(X),cons(X,repItems(XS))) (11)
mark(pairNs) a__pairNs (12)
mark(incr(X)) a__incr(mark(X)) (13)
mark(oddNs) a__oddNs (14)
mark(take(X1,X2)) a__take(mark(X1),mark(X2)) (15)
mark(zip(X1,X2)) a__zip(mark(X1),mark(X2)) (16)
mark(tail(X)) a__tail(mark(X)) (17)
mark(repItems(X)) a__repItems(mark(X)) (18)
mark(cons(X1,X2)) cons(mark(X1),X2) (19)
mark(0) 0 (20)
mark(s(X)) s(mark(X)) (21)
mark(nil) nil (22)
mark(pair(X1,X2)) pair(mark(X1),mark(X2)) (23)
a__pairNs pairNs (24)
a__incr(X) incr(X) (25)
a__oddNs oddNs (26)
a__take(X1,X2) take(X1,X2) (27)
a__zip(X1,X2) zip(X1,X2) (28)
a__tail(X) tail(X) (29)
a__repItems(X) repItems(X) (30)

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.
a__oddNs# a__pairNs# (31)
a__repItems#(cons(X,XS)) mark#(X) (32)
mark#(tail(X)) mark#(X) (33)
mark#(pairNs) a__pairNs# (34)
a__take#(s(N),cons(X,XS)) mark#(X) (35)
mark#(take(X1,X2)) mark#(X2) (36)
mark#(take(X1,X2)) mark#(X1) (37)
mark#(tail(X)) a__tail#(mark(X)) (38)
mark#(cons(X1,X2)) mark#(X1) (39)
mark#(repItems(X)) a__repItems#(mark(X)) (40)
a__zip#(cons(X,XS),cons(Y,YS)) mark#(X) (41)
mark#(pair(X1,X2)) mark#(X1) (42)
mark#(oddNs) a__oddNs# (43)
a__tail#(cons(X,XS)) mark#(XS) (44)
mark#(take(X1,X2)) a__take#(mark(X1),mark(X2)) (45)
mark#(zip(X1,X2)) mark#(X1) (46)
a__incr#(cons(X,XS)) mark#(X) (47)
mark#(repItems(X)) mark#(X) (48)
a__zip#(cons(X,XS),cons(Y,YS)) mark#(Y) (49)
mark#(zip(X1,X2)) a__zip#(mark(X1),mark(X2)) (50)
mark#(incr(X)) a__incr#(mark(X)) (51)
a__oddNs# a__incr#(a__pairNs) (52)
mark#(pair(X1,X2)) mark#(X2) (53)
mark#(s(X)) mark#(X) (54)
mark#(incr(X)) mark#(X) (55)
mark#(zip(X1,X2)) mark#(X2) (56)

1.1 Dependency Graph Processor

The dependency pairs are split into 1 component.