Certification Problem

Input (TPDB TRS_Standard/Transformed_CSR_04/Ex1_2_AEL03_GM)

The rewrite relation of the following TRS is considered.

a__from(X) cons(mark(X),from(s(X))) (1)
a__2ndspos(0,Z) rnil (2)
a__2ndspos(s(N),cons(X,cons(Y,Z))) rcons(posrecip(mark(Y)),a__2ndsneg(mark(N),mark(Z))) (3)
a__2ndsneg(0,Z) rnil (4)
a__2ndsneg(s(N),cons(X,cons(Y,Z))) rcons(negrecip(mark(Y)),a__2ndspos(mark(N),mark(Z))) (5)
a__pi(X) a__2ndspos(mark(X),a__from(0)) (6)
a__plus(0,Y) mark(Y) (7)
a__plus(s(X),Y) s(a__plus(mark(X),mark(Y))) (8)
a__times(0,Y) 0 (9)
a__times(s(X),Y) a__plus(mark(Y),a__times(mark(X),mark(Y))) (10)
a__square(X) a__times(mark(X),mark(X)) (11)
mark(from(X)) a__from(mark(X)) (12)
mark(2ndspos(X1,X2)) a__2ndspos(mark(X1),mark(X2)) (13)
mark(2ndsneg(X1,X2)) a__2ndsneg(mark(X1),mark(X2)) (14)
mark(pi(X)) a__pi(mark(X)) (15)
mark(plus(X1,X2)) a__plus(mark(X1),mark(X2)) (16)
mark(times(X1,X2)) a__times(mark(X1),mark(X2)) (17)
mark(square(X)) a__square(mark(X)) (18)
mark(0) 0 (19)
mark(s(X)) s(mark(X)) (20)
mark(posrecip(X)) posrecip(mark(X)) (21)
mark(negrecip(X)) negrecip(mark(X)) (22)
mark(nil) nil (23)
mark(cons(X1,X2)) cons(mark(X1),X2) (24)
mark(rnil) rnil (25)
mark(rcons(X1,X2)) rcons(mark(X1),mark(X2)) (26)
a__from(X) from(X) (27)
a__2ndspos(X1,X2) 2ndspos(X1,X2) (28)
a__2ndsneg(X1,X2) 2ndsneg(X1,X2) (29)
a__pi(X) pi(X) (30)
a__plus(X1,X2) plus(X1,X2) (31)
a__times(X1,X2) times(X1,X2) (32)
a__square(X) square(X) (33)

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__pi#(X) mark#(X) (34)
a__plus#(s(X),Y) mark#(X) (35)
mark#(times(X1,X2)) mark#(X1) (36)
mark#(plus(X1,X2)) mark#(X1) (37)
mark#(pi(X)) mark#(X) (38)
a__plus#(s(X),Y) a__plus#(mark(X),mark(Y)) (39)
a__from#(X) mark#(X) (40)
a__2ndspos#(s(N),cons(X,cons(Y,Z))) mark#(Y) (41)
mark#(square(X)) a__square#(mark(X)) (42)
mark#(square(X)) mark#(X) (43)
a__2ndspos#(s(N),cons(X,cons(Y,Z))) a__2ndsneg#(mark(N),mark(Z)) (44)
mark#(2ndspos(X1,X2)) mark#(X2) (45)
a__2ndspos#(s(N),cons(X,cons(Y,Z))) mark#(Z) (46)
mark#(2ndsneg(X1,X2)) a__2ndsneg#(mark(X1),mark(X2)) (47)
a__square#(X) mark#(X) (48)
mark#(from(X)) a__from#(mark(X)) (49)
a__2ndsneg#(s(N),cons(X,cons(Y,Z))) a__2ndspos#(mark(N),mark(Z)) (50)
a__2ndsneg#(s(N),cons(X,cons(Y,Z))) mark#(Y) (51)
mark#(pi(X)) a__pi#(mark(X)) (52)
mark#(from(X)) mark#(X) (53)
mark#(rcons(X1,X2)) mark#(X1) (54)
mark#(2ndsneg(X1,X2)) mark#(X1) (55)
mark#(times(X1,X2)) mark#(X2) (56)
a__2ndsneg#(s(N),cons(X,cons(Y,Z))) mark#(N) (57)
a__times#(s(X),Y) a__times#(mark(X),mark(Y)) (58)
a__square#(X) a__times#(mark(X),mark(X)) (59)
a__2ndspos#(s(N),cons(X,cons(Y,Z))) mark#(N) (60)
mark#(cons(X1,X2)) mark#(X1) (61)
mark#(posrecip(X)) mark#(X) (62)
mark#(2ndspos(X1,X2)) mark#(X1) (63)
a__plus#(s(X),Y) mark#(Y) (64)
mark#(times(X1,X2)) a__times#(mark(X1),mark(X2)) (65)
a__times#(s(X),Y) mark#(Y) (66)
mark#(plus(X1,X2)) a__plus#(mark(X1),mark(X2)) (67)
mark#(negrecip(X)) mark#(X) (68)
a__plus#(0,Y) mark#(Y) (69)
mark#(rcons(X1,X2)) mark#(X2) (70)
a__times#(s(X),Y) mark#(Y) (66)
a__2ndsneg#(s(N),cons(X,cons(Y,Z))) mark#(Z) (71)
mark#(plus(X1,X2)) mark#(X2) (72)
a__times#(s(X),Y) mark#(X) (73)
mark#(s(X)) mark#(X) (74)
a__pi#(X) a__from#(0) (75)
a__pi#(X) a__2ndspos#(mark(X),a__from(0)) (76)
a__square#(X) mark#(X) (48)
mark#(2ndsneg(X1,X2)) mark#(X2) (77)
mark#(2ndspos(X1,X2)) a__2ndspos#(mark(X1),mark(X2)) (78)
a__times#(s(X),Y) a__plus#(mark(Y),a__times(mark(X),mark(Y))) (79)

1.1 Dependency Graph Processor

The dependency pairs are split into 1 component.