Certification Problem

Input (TPDB TRS_Standard/Transformed_CSR_04/Ex26_Luc03b_FR)

The rewrite relation of the following TRS is considered.

terms(N) cons(recip(sqr(N)),n__terms(n__s(N))) (1)
sqr(0) 0 (2)
sqr(s(X)) s(n__add(n__sqr(activate(X)),n__dbl(activate(X)))) (3)
dbl(0) 0 (4)
dbl(s(X)) s(n__s(n__dbl(activate(X)))) (5)
add(0,X) X (6)
add(s(X),Y) s(n__add(activate(X),Y)) (7)
first(0,X) nil (8)
first(s(X),cons(Y,Z)) cons(Y,n__first(activate(X),activate(Z))) (9)
terms(X) n__terms(X) (10)
s(X) n__s(X) (11)
add(X1,X2) n__add(X1,X2) (12)
sqr(X) n__sqr(X) (13)
dbl(X) n__dbl(X) (14)
first(X1,X2) n__first(X1,X2) (15)
activate(n__terms(X)) terms(activate(X)) (16)
activate(n__s(X)) s(X) (17)
activate(n__add(X1,X2)) add(activate(X1),activate(X2)) (18)
activate(n__sqr(X)) sqr(activate(X)) (19)
activate(n__dbl(X)) dbl(activate(X)) (20)
activate(n__first(X1,X2)) first(activate(X1),activate(X2)) (21)
activate(X) X (22)

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.
first#(s(X),cons(Y,Z)) activate#(Z) (23)
add#(s(X),Y) activate#(X) (24)
activate#(n__first(X1,X2)) activate#(X1) (25)
activate#(n__s(X)) s#(X) (26)
activate#(n__sqr(X)) activate#(X) (27)
activate#(n__add(X1,X2)) activate#(X2) (28)
activate#(n__first(X1,X2)) first#(activate(X1),activate(X2)) (29)
activate#(n__first(X1,X2)) activate#(X2) (30)
terms#(N) sqr#(N) (31)
dbl#(s(X)) s#(n__s(n__dbl(activate(X)))) (32)
activate#(n__sqr(X)) sqr#(activate(X)) (33)
add#(s(X),Y) s#(n__add(activate(X),Y)) (34)
activate#(n__add(X1,X2)) activate#(X1) (35)
sqr#(s(X)) s#(n__add(n__sqr(activate(X)),n__dbl(activate(X)))) (36)
sqr#(s(X)) activate#(X) (37)
activate#(n__add(X1,X2)) add#(activate(X1),activate(X2)) (38)
activate#(n__terms(X)) activate#(X) (39)
activate#(n__dbl(X)) dbl#(activate(X)) (40)
first#(s(X),cons(Y,Z)) activate#(X) (41)
dbl#(s(X)) activate#(X) (42)
activate#(n__terms(X)) terms#(activate(X)) (43)
activate#(n__dbl(X)) activate#(X) (44)
sqr#(s(X)) activate#(X) (37)

1.1 Dependency Graph Processor

The dependency pairs are split into 1 component.