Certification Problem

Input (TPDB TRS_Standard/Transformed_CSR_04/Ex7_BLR02_GM)

The rewrite relation of the following TRS is considered.

a__from(X) cons(mark(X),from(s(X))) (1)
a__head(cons(X,XS)) mark(X) (2)
a__2nd(cons(X,XS)) a__head(mark(XS)) (3)
a__take(0,XS) nil (4)
a__take(s(N),cons(X,XS)) cons(mark(X),take(N,XS)) (5)
a__sel(0,cons(X,XS)) mark(X) (6)
a__sel(s(N),cons(X,XS)) a__sel(mark(N),mark(XS)) (7)
mark(from(X)) a__from(mark(X)) (8)
mark(head(X)) a__head(mark(X)) (9)
mark(2nd(X)) a__2nd(mark(X)) (10)
mark(take(X1,X2)) a__take(mark(X1),mark(X2)) (11)
mark(sel(X1,X2)) a__sel(mark(X1),mark(X2)) (12)
mark(cons(X1,X2)) cons(mark(X1),X2) (13)
mark(s(X)) s(mark(X)) (14)
mark(0) 0 (15)
mark(nil) nil (16)
a__from(X) from(X) (17)
a__head(X) head(X) (18)
a__2nd(X) 2nd(X) (19)
a__take(X1,X2) take(X1,X2) (20)
a__sel(X1,X2) sel(X1,X2) (21)

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__sel#(0,cons(X,XS)) mark#(X) (22)
mark#(take(X1,X2)) a__take#(mark(X1),mark(X2)) (23)
a__sel#(s(N),cons(X,XS)) a__sel#(mark(N),mark(XS)) (24)
mark#(sel(X1,X2)) a__sel#(mark(X1),mark(X2)) (25)
mark#(sel(X1,X2)) mark#(X2) (26)
mark#(from(X)) mark#(X) (27)
mark#(s(X)) mark#(X) (28)
a__sel#(s(N),cons(X,XS)) mark#(N) (29)
a__2nd#(cons(X,XS)) mark#(XS) (30)
mark#(take(X1,X2)) mark#(X1) (31)
mark#(sel(X1,X2)) mark#(X1) (32)
mark#(head(X)) mark#(X) (33)
mark#(from(X)) a__from#(mark(X)) (34)
mark#(2nd(X)) mark#(X) (35)
a__2nd#(cons(X,XS)) a__head#(mark(XS)) (36)
a__from#(X) mark#(X) (37)
mark#(2nd(X)) a__2nd#(mark(X)) (38)
mark#(cons(X1,X2)) mark#(X1) (39)
a__head#(cons(X,XS)) mark#(X) (40)
mark#(take(X1,X2)) mark#(X2) (41)
a__sel#(s(N),cons(X,XS)) mark#(XS) (42)
mark#(head(X)) a__head#(mark(X)) (43)
a__take#(s(N),cons(X,XS)) mark#(X) (44)

1.1 Dependency Graph Processor

The dependency pairs are split into 1 component.