Certification Problem

Input (TPDB TRS_Standard/Transformed_CSR_04/ExAppendixB_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,Z)) a__2ndspos(s(mark(N)),cons2(X,mark(Z))) (3)
a__2ndspos(s(N),cons2(X,cons(Y,Z))) rcons(posrecip(mark(Y)),a__2ndsneg(mark(N),mark(Z))) (4)
a__2ndsneg(0,Z) rnil (5)
a__2ndsneg(s(N),cons(X,Z)) a__2ndsneg(s(mark(N)),cons2(X,mark(Z))) (6)
a__2ndsneg(s(N),cons2(X,cons(Y,Z))) rcons(negrecip(mark(Y)),a__2ndspos(mark(N),mark(Z))) (7)
a__pi(X) a__2ndspos(mark(X),a__from(0)) (8)
a__plus(0,Y) mark(Y) (9)
a__plus(s(X),Y) s(a__plus(mark(X),mark(Y))) (10)
a__times(0,Y) 0 (11)
a__times(s(X),Y) a__plus(mark(Y),a__times(mark(X),mark(Y))) (12)
a__square(X) a__times(mark(X),mark(X)) (13)
mark(from(X)) a__from(mark(X)) (14)
mark(2ndspos(X1,X2)) a__2ndspos(mark(X1),mark(X2)) (15)
mark(2ndsneg(X1,X2)) a__2ndsneg(mark(X1),mark(X2)) (16)
mark(pi(X)) a__pi(mark(X)) (17)
mark(plus(X1,X2)) a__plus(mark(X1),mark(X2)) (18)
mark(times(X1,X2)) a__times(mark(X1),mark(X2)) (19)
mark(square(X)) a__square(mark(X)) (20)
mark(0) 0 (21)
mark(s(X)) s(mark(X)) (22)
mark(posrecip(X)) posrecip(mark(X)) (23)
mark(negrecip(X)) negrecip(mark(X)) (24)
mark(nil) nil (25)
mark(cons(X1,X2)) cons(mark(X1),X2) (26)
mark(cons2(X1,X2)) cons2(X1,mark(X2)) (27)
mark(rnil) rnil (28)
mark(rcons(X1,X2)) rcons(mark(X1),mark(X2)) (29)
a__from(X) from(X) (30)
a__2ndspos(X1,X2) 2ndspos(X1,X2) (31)
a__2ndsneg(X1,X2) 2ndsneg(X1,X2) (32)
a__pi(X) pi(X) (33)
a__plus(X1,X2) plus(X1,X2) (34)
a__times(X1,X2) times(X1,X2) (35)
a__square(X) square(X) (36)

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

1.1 Dependency Graph Processor

The dependency pairs are split into 1 component.