Certification Problem

Input (TPDB SRS_Relative/Waldmann_19/random-208)

The relative rewrite relation R/S is considered where R is the following TRS

c(c(c(x1))) b(a(a(x1))) (1)
a(b(a(x1))) a(b(b(x1))) (2)
a(b(a(x1))) b(c(c(x1))) (3)
a(c(b(x1))) a(a(c(x1))) (4)

and S is the following TRS.

c(c(b(x1))) c(c(a(x1))) (5)
a(b(c(x1))) c(a(c(x1))) (6)

Property / Task

Prove or disprove termination.

Answer / Result

Yes.

Proof (by AProVE @ termCOMP 2023)

1 String Reversal

Since only unary symbols occur, one can reverse all terms and obtains the TRS
c(c(c(x1))) a(a(b(x1))) (7)
a(b(a(x1))) b(b(a(x1))) (8)
a(b(a(x1))) c(c(b(x1))) (9)
b(c(a(x1))) c(a(a(x1))) (10)
b(c(c(x1))) a(c(c(x1))) (11)
c(b(a(x1))) c(a(c(x1))) (12)

1.1 Closure Under Flat Contexts

Using the flat contexts

{c(), a(), b()}

We obtain the transformed TRS
c(c(c(c(x1)))) c(a(a(b(x1)))) (13)
a(c(c(c(x1)))) a(a(a(b(x1)))) (14)
b(c(c(c(x1)))) b(a(a(b(x1)))) (15)
c(a(b(a(x1)))) c(b(b(a(x1)))) (16)
a(a(b(a(x1)))) a(b(b(a(x1)))) (17)
b(a(b(a(x1)))) b(b(b(a(x1)))) (18)
c(a(b(a(x1)))) c(c(c(b(x1)))) (19)
a(a(b(a(x1)))) a(c(c(b(x1)))) (20)
b(a(b(a(x1)))) b(c(c(b(x1)))) (21)
c(b(c(a(x1)))) c(c(a(a(x1)))) (22)
a(b(c(a(x1)))) a(c(a(a(x1)))) (23)
b(b(c(a(x1)))) b(c(a(a(x1)))) (24)
c(b(a(x1))) c(a(c(x1))) (12)
c(b(c(c(x1)))) c(a(c(c(x1)))) (25)
a(b(c(c(x1)))) a(a(c(c(x1)))) (26)
b(b(c(c(x1)))) b(a(c(c(x1)))) (27)

1.1.1 Semantic Labeling

Root-labeling is applied.

We obtain the labeled TRS
cc(cc(cc(cc(x1)))) ca(aa(ab(bc(x1)))) (28)
cc(cc(cc(ca(x1)))) ca(aa(ab(ba(x1)))) (29)
cc(cc(cc(cb(x1)))) ca(aa(ab(bb(x1)))) (30)
ac(cc(cc(cc(x1)))) aa(aa(ab(bc(x1)))) (31)
ac(cc(cc(ca(x1)))) aa(aa(ab(ba(x1)))) (32)
ac(cc(cc(cb(x1)))) aa(aa(ab(bb(x1)))) (33)
bc(cc(cc(cc(x1)))) ba(aa(ab(bc(x1)))) (34)
bc(cc(cc(ca(x1)))) ba(aa(ab(ba(x1)))) (35)
bc(cc(cc(cb(x1)))) ba(aa(ab(bb(x1)))) (36)
ca(ab(ba(ac(x1)))) cb(bb(ba(ac(x1)))) (37)
ca(ab(ba(aa(x1)))) cb(bb(ba(aa(x1)))) (38)
ca(ab(ba(ab(x1)))) cb(bb(ba(ab(x1)))) (39)
aa(ab(ba(ac(x1)))) ab(bb(ba(ac(x1)))) (40)
aa(ab(ba(aa(x1)))) ab(bb(ba(aa(x1)))) (41)
aa(ab(ba(ab(x1)))) ab(bb(ba(ab(x1)))) (42)
ba(ab(ba(ac(x1)))) bb(bb(ba(ac(x1)))) (43)
ba(ab(ba(aa(x1)))) bb(bb(ba(aa(x1)))) (44)
ba(ab(ba(ab(x1)))) bb(bb(ba(ab(x1)))) (45)
ca(ab(ba(ac(x1)))) cc(cc(cb(bc(x1)))) (46)
ca(ab(ba(aa(x1)))) cc(cc(cb(ba(x1)))) (47)
ca(ab(ba(ab(x1)))) cc(cc(cb(bb(x1)))) (48)
aa(ab(ba(ac(x1)))) ac(cc(cb(bc(x1)))) (49)
aa(ab(ba(aa(x1)))) ac(cc(cb(ba(x1)))) (50)
aa(ab(ba(ab(x1)))) ac(cc(cb(bb(x1)))) (51)
ba(ab(ba(ac(x1)))) bc(cc(cb(bc(x1)))) (52)
ba(ab(ba(aa(x1)))) bc(cc(cb(ba(x1)))) (53)
ba(ab(ba(ab(x1)))) bc(cc(cb(bb(x1)))) (54)
cb(bc(ca(ac(x1)))) cc(ca(aa(ac(x1)))) (55)
cb(bc(ca(aa(x1)))) cc(ca(aa(aa(x1)))) (56)
cb(bc(ca(ab(x1)))) cc(ca(aa(ab(x1)))) (57)
ab(bc(ca(ac(x1)))) ac(ca(aa(ac(x1)))) (58)
ab(bc(ca(aa(x1)))) ac(ca(aa(aa(x1)))) (59)
ab(bc(ca(ab(x1)))) ac(ca(aa(ab(x1)))) (60)
bb(bc(ca(ac(x1)))) bc(ca(aa(ac(x1)))) (61)
bb(bc(ca(aa(x1)))) bc(ca(aa(aa(x1)))) (62)
bb(bc(ca(ab(x1)))) bc(ca(aa(ab(x1)))) (63)
cb(ba(ac(x1))) ca(ac(cc(x1))) (64)
cb(ba(aa(x1))) ca(ac(ca(x1))) (65)
cb(ba(ab(x1))) ca(ac(cb(x1))) (66)
cb(bc(cc(cc(x1)))) ca(ac(cc(cc(x1)))) (67)
cb(bc(cc(ca(x1)))) ca(ac(cc(ca(x1)))) (68)
cb(bc(cc(cb(x1)))) ca(ac(cc(cb(x1)))) (69)
ab(bc(cc(cc(x1)))) aa(ac(cc(cc(x1)))) (70)
ab(bc(cc(ca(x1)))) aa(ac(cc(ca(x1)))) (71)
ab(bc(cc(cb(x1)))) aa(ac(cc(cb(x1)))) (72)
bb(bc(cc(cc(x1)))) ba(ac(cc(cc(x1)))) (73)
bb(bc(cc(ca(x1)))) ba(ac(cc(ca(x1)))) (74)
bb(bc(cc(cb(x1)))) ba(ac(cc(cb(x1)))) (75)

1.1.1.1 Rule Removal

Using the matrix interpretations of dimension 2 with strict dimension 1 over the integers
[cc(x1)] =
1
0
+
1 0
0 0
· x1
[ca(x1)] =
1
0
+
1 0
0 0
· x1
[aa(x1)] =
0
0
+
1 0
0 0
· x1
[ab(x1)] =
2
0
+
1 0
0 0
· x1
[bc(x1)] =
1
0
+
1 0
0 0
· x1
[ba(x1)] =
1
0
+
1 0
0 0
· x1
[cb(x1)] =
1
0
+
1 0
0 0
· x1
[bb(x1)] =
0
0
+
1 0
0 0
· x1
[ac(x1)] =
0
0
+
1 0
0 0
· x1
all of the following rules can be deleted.
cc(cc(cc(cb(x1)))) ca(aa(ab(bb(x1)))) (30)
ac(cc(cc(cb(x1)))) aa(aa(ab(bb(x1)))) (33)
bc(cc(cc(cb(x1)))) ba(aa(ab(bb(x1)))) (36)
ca(ab(ba(ac(x1)))) cb(bb(ba(ac(x1)))) (37)
ca(ab(ba(aa(x1)))) cb(bb(ba(aa(x1)))) (38)
ca(ab(ba(ab(x1)))) cb(bb(ba(ab(x1)))) (39)
ba(ab(ba(ac(x1)))) bb(bb(ba(ac(x1)))) (43)
ba(ab(ba(aa(x1)))) bb(bb(ba(aa(x1)))) (44)
ba(ab(ba(ab(x1)))) bb(bb(ba(ab(x1)))) (45)
ca(ab(ba(ab(x1)))) cc(cc(cb(bb(x1)))) (48)
aa(ab(ba(ab(x1)))) ac(cc(cb(bb(x1)))) (51)
ba(ab(ba(ab(x1)))) bc(cc(cb(bb(x1)))) (54)
cb(bc(ca(ac(x1)))) cc(ca(aa(ac(x1)))) (55)
cb(bc(ca(aa(x1)))) cc(ca(aa(aa(x1)))) (56)
cb(bc(ca(ab(x1)))) cc(ca(aa(ab(x1)))) (57)
ab(bc(ca(ac(x1)))) ac(ca(aa(ac(x1)))) (58)
ab(bc(ca(aa(x1)))) ac(ca(aa(aa(x1)))) (59)
ab(bc(ca(ab(x1)))) ac(ca(aa(ab(x1)))) (60)
cb(ba(ab(x1))) ca(ac(cb(x1))) (66)
cb(bc(cc(cc(x1)))) ca(ac(cc(cc(x1)))) (67)
cb(bc(cc(ca(x1)))) ca(ac(cc(ca(x1)))) (68)
cb(bc(cc(cb(x1)))) ca(ac(cc(cb(x1)))) (69)
ab(bc(cc(cc(x1)))) aa(ac(cc(cc(x1)))) (70)
ab(bc(cc(ca(x1)))) aa(ac(cc(ca(x1)))) (71)
ab(bc(cc(cb(x1)))) aa(ac(cc(cb(x1)))) (72)

1.1.1.1.1 Rule Removal

Using the matrix interpretations of dimension 2 with strict dimension 1 over the integers
[cc(x1)] =
1
0
+
2 0
0 0
· x1
[ca(x1)] =
0
0
+
2 0
0 0
· x1
[aa(x1)] =
1
0
+
2 0
0 0
· x1
[ab(x1)] =
1
0
+
1 2
0 0
· x1
[bc(x1)] =
2
0
+
2 0
1 0
· x1
[ba(x1)] =
0
0
+
2 0
1 0
· x1
[ac(x1)] =
2
0
+
2 0
0 0
· x1
[bb(x1)] =
2
0
+
2 0
1 0
· x1
[cb(x1)] =
0
0
+
1 2
0 0
· x1
all of the following rules can be deleted.
cc(cc(cc(cc(x1)))) ca(aa(ab(bc(x1)))) (28)
cc(cc(cc(ca(x1)))) ca(aa(ab(ba(x1)))) (29)
ac(cc(cc(cc(x1)))) aa(aa(ab(bc(x1)))) (31)
ac(cc(cc(ca(x1)))) aa(aa(ab(ba(x1)))) (32)
bc(cc(cc(cc(x1)))) ba(aa(ab(bc(x1)))) (34)
bc(cc(cc(ca(x1)))) ba(aa(ab(ba(x1)))) (35)
ca(ab(ba(ac(x1)))) cc(cc(cb(bc(x1)))) (46)
ca(ab(ba(aa(x1)))) cc(cc(cb(ba(x1)))) (47)
aa(ab(ba(ac(x1)))) ac(cc(cb(bc(x1)))) (49)
aa(ab(ba(aa(x1)))) ac(cc(cb(ba(x1)))) (50)
ba(ab(ba(ac(x1)))) bc(cc(cb(bc(x1)))) (52)
ba(ab(ba(aa(x1)))) bc(cc(cb(ba(x1)))) (53)
bb(bc(cc(cc(x1)))) ba(ac(cc(cc(x1)))) (73)
bb(bc(cc(ca(x1)))) ba(ac(cc(ca(x1)))) (74)
bb(bc(cc(cb(x1)))) ba(ac(cc(cb(x1)))) (75)

1.1.1.1.1.1 Rule Removal

Using the Knuth Bendix order with w0 = 1 and the following precedence and weight functions
prec(aa) = 5 weight(aa) = 2
prec(ab) = 2 weight(ab) = 1
prec(ba) = 0 weight(ba) = 1
prec(ac) = 1 weight(ac) = 3
prec(bb) = 4 weight(bb) = 2
prec(bc) = 3 weight(bc) = 1
prec(ca) = 7 weight(ca) = 1
prec(cb) = 8 weight(cb) = 4
prec(cc) = 6 weight(cc) = 4
all of the following rules can be deleted.
aa(ab(ba(ac(x1)))) ab(bb(ba(ac(x1)))) (40)
aa(ab(ba(aa(x1)))) ab(bb(ba(aa(x1)))) (41)
aa(ab(ba(ab(x1)))) ab(bb(ba(ab(x1)))) (42)
bb(bc(ca(ac(x1)))) bc(ca(aa(ac(x1)))) (61)
bb(bc(ca(aa(x1)))) bc(ca(aa(aa(x1)))) (62)
bb(bc(ca(ab(x1)))) bc(ca(aa(ab(x1)))) (63)
cb(ba(ac(x1))) ca(ac(cc(x1))) (64)
cb(ba(aa(x1))) ca(ac(ca(x1))) (65)

1.1.1.1.1.1.1 R is empty

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