Certification Problem

Input (TPDB TRS_Standard/CiME_04/filliatre2)

The rewrite relation of the following TRS is considered.

g(A) A (1)
g(B) A (2)
g(B) B (3)
g(C) A (4)
g(C) B (5)
g(C) C (6)
foldB(t,0) t (7)
foldB(t,s(n)) f(foldB(t,n),B) (8)
foldC(t,0) t (9)
foldC(t,s(n)) f(foldC(t,n),C) (10)
f(t,x) f'(t,g(x)) (11)
f'(triple(a,b,c),C) triple(a,b,s(c)) (12)
f'(triple(a,b,c),B) f(triple(a,b,c),A) (13)
f'(triple(a,b,c),A) f''(foldB(triple(s(a),0,c),b)) (14)
f''(triple(a,b,c)) foldC(triple(a,b,0),c) (15)

Property / Task

Prove or disprove termination.

Answer / Result

Yes.

Proof (by ttt2 @ termCOMP 2023)

1 Rule Removal

Using the linear polynomial interpretation over (3 x 3)-matrices with strict dimension 1 over the naturals
[0] =
0 0 0
0 0 0
0 0 0
[foldC(x1, x2)] =
1 0 0
0 1 1
0 1 1
· x1 +
1 0 0
0 0 1
0 0 1
· x2 +
0 0 0
0 0 0
0 0 0
[g(x1)] =
1 0 0
0 0 1
1 1 0
· x1 +
0 0 0
0 0 0
1 0 0
[C] =
0 0 0
0 0 0
0 0 0
[foldB(x1, x2)] =
1 0 0
0 1 1
0 0 1
· x1 +
1 0 1
1 1 1
1 0 1
· x2 +
0 0 0
0 0 0
0 0 0
[triple(x1, x2, x3)] =
1 0 0
0 0 0
1 0 0
· x1 +
1 0 1
0 0 0
1 0 1
· x2 +
1 0 0
0 1 0
0 0 1
· x3 +
0 0 0
0 0 0
1 0 0
[A] =
0 0 0
0 0 0
0 0 0
[f(x1, x2)] =
1 0 0
0 0 1
0 0 1
· x1 +
1 0 0
1 1 0
0 0 0
· x2 +
0 0 0
1 0 0
1 0 0
[f''(x1)] =
1 0 0
0 0 1
0 0 1
· x1 +
0 0 0
0 0 0
1 0 0
[f'(x1, x2)] =
1 0 0
0 0 1
0 0 1
· x1 +
1 0 0
0 0 1
0 0 0
· x2 +
0 0 0
0 0 0
1 0 0
[s(x1)] =
1 0 0
0 0 0
0 0 1
· x1 +
0 0 0
1 0 0
1 0 0
[B] =
0 0 0
0 0 0
1 0 0
all of the following rules can be deleted.
foldB(t,s(n)) f(foldB(t,n),B) (8)

1.1 Rule Removal

Using the linear polynomial interpretation over (3 x 3)-matrices with strict dimension 1 over the naturals
[0] =
0 0 0
0 0 0
0 0 0
[foldC(x1, x2)] =
1 0 0
0 1 0
0 0 1
· x1 +
1 0 1
0 0 0
0 0 0
· x2 +
0 0 0
0 0 0
0 0 0
[g(x1)] =
1 0 0
0 0 0
0 0 0
· x1 +
0 0 0
0 0 0
0 0 0
[C] =
1 0 0
0 0 0
0 0 0
[foldB(x1, x2)] =
1 0 0
0 1 0
1 0 1
· x1 +
1 0 0
0 0 1
0 0 0
· x2 +
0 0 0
0 0 0
0 0 0
[triple(x1, x2, x3)] =
1 0 0
0 0 0
0 0 0
· x1 +
1 0 1
0 0 0
0 0 0
· x2 +
1 0 1
0 0 0
0 0 0
· x3 +
0 0 0
0 0 0
1 0 0
[A] =
0 0 0
0 0 0
0 0 0
[f(x1, x2)] =
1 0 0
0 0 0
0 0 1
· x1 +
1 1 0
0 0 1
0 0 0
· x2 +
0 0 0
0 0 0
0 0 0
[f''(x1)] =
1 1 0
0 0 0
0 0 0
· x1 +
0 0 0
0 0 0
1 0 0
[f'(x1, x2)] =
1 0 0
0 0 0
0 0 1
· x1 +
1 0 0
0 0 0
0 0 0
· x2 +
0 0 0
0 0 0
0 0 0
[s(x1)] =
1 0 0
0 0 0
0 0 1
· x1 +
0 0 0
0 0 0
1 0 0
[B] =
0 0 0
0 0 0
0 0 0
all of the following rules can be deleted.
g(C) A (4)
g(C) B (5)

1.1.1 Rule Removal

Using the Knuth Bendix order with w0 = 1 and the following precedence and weight functions
prec(f'') = 7 weight(f'') = 1
prec(triple) = 1 weight(triple) = 0
prec(f') = 4 weight(f') = 0
prec(foldC) = 6 weight(foldC) = 0
prec(f) = 5 weight(f) = 0
prec(s) = 2 weight(s) = 1
prec(foldB) = 0 weight(foldB) = 2
prec(0) = 10 weight(0) = 1
prec(C) = 9 weight(C) = 1
prec(B) = 8 weight(B) = 7
prec(g) = 15 weight(g) = 0
prec(A) = 12 weight(A) = 6
all of the following rules can be deleted.
g(A) A (1)
g(B) A (2)
g(B) B (3)
g(C) C (6)
foldB(t,0) t (7)
foldC(t,0) t (9)
foldC(t,s(n)) f(foldC(t,n),C) (10)
f(t,x) f'(t,g(x)) (11)
f'(triple(a,b,c),C) triple(a,b,s(c)) (12)
f'(triple(a,b,c),B) f(triple(a,b,c),A) (13)
f'(triple(a,b,c),A) f''(foldB(triple(s(a),0,c),b)) (14)
f''(triple(a,b,c)) foldC(triple(a,b,0),c) (15)

1.1.1.1 R is empty

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