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 AProVE @ termCOMP 2023)

1 Dependency Pair Transformation

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

1.1 Reduction Pair Processor

Using the matrix interpretations of dimension 1 with strict dimension 1 over the arctic semiring over the naturals
[a__from#(x1)] =
0
+
0
· x1
[mark#(x1)] =
0
+
0
· x1
[a__2ndspos#(x1, x2)] =
-∞
+
0
· x1 +
0
· x2
[s(x1)] =
0
+
0
· x1
[cons(x1, x2)] =
-∞
+
0
· x1 +
0
· x2
[mark(x1)] =
-∞
+
0
· x1
[cons2(x1, x2)] =
-∞
+
-∞
· x1 +
0
· x2
[a__2ndsneg#(x1, x2)] =
0
+
0
· x1 +
0
· x2
[a__pi#(x1)] =
0
+
0
· x1
[a__from(x1)] =
0
+
0
· x1
[0] =
0
[a__plus#(x1, x2)] =
0
+
0
· x1 +
0
· x2
[a__times#(x1, x2)] =
0
+
0
· x1 +
0
· x2
[a__times(x1, x2)] =
0
+
0
· x1 +
0
· x2
[a__square#(x1)] =
0
+
0
· x1
[from(x1)] =
0
+
0
· x1
[2ndspos(x1, x2)] =
-∞
+
0
· x1 +
0
· x2
[2ndsneg(x1, x2)] =
-∞
+
0
· x1 +
0
· x2
[pi(x1)] =
0
+
0
· x1
[plus(x1, x2)] =
-∞
+
0
· x1 +
0
· x2
[times(x1, x2)] =
0
+
0
· x1 +
0
· x2
[square(x1)] =
1
+
1
· x1
[posrecip(x1)] =
-∞
+
0
· x1
[negrecip(x1)] =
-∞
+
0
· x1
[rcons(x1, x2)] =
-∞
+
0
· x1 +
0
· x2
[a__2ndspos(x1, x2)] =
-∞
+
0
· x1 +
0
· x2
[a__2ndsneg(x1, x2)] =
-∞
+
0
· x1 +
0
· x2
[a__pi(x1)] =
0
+
0
· x1
[a__plus(x1, x2)] =
-∞
+
0
· x1 +
0
· x2
[a__square(x1)] =
1
+
1
· x1
[nil] =
0
[rnil] =
0
the pairs
mark#(square(X)) a__square#(mark(X)) (81)
mark#(square(X)) mark#(X) (82)
could be deleted.

1.1.1 Dependency Graph Processor

The dependency pairs are split into 1 component.