Certification Problem

Input (TPDB TRS_Innermost/Transformed_CSR_innermost_04/ExProp7_Luc06_GM)

The rewrite relation of the following TRS is considered.

a__f(0) cons(0,f(s(0))) (1)
a__f(s(0)) a__f(a__p(s(0))) (2)
a__p(s(X)) mark(X) (3)
mark(f(X)) a__f(mark(X)) (4)
mark(p(X)) a__p(mark(X)) (5)
mark(0) 0 (6)
mark(cons(X1,X2)) cons(mark(X1),X2) (7)
mark(s(X)) s(mark(X)) (8)
a__f(X) f(X) (9)
a__p(X) p(X) (10)
The evaluation strategy is innermost.

Property / Task

Prove or disprove termination.

Answer / Result

Yes.

Proof (by AProVE @ termCOMP 2023)

1 Rule Removal

Using the linear polynomial interpretation over the naturals
[a__f(x1)] = 2 + 2 · x1
[0] = 0
[cons(x1, x2)] = 2 · x1 + 1 · x2
[f(x1)] = 2 + 2 · x1
[s(x1)] = 2 · x1
[a__p(x1)] = 2 · x1
[mark(x1)] = 2 · x1
[p(x1)] = 2 · x1
all of the following rules can be deleted.
mark(f(X)) a__f(mark(X)) (4)

1.1 Rule Removal

Using the linear polynomial interpretation over the naturals
[a__f(x1)] = 1 + 2 · x1
[0] = 0
[cons(x1, x2)] = 1 · x1 + 1 · x2
[f(x1)] = 1 · x1
[s(x1)] = 2 · x1
[a__p(x1)] = 2 · x1
[mark(x1)] = 1 · x1
[p(x1)] = 2 · x1
all of the following rules can be deleted.
a__f(0) cons(0,f(s(0))) (1)
a__f(X) f(X) (9)

1.1.1 Rule Removal

Using the linear polynomial interpretation over the naturals
[a__f(x1)] = 2 · x1
[s(x1)] = 2 · x1
[0] = 0
[a__p(x1)] = 2 · x1
[mark(x1)] = 2 · x1
[p(x1)] = 2 · x1
[cons(x1, x2)] = 2 + 1 · x1 + 2 · x2
all of the following rules can be deleted.
mark(cons(X1,X2)) cons(mark(X1),X2) (7)

1.1.1.1 Rule Removal

Using the linear polynomial interpretation over the naturals
[a__f(x1)] = 2 · x1
[s(x1)] = 2 · x1
[0] = 2
[a__p(x1)] = 1 · x1
[mark(x1)] = 2 · x1
[p(x1)] = 1 · x1
all of the following rules can be deleted.
mark(0) 0 (6)

1.1.1.1.1 Rule Removal

Using the linear polynomial interpretation over the naturals
[a__f(x1)] = 1 · x1
[s(x1)] = 1 + 2 · x1
[0] = 0
[a__p(x1)] = 1 · x1
[mark(x1)] = 2 · x1
[p(x1)] = 1 · x1
all of the following rules can be deleted.
a__p(s(X)) mark(X) (3)
mark(s(X)) s(mark(X)) (8)

1.1.1.1.1.1 Dependency Pair Transformation

The following set of initial dependency pairs has been identified.
a__f#(s(0)) a__f#(a__p(s(0))) (11)
a__f#(s(0)) a__p#(s(0)) (12)
mark#(p(X)) a__p#(mark(X)) (13)
mark#(p(X)) mark#(X) (14)

1.1.1.1.1.1.1 Dependency Graph Processor

The dependency pairs are split into 1 component.