Certification Problem

Input (TPDB TRS_Standard/SK90/2.14)

The rewrite relation of the following TRS is considered.

double(0) 0 (1)
double(s(x)) s(s(double(x))) (2)
half(0) 0 (3)
half(s(0)) 0 (4)
half(s(s(x))) s(half(x)) (5)
-(x,0) x (6)
-(s(x),s(y)) -(x,y) (7)
if(0,y,z) y (8)
if(s(x),y,z) z (9)
half(double(x)) x (10)

Property / Task

Prove or disprove termination.

Answer / Result

Yes.

Proof (by ttt2 @ termCOMP 2023)

1 Rule Removal

Using the linear polynomial interpretation over (4 x 4)-matrices with strict dimension 1 over the naturals
[-(x1, x2)] =
1 0 1 1
1 1 1 1
0 0 1 1
0 0 1 1
· x1 +
1 0 0 0
0 0 0 0
1 0 1 1
0 0 0 0
· x2 +
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
[double(x1)] =
1 0 1 1
0 1 0 0
0 0 0 0
1 0 0 0
· x1 +
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
[half(x1)] =
1 1 0 1
0 1 0 0
1 0 0 0
1 0 0 0
· x1 +
1 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
[if(x1, x2, x3)] =
1 0 0 1
0 0 0 1
0 0 0 0
0 0 0 0
· x1 +
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
· x2 +
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
· x3 +
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
[0] =
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
[s(x1)] =
1 1 0 0
0 0 0 0
0 1 0 1
0 0 1 0
· x1 +
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
all of the following rules can be deleted.
half(0) 0 (3)
half(s(0)) 0 (4)
half(double(x)) x (10)

1.1 Rule Removal

Using the linear polynomial interpretation over (3 x 3)-matrices with strict dimension 1 over the naturals
[-(x1, x2)] =
1 0 0
1 1 0
1 1 1
· x1 +
1 0 0
0 0 0
0 0 0
· x2 +
1 0 0
0 0 0
0 0 0
[double(x1)] =
1 1 0
0 0 1
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[half(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[if(x1, x2, x3)] =
1 0 0
1 0 0
0 0 0
· x1 +
1 0 0
0 1 0
0 0 1
· x2 +
1 0 0
0 1 0
0 0 1
· x3 +
0 0 0
0 0 0
0 0 0
[0] =
0 0 0
0 0 0
0 0 0
[s(x1)] =
1 1 0
0 0 1
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
all of the following rules can be deleted.
-(x,0) x (6)

1.1.1 Rule Removal

Using the linear polynomial interpretation over (3 x 3)-matrices with strict dimension 1 over the naturals
[-(x1, x2)] =
1 0 0
0 0 0
0 1 0
· x1 +
1 0 0
0 1 1
0 0 0
· x2 +
1 0 0
0 0 0
0 0 0
[double(x1)] =
1 1 0
0 0 0
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[half(x1)] =
1 1 0
0 1 0
0 0 1
· x1 +
1 0 0
0 0 0
0 0 0
[if(x1, x2, x3)] =
1 0 1
0 0 1
1 0 1
· x1 +
1 0 0
0 1 0
0 0 1
· x2 +
1 0 0
0 1 0
0 0 1
· x3 +
1 0 0
0 0 0
0 0 0
[0] =
0 0 0
0 0 0
0 0 0
[s(x1)] =
1 0 0
0 1 1
0 1 0
· x1 +
0 0 0
0 0 0
0 0 0
all of the following rules can be deleted.
if(0,y,z) y (8)
if(s(x),y,z) z (9)

1.1.1.1 Rule Removal

Using the linear polynomial interpretation over (3 x 3)-matrices with strict dimension 1 over the naturals
[-(x1, x2)] =
1 0 0
0 0 0
1 0 0
· x1 +
1 0 0
0 0 0
0 0 0
· x2 +
0 0 0
0 0 0
0 0 0
[double(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
1 0 0
1 0 0
0 0 0
[half(x1)] =
1 0 0
1 0 0
1 0 0
· x1 +
0 0 0
1 0 0
0 0 0
[0] =
1 0 0
0 0 0
0 0 0
[s(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
all of the following rules can be deleted.
double(0) 0 (1)

1.1.1.1.1 Rule Removal

Using the linear polynomial interpretation over (3 x 3)-matrices with strict dimension 1 over the naturals
[-(x1, x2)] =
1 0 0
0 0 0
0 1 0
· x1 +
1 1 0
0 1 0
1 0 0
· x2 +
1 0 0
0 0 0
1 0 0
[double(x1)] =
1 1 0
1 1 1
0 0 1
· x1 +
0 0 0
1 0 0
0 0 0
[half(x1)] =
1 0 0
0 1 0
0 0 1
· x1 +
1 0 0
0 0 0
0 0 0
[s(x1)] =
1 0 1
0 1 0
0 0 0
· x1 +
0 0 0
1 0 0
1 0 0
all of the following rules can be deleted.
half(s(s(x))) s(half(x)) (5)
-(s(x),s(y)) -(x,y) (7)

1.1.1.1.1.1 Rule Removal

Using the linear polynomial interpretation over (4 x 4)-matrices with strict dimension 1 over the naturals
[double(x1)] =
1 1 1 1
0 1 0 1
0 0 1 0
0 1 1 1
· x1 +
0 0 0 0
1 0 0 0
0 0 0 0
0 0 0 0
[s(x1)] =
1 0 1 0
0 0 0 1
0 0 0 0
0 1 1 0
· x1 +
0 0 0 0
0 0 0 0
1 0 0 0
1 0 0 0
all of the following rules can be deleted.
double(s(x)) s(s(double(x))) (2)

1.1.1.1.1.1.1 R is empty

There are no rules in the TRS. Hence, it is terminating.