Certification Problem

Input (TPDB TRS_Innermost/Transformed_CSR_innermost_04/Ex23_Luc06_GM)

The rewrite relation of the following TRS is considered.

a__f(f(a)) c(f(g(f(a)))) (1)
mark(f(X)) a__f(mark(X)) (2)
mark(a) a (3)
mark(c(X)) c(X) (4)
mark(g(X)) g(mark(X)) (5)
a__f(X) f(X) (6)
The evaluation strategy is innermost.

Property / Task

Prove or disprove termination.

Answer / Result

Yes.

Proof (by AProVE @ termCOMP 2023)

1 Constant to Unary

Every constant is turned into a unary function symbol to obtain the TRS
a__f(f(a'(x))) c(f(g(f(a'(x))))) (7)
mark(f(X)) a__f(mark(X)) (2)
mark(a'(x)) a'(x) (8)
mark(c(X)) c(X) (4)
mark(g(X)) g(mark(X)) (5)
a__f(X) f(X) (6)

1.1 String Reversal

Since only unary symbols occur, one can reverse all terms and obtains the TRS
a'(f(a__f(x))) a'(f(g(f(c(x))))) (9)
f(mark(X)) mark(a__f(X)) (10)
a'(mark(x)) a'(x) (11)
c(mark(X)) c(X) (12)
g(mark(X)) mark(g(X)) (13)
a__f(X) f(X) (6)

1.1.1 Rule Removal

Using the linear polynomial interpretation over the naturals
[a'(x1)] = 1 · x1
[f(x1)] = 1 · x1
[a__f(x1)] = 1 · x1
[g(x1)] = 1 · x1
[c(x1)] = 1 · x1
[mark(x1)] = 1 · x1 + 1
all of the following rules can be deleted.
a'(mark(x)) a'(x) (11)
c(mark(X)) c(X) (12)

1.1.1.1 Dependency Pair Transformation

The following set of initial dependency pairs has been identified.
a'#(f(a__f(x))) a'#(f(g(f(c(x))))) (14)
a'#(f(a__f(x))) f#(g(f(c(x)))) (15)
a'#(f(a__f(x))) g#(f(c(x))) (16)
a'#(f(a__f(x))) f#(c(x)) (17)
f#(mark(X)) a__f#(X) (18)
g#(mark(X)) g#(X) (19)
a__f#(X) f#(X) (20)

1.1.1.1.1 Dependency Graph Processor

The dependency pairs are split into 2 components.