Certification Problem

Input (TPDB TRS_Standard/AProVE_06/identity)

The rewrite relation of the following TRS is considered.

g(x,0) 0 (1)
g(d,s(x)) s(s(g(d,x))) (2)
g(h,s(0)) 0 (3)
g(h,s(s(x))) s(g(h,x)) (4)
double(x) g(d,x) (5)
half(x) g(h,x) (6)
f(s(x),y) f(half(s(x)),double(y)) (7)
f(s(0),y) y (8)
id(x) f(x,s(0)) (9)

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
[g(x1, x2)] = 1 · x1 + 1 · x2
[0] = 0
[d] = 0
[s(x1)] = 1 · x1
[h] = 0
[double(x1)] = 1 · x1
[half(x1)] = 1 · x1
[f(x1, x2)] = 2 · x1 + 2 · x2
[id(x1)] = 2 + 2 · x1
all of the following rules can be deleted.
id(x) f(x,s(0)) (9)

1.1 Rule Removal

Using the linear polynomial interpretation over the naturals
[g(x1, x2)] = 1 · x1 + 1 · x2
[0] = 0
[d] = 0
[s(x1)] = 1 · x1
[h] = 0
[double(x1)] = 1 · x1
[half(x1)] = 1 · x1
[f(x1, x2)] = 1 + 1 · x1 + 2 · x2
all of the following rules can be deleted.
f(s(0),y) y (8)

1.1.1 Switch to Innermost Termination

The TRS is overlay and locally confluent:

10

Hence, it suffices to show innermost termination in the following.

1.1.1.1 Dependency Pair Transformation

The following set of initial dependency pairs has been identified.
g#(d,s(x)) g#(d,x) (10)
g#(h,s(s(x))) g#(h,x) (11)
double#(x) g#(d,x) (12)
half#(x) g#(h,x) (13)
f#(s(x),y) f#(half(s(x)),double(y)) (14)
f#(s(x),y) half#(s(x)) (15)
f#(s(x),y) double#(y) (16)

1.1.1.1.1 Dependency Graph Processor

The dependency pairs are split into 3 components.