Certification Problem

Input (TPDB TRS_Standard/Transformed_CSR_04/Ex5_7_Luc97_Z)

The rewrite relation of the following TRS is considered.

dbl(0) 0 (1)
dbl(s(X)) s(n__s(n__dbl(activate(X)))) (2)
dbls(nil) nil (3)
dbls(cons(X,Y)) cons(n__dbl(activate(X)),n__dbls(activate(Y))) (4)
sel(0,cons(X,Y)) activate(X) (5)
sel(s(X),cons(Y,Z)) sel(activate(X),activate(Z)) (6)
indx(nil,X) nil (7)
indx(cons(X,Y),Z) cons(n__sel(activate(X),activate(Z)),n__indx(activate(Y),activate(Z))) (8)
from(X) cons(activate(X),n__from(n__s(activate(X)))) (9)
dbl1(0) 01 (10)
dbl1(s(X)) s1(s1(dbl1(activate(X)))) (11)
sel1(0,cons(X,Y)) activate(X) (12)
sel1(s(X),cons(Y,Z)) sel1(activate(X),activate(Z)) (13)
quote(0) 01 (14)
quote(s(X)) s1(quote(activate(X))) (15)
quote(dbl(X)) dbl1(X) (16)
quote(sel(X,Y)) sel1(X,Y) (17)
s(X) n__s(X) (18)
dbl(X) n__dbl(X) (19)
dbls(X) n__dbls(X) (20)
sel(X1,X2) n__sel(X1,X2) (21)
indx(X1,X2) n__indx(X1,X2) (22)
from(X) n__from(X) (23)
activate(n__s(X)) s(X) (24)
activate(n__dbl(X)) dbl(X) (25)
activate(n__dbls(X)) dbls(X) (26)
activate(n__sel(X1,X2)) sel(X1,X2) (27)
activate(n__indx(X1,X2)) indx(X1,X2) (28)
activate(n__from(X)) from(X) (29)
activate(X) 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.
dbl#(s(X)) activate#(X) (31)
dbls#(cons(X,Y)) activate#(X) (32)
sel#(s(X),cons(Y,Z)) activate#(Z) (33)
dbl1#(s(X)) activate#(X) (34)
sel1#(s(X),cons(Y,Z)) activate#(Z) (35)
from#(X) activate#(X) (36)
indx#(cons(X,Y),Z) activate#(Z) (37)
indx#(cons(X,Y),Z) activate#(X) (38)
dbl1#(s(X)) dbl1#(activate(X)) (39)
activate#(n__s(X)) s#(X) (40)
dbls#(cons(X,Y)) activate#(Y) (41)
indx#(cons(X,Y),Z) activate#(Y) (42)
quote#(sel(X,Y)) sel1#(X,Y) (43)
sel1#(s(X),cons(Y,Z)) sel1#(activate(X),activate(Z)) (44)
from#(X) activate#(X) (36)
sel#(s(X),cons(Y,Z)) activate#(X) (45)
quote#(s(X)) activate#(X) (46)
quote#(dbl(X)) dbl1#(X) (47)
quote#(s(X)) quote#(activate(X)) (48)
sel#(0,cons(X,Y)) activate#(X) (49)
activate#(n__sel(X1,X2)) sel#(X1,X2) (50)
indx#(cons(X,Y),Z) activate#(Z) (37)
activate#(n__dbls(X)) dbls#(X) (51)
activate#(n__dbl(X)) dbl#(X) (52)
activate#(n__from(X)) from#(X) (53)
dbl#(s(X)) s#(n__s(n__dbl(activate(X)))) (54)
sel1#(s(X),cons(Y,Z)) activate#(X) (55)
sel1#(0,cons(X,Y)) activate#(X) (56)
sel#(s(X),cons(Y,Z)) sel#(activate(X),activate(Z)) (57)
activate#(n__indx(X1,X2)) indx#(X1,X2) (58)

1.1 Dependency Graph Processor

The dependency pairs are split into 4 components.