Certification Problem

Input (TPDB TRS_Standard/Transformed_CSR_04/Ex4_7_56_Bor03_GM)

The rewrite relation of the following TRS is considered.

a__from(X) cons(mark(X),from(s(X))) (1)
a__after(0,XS) mark(XS) (2)
a__after(s(N),cons(X,XS)) a__after(mark(N),mark(XS)) (3)
mark(from(X)) a__from(mark(X)) (4)
mark(after(X1,X2)) a__after(mark(X1),mark(X2)) (5)
mark(cons(X1,X2)) cons(mark(X1),X2) (6)
mark(s(X)) s(mark(X)) (7)
mark(0) 0 (8)
a__from(X) from(X) (9)
a__after(X1,X2) after(X1,X2) (10)

Property / Task

Prove or disprove termination.

Answer / Result

Yes.

Proof (by ttt2 @ termCOMP 2023)

1 Dependency Pair Transformation

The following set of initial dependency pairs has been identified.
a__from#(X) mark#(X) (11)
a__after#(0,XS) mark#(XS) (12)
a__after#(s(N),cons(X,XS)) mark#(XS) (13)
a__after#(s(N),cons(X,XS)) mark#(N) (14)
a__after#(s(N),cons(X,XS)) a__after#(mark(N),mark(XS)) (15)
mark#(from(X)) mark#(X) (16)
mark#(from(X)) a__from#(mark(X)) (17)
mark#(after(X1,X2)) mark#(X2) (18)
mark#(after(X1,X2)) mark#(X1) (19)
mark#(after(X1,X2)) a__after#(mark(X1),mark(X2)) (20)
mark#(cons(X1,X2)) mark#(X1) (21)
mark#(s(X)) mark#(X) (22)

1.1 Reduction Pair Processor with Usable Rules

Using the linear polynomial interpretation over the arctic semiring over the integers
[cons(x1, x2)] = 0 · x1 + 0 · x2 + 3
[a__from#(x1)] = 0 · x1 + 3
[mark(x1)] = 0 · x1 + 0
[from(x1)] = 0 · x1 + 3
[0] = 0
[a__after#(x1, x2)] = 7 · x1 + 0 · x2 + 0
[a__from(x1)] = 0 · x1 + 3
[after(x1, x2)] = 7 · x1 + 0 · x2 + 7
[mark#(x1)] = 0 · x1 + -∞
[a__after(x1, x2)] = 7 · x1 + 0 · x2 + 7
[s(x1)] = 0 · x1 + 0
together with the usable rules
a__from(X) cons(mark(X),from(s(X))) (1)
a__after(0,XS) mark(XS) (2)
a__after(s(N),cons(X,XS)) a__after(mark(N),mark(XS)) (3)
mark(from(X)) a__from(mark(X)) (4)
mark(after(X1,X2)) a__after(mark(X1),mark(X2)) (5)
mark(cons(X1,X2)) cons(mark(X1),X2) (6)
mark(s(X)) s(mark(X)) (7)
mark(0) 0 (8)
a__from(X) from(X) (9)
a__after(X1,X2) after(X1,X2) (10)
(w.r.t. the implicit argument filter of the reduction pair), the pairs
a__after#(s(N),cons(X,XS)) mark#(N) (14)
mark#(after(X1,X2)) mark#(X1) (19)
could be deleted.

1.1.1 Reduction Pair Processor with Usable Rules

Using the linear polynomial interpretation over the arctic semiring over the integers
[cons(x1, x2)] = 0 · x1 + 0 · x2 + 0
[a__from#(x1)] = 1 · x1 + 0
[mark(x1)] = 0 · x1 + 0
[from(x1)] = 1 · x1 + 1
[0] = 0
[a__after#(x1, x2)] = -∞ · x1 + 0 · x2 + -∞
[a__from(x1)] = 1 · x1 + 1
[after(x1, x2)] = 0 · x1 + 0 · x2 + 0
[mark#(x1)] = 0 · x1 + -∞
[a__after(x1, x2)] = 0 · x1 + 0 · x2 + 0
[s(x1)] = 0 · x1 + -∞
together with the usable rules
a__from(X) cons(mark(X),from(s(X))) (1)
a__after(0,XS) mark(XS) (2)
a__after(s(N),cons(X,XS)) a__after(mark(N),mark(XS)) (3)
mark(from(X)) a__from(mark(X)) (4)
mark(after(X1,X2)) a__after(mark(X1),mark(X2)) (5)
mark(cons(X1,X2)) cons(mark(X1),X2) (6)
mark(s(X)) s(mark(X)) (7)
mark(0) 0 (8)
a__from(X) from(X) (9)
a__after(X1,X2) after(X1,X2) (10)
(w.r.t. the implicit argument filter of the reduction pair), the pairs
a__from#(X) mark#(X) (11)
mark#(from(X)) mark#(X) (16)
could be deleted.

1.1.1.1 Dependency Graph Processor

The dependency pairs are split into 1 component.