Certification Problem

Input (TPDB TRS_Standard/Transformed_CSR_04/Ex5_7_Luc97_GM)

The rewrite relation of the following TRS is considered.

a__dbl(0) 0 (1)
a__dbl(s(X)) s(s(dbl(X))) (2)
a__dbls(nil) nil (3)
a__dbls(cons(X,Y)) cons(dbl(X),dbls(Y)) (4)
a__sel(0,cons(X,Y)) mark(X) (5)
a__sel(s(X),cons(Y,Z)) a__sel(mark(X),mark(Z)) (6)
a__indx(nil,X) nil (7)
a__indx(cons(X,Y),Z) cons(sel(X,Z),indx(Y,Z)) (8)
a__from(X) cons(X,from(s(X))) (9)
a__dbl1(0) 01 (10)
a__dbl1(s(X)) s1(s1(a__dbl1(mark(X)))) (11)
a__sel1(0,cons(X,Y)) mark(X) (12)
a__sel1(s(X),cons(Y,Z)) a__sel1(mark(X),mark(Z)) (13)
a__quote(0) 01 (14)
a__quote(s(X)) s1(a__quote(mark(X))) (15)
a__quote(dbl(X)) a__dbl1(mark(X)) (16)
a__quote(sel(X,Y)) a__sel1(mark(X),mark(Y)) (17)
mark(dbl(X)) a__dbl(mark(X)) (18)
mark(dbls(X)) a__dbls(mark(X)) (19)
mark(sel(X1,X2)) a__sel(mark(X1),mark(X2)) (20)
mark(indx(X1,X2)) a__indx(mark(X1),X2) (21)
mark(from(X)) a__from(X) (22)
mark(dbl1(X)) a__dbl1(mark(X)) (23)
mark(sel1(X1,X2)) a__sel1(mark(X1),mark(X2)) (24)
mark(quote(X)) a__quote(mark(X)) (25)
mark(0) 0 (26)
mark(s(X)) s(X) (27)
mark(nil) nil (28)
mark(cons(X1,X2)) cons(X1,X2) (29)
mark(01) 01 (30)
mark(s1(X)) s1(mark(X)) (31)
a__dbl(X) dbl(X) (32)
a__dbls(X) dbls(X) (33)
a__sel(X1,X2) sel(X1,X2) (34)
a__indx(X1,X2) indx(X1,X2) (35)
a__from(X) from(X) (36)
a__dbl1(X) dbl1(X) (37)
a__sel1(X1,X2) sel1(X1,X2) (38)
a__quote(X) quote(X) (39)

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#(s(X),cons(Y,Z)) mark#(X) (40)
mark#(indx(X1,X2)) mark#(X1) (41)
mark#(dbl(X)) mark#(X) (42)
a__sel1#(s(X),cons(Y,Z)) mark#(Z) (43)
mark#(dbl1(X)) mark#(X) (44)
mark#(sel1(X1,X2)) a__sel1#(mark(X1),mark(X2)) (45)
mark#(sel1(X1,X2)) mark#(X2) (46)
a__quote#(sel(X,Y)) mark#(X) (47)
a__quote#(sel(X,Y)) a__sel1#(mark(X),mark(Y)) (48)
mark#(dbl1(X)) a__dbl1#(mark(X)) (49)
a__quote#(dbl(X)) mark#(X) (50)
a__sel1#(0,cons(X,Y)) mark#(X) (51)
a__quote#(dbl(X)) a__dbl1#(mark(X)) (52)
a__quote#(sel(X,Y)) mark#(Y) (53)
mark#(sel(X1,X2)) mark#(X2) (54)
a__dbl1#(s(X)) a__dbl1#(mark(X)) (55)
mark#(sel1(X1,X2)) mark#(X1) (56)
a__quote#(s(X)) mark#(X) (57)
a__sel1#(s(X),cons(Y,Z)) mark#(X) (58)
mark#(indx(X1,X2)) a__indx#(mark(X1),X2) (59)
mark#(from(X)) a__from#(X) (60)
mark#(dbl(X)) a__dbl#(mark(X)) (61)
mark#(dbls(X)) mark#(X) (62)
mark#(quote(X)) mark#(X) (63)
a__quote#(s(X)) a__quote#(mark(X)) (64)
mark#(sel(X1,X2)) mark#(X1) (65)
mark#(dbls(X)) a__dbls#(mark(X)) (66)
a__sel#(0,cons(X,Y)) mark#(X) (67)
mark#(quote(X)) a__quote#(mark(X)) (68)
a__sel#(s(X),cons(Y,Z)) mark#(Z) (69)
a__sel#(s(X),cons(Y,Z)) a__sel#(mark(X),mark(Z)) (70)
a__dbl1#(s(X)) mark#(X) (71)
mark#(s1(X)) mark#(X) (72)
a__sel1#(s(X),cons(Y,Z)) a__sel1#(mark(X),mark(Z)) (73)
mark#(sel(X1,X2)) a__sel#(mark(X1),mark(X2)) (74)

1.1 Dependency Graph Processor

The dependency pairs are split into 1 component.