The rewrite relation of the following TRS is considered.
a(a(x1)) | → | a(b(b(c(x1)))) | (1) |
b(a(x1)) | → | x1 | (2) |
c(b(x1)) | → | a(c(x1)) | (3) |
{a(☐), b(☐), c(☐)}
We obtain the transformed TRSa(a(x1)) | → | a(b(b(c(x1)))) | (1) |
a(b(a(x1))) | → | a(x1) | (4) |
b(b(a(x1))) | → | b(x1) | (5) |
c(b(a(x1))) | → | c(x1) | (6) |
a(c(b(x1))) | → | a(a(c(x1))) | (7) |
b(c(b(x1))) | → | b(a(c(x1))) | (8) |
c(c(b(x1))) | → | c(a(c(x1))) | (9) |
Root-labeling is applied.
We obtain the labeled TRSaa(aa(x1)) | → | ab(bb(bc(ca(x1)))) | (10) |
aa(ab(x1)) | → | ab(bb(bc(cb(x1)))) | (11) |
aa(ac(x1)) | → | ab(bb(bc(cc(x1)))) | (12) |
ab(ba(aa(x1))) | → | aa(x1) | (13) |
ab(ba(ab(x1))) | → | ab(x1) | (14) |
ab(ba(ac(x1))) | → | ac(x1) | (15) |
bb(ba(aa(x1))) | → | ba(x1) | (16) |
bb(ba(ab(x1))) | → | bb(x1) | (17) |
bb(ba(ac(x1))) | → | bc(x1) | (18) |
cb(ba(aa(x1))) | → | ca(x1) | (19) |
cb(ba(ab(x1))) | → | cb(x1) | (20) |
cb(ba(ac(x1))) | → | cc(x1) | (21) |
ac(cb(ba(x1))) | → | aa(ac(ca(x1))) | (22) |
ac(cb(bb(x1))) | → | aa(ac(cb(x1))) | (23) |
ac(cb(bc(x1))) | → | aa(ac(cc(x1))) | (24) |
bc(cb(ba(x1))) | → | ba(ac(ca(x1))) | (25) |
bc(cb(bb(x1))) | → | ba(ac(cb(x1))) | (26) |
bc(cb(bc(x1))) | → | ba(ac(cc(x1))) | (27) |
cc(cb(ba(x1))) | → | ca(ac(ca(x1))) | (28) |
cc(cb(bb(x1))) | → | ca(ac(cb(x1))) | (29) |
cc(cb(bc(x1))) | → | ca(ac(cc(x1))) | (30) |
aa#(aa(x1)) | → | bc#(ca(x1)) | (31) |
aa#(aa(x1)) | → | bb#(bc(ca(x1))) | (32) |
aa#(aa(x1)) | → | ab#(bb(bc(ca(x1)))) | (33) |
aa#(ab(x1)) | → | cb#(x1) | (34) |
aa#(ab(x1)) | → | bc#(cb(x1)) | (35) |
aa#(ab(x1)) | → | bb#(bc(cb(x1))) | (36) |
aa#(ab(x1)) | → | ab#(bb(bc(cb(x1)))) | (37) |
aa#(ac(x1)) | → | cc#(x1) | (38) |
aa#(ac(x1)) | → | bc#(cc(x1)) | (39) |
aa#(ac(x1)) | → | bb#(bc(cc(x1))) | (40) |
aa#(ac(x1)) | → | ab#(bb(bc(cc(x1)))) | (41) |
bb#(ba(ab(x1))) | → | bb#(x1) | (42) |
bb#(ba(ac(x1))) | → | bc#(x1) | (43) |
cb#(ba(ab(x1))) | → | cb#(x1) | (44) |
cb#(ba(ac(x1))) | → | cc#(x1) | (45) |
ac#(cb(ba(x1))) | → | ac#(ca(x1)) | (46) |
ac#(cb(ba(x1))) | → | aa#(ac(ca(x1))) | (47) |
ac#(cb(bb(x1))) | → | cb#(x1) | (48) |
ac#(cb(bb(x1))) | → | ac#(cb(x1)) | (49) |
ac#(cb(bb(x1))) | → | aa#(ac(cb(x1))) | (50) |
ac#(cb(bc(x1))) | → | cc#(x1) | (51) |
ac#(cb(bc(x1))) | → | ac#(cc(x1)) | (52) |
ac#(cb(bc(x1))) | → | aa#(ac(cc(x1))) | (53) |
bc#(cb(ba(x1))) | → | ac#(ca(x1)) | (54) |
bc#(cb(bb(x1))) | → | cb#(x1) | (55) |
bc#(cb(bb(x1))) | → | ac#(cb(x1)) | (56) |
bc#(cb(bc(x1))) | → | cc#(x1) | (57) |
bc#(cb(bc(x1))) | → | ac#(cc(x1)) | (58) |
cc#(cb(ba(x1))) | → | ac#(ca(x1)) | (59) |
cc#(cb(bb(x1))) | → | cb#(x1) | (60) |
cc#(cb(bb(x1))) | → | ac#(cb(x1)) | (61) |
cc#(cb(bc(x1))) | → | cc#(x1) | (62) |
cc#(cb(bc(x1))) | → | ac#(cc(x1)) | (63) |
The dependency pairs are split into 1 component.
ac#(cb(ba(x1))) | → | aa#(ac(ca(x1))) | (47) |
aa#(ac(x1)) | → | bb#(bc(cc(x1))) | (40) |
bb#(ba(ac(x1))) | → | bc#(x1) | (43) |
bc#(cb(bc(x1))) | → | cc#(x1) | (57) |
cc#(cb(bc(x1))) | → | cc#(x1) | (62) |
cc#(cb(bb(x1))) | → | ac#(cb(x1)) | (61) |
ac#(cb(bc(x1))) | → | aa#(ac(cc(x1))) | (53) |
aa#(ac(x1)) | → | cc#(x1) | (38) |
cc#(cb(bb(x1))) | → | cb#(x1) | (60) |
cb#(ba(ac(x1))) | → | cc#(x1) | (45) |
cb#(ba(ab(x1))) | → | cb#(x1) | (44) |
aa#(ab(x1)) | → | bb#(bc(cb(x1))) | (36) |
bb#(ba(ab(x1))) | → | bb#(x1) | (42) |
aa#(ab(x1)) | → | bc#(cb(x1)) | (35) |
bc#(cb(bb(x1))) | → | ac#(cb(x1)) | (56) |
ac#(cb(bc(x1))) | → | cc#(x1) | (51) |
ac#(cb(bb(x1))) | → | aa#(ac(cb(x1))) | (50) |
aa#(ab(x1)) | → | cb#(x1) | (34) |
ac#(cb(bb(x1))) | → | ac#(cb(x1)) | (49) |
ac#(cb(bb(x1))) | → | cb#(x1) | (48) |
bc#(cb(bb(x1))) | → | cb#(x1) | (55) |
[ac#(x1)] | = | 0 · x1 + 0 |
[ab(x1)] | = | 0 · x1 + 1 |
[cb(x1)] | = | 0 · x1 + 1 |
[aa(x1)] | = | 0 · x1 + 1 |
[cb#(x1)] | = | 0 · x1 + 1 |
[cc#(x1)] | = | 0 · x1 + 0 |
[bb(x1)] | = | 0 · x1 + 1 |
[cc(x1)] | = | 0 · x1 + -∞ |
[ca(x1)] | = | -∞ · x1 + 0 |
[bb#(x1)] | = | 0 · x1 + 0 |
[aa#(x1)] | = | 0 · x1 + 0 |
[ba(x1)] | = | 0 · x1 + -∞ |
[ac(x1)] | = | 0 · x1 + -∞ |
[bc#(x1)] | = | 0 · x1 + 0 |
[bc(x1)] | = | 0 · x1 + 0 |
aa(aa(x1)) | → | ab(bb(bc(ca(x1)))) | (10) |
aa(ab(x1)) | → | ab(bb(bc(cb(x1)))) | (11) |
aa(ac(x1)) | → | ab(bb(bc(cc(x1)))) | (12) |
ab(ba(aa(x1))) | → | aa(x1) | (13) |
ab(ba(ab(x1))) | → | ab(x1) | (14) |
ab(ba(ac(x1))) | → | ac(x1) | (15) |
bb(ba(aa(x1))) | → | ba(x1) | (16) |
bb(ba(ab(x1))) | → | bb(x1) | (17) |
bb(ba(ac(x1))) | → | bc(x1) | (18) |
cb(ba(aa(x1))) | → | ca(x1) | (19) |
cb(ba(ab(x1))) | → | cb(x1) | (20) |
cb(ba(ac(x1))) | → | cc(x1) | (21) |
ac(cb(ba(x1))) | → | aa(ac(ca(x1))) | (22) |
ac(cb(bb(x1))) | → | aa(ac(cb(x1))) | (23) |
ac(cb(bc(x1))) | → | aa(ac(cc(x1))) | (24) |
bc(cb(ba(x1))) | → | ba(ac(ca(x1))) | (25) |
bc(cb(bb(x1))) | → | ba(ac(cb(x1))) | (26) |
bc(cb(bc(x1))) | → | ba(ac(cc(x1))) | (27) |
cc(cb(ba(x1))) | → | ca(ac(ca(x1))) | (28) |
cc(cb(bb(x1))) | → | ca(ac(cb(x1))) | (29) |
cc(cb(bc(x1))) | → | ca(ac(cc(x1))) | (30) |
ac#(cb(ba(x1))) | → | aa#(ac(ca(x1))) | (47) |
[ac#(x1)] | = | 0 · x1 + 5 |
[ab(x1)] | = | 0 · x1 + 4 |
[cb(x1)] | = | 0 · x1 + 0 |
[aa(x1)] | = | 1 · x1 + 5 |
[cb#(x1)] | = | 0 · x1 + -∞ |
[cc#(x1)] | = | 0 · x1 + 4 |
[bb(x1)] | = | 1 · x1 + 5 |
[cc(x1)] | = | -∞ · x1 + 3 |
[ca(x1)] | = | -∞ · x1 + 3 |
[bb#(x1)] | = | 0 · x1 + 0 |
[aa#(x1)] | = | 0 · x1 + 4 |
[ba(x1)] | = | 0 · x1 + 4 |
[ac(x1)] | = | 1 · x1 + 0 |
[bc#(x1)] | = | 0 · x1 + -∞ |
[bc(x1)] | = | 0 · x1 + 4 |
aa(aa(x1)) | → | ab(bb(bc(ca(x1)))) | (10) |
aa(ab(x1)) | → | ab(bb(bc(cb(x1)))) | (11) |
aa(ac(x1)) | → | ab(bb(bc(cc(x1)))) | (12) |
ab(ba(aa(x1))) | → | aa(x1) | (13) |
ab(ba(ab(x1))) | → | ab(x1) | (14) |
ab(ba(ac(x1))) | → | ac(x1) | (15) |
bb(ba(aa(x1))) | → | ba(x1) | (16) |
bb(ba(ab(x1))) | → | bb(x1) | (17) |
bb(ba(ac(x1))) | → | bc(x1) | (18) |
cb(ba(aa(x1))) | → | ca(x1) | (19) |
cb(ba(ab(x1))) | → | cb(x1) | (20) |
cb(ba(ac(x1))) | → | cc(x1) | (21) |
ac(cb(ba(x1))) | → | aa(ac(ca(x1))) | (22) |
ac(cb(bb(x1))) | → | aa(ac(cb(x1))) | (23) |
ac(cb(bc(x1))) | → | aa(ac(cc(x1))) | (24) |
bc(cb(ba(x1))) | → | ba(ac(ca(x1))) | (25) |
bc(cb(bb(x1))) | → | ba(ac(cb(x1))) | (26) |
bc(cb(bc(x1))) | → | ba(ac(cc(x1))) | (27) |
cc(cb(ba(x1))) | → | ca(ac(ca(x1))) | (28) |
cc(cb(bb(x1))) | → | ca(ac(cb(x1))) | (29) |
cc(cb(bc(x1))) | → | ca(ac(cc(x1))) | (30) |
bb#(ba(ac(x1))) | → | bc#(x1) | (43) |
ac#(cb(bc(x1))) | → | aa#(ac(cc(x1))) | (53) |
cc#(cb(bb(x1))) | → | cb#(x1) | (60) |
ac#(cb(bb(x1))) | → | cb#(x1) | (48) |
bc#(cb(bb(x1))) | → | cb#(x1) | (55) |
The dependency pairs are split into 2 components.
ac#(cb(bc(x1))) | → | cc#(x1) | (51) |
cc#(cb(bc(x1))) | → | cc#(x1) | (62) |
cc#(cb(bb(x1))) | → | ac#(cb(x1)) | (61) |
ac#(cb(bb(x1))) | → | aa#(ac(cb(x1))) | (50) |
aa#(ac(x1)) | → | cc#(x1) | (38) |
aa#(ab(x1)) | → | bc#(cb(x1)) | (35) |
bc#(cb(bc(x1))) | → | cc#(x1) | (57) |
bc#(cb(bb(x1))) | → | ac#(cb(x1)) | (56) |
ac#(cb(bb(x1))) | → | ac#(cb(x1)) | (49) |
aa#(ab(x1)) | → | cb#(x1) | (34) |
cb#(ba(ac(x1))) | → | cc#(x1) | (45) |
cb#(ba(ab(x1))) | → | cb#(x1) | (44) |
[ac#(x1)] | = | 4 · x1 + 4 |
[ab(x1)] | = | 0 · x1 + 0 |
[cb(x1)] | = | 0 · x1 + -∞ |
[aa(x1)] | = | 1 · x1 + 2 |
[cb#(x1)] | = | 2 · x1 + 0 |
[cc#(x1)] | = | 3 · x1 + 0 |
[bb(x1)] | = | 1 · x1 + 1 |
[cc(x1)] | = | -∞ · x1 + 0 |
[ca(x1)] | = | -∞ · x1 + 0 |
[aa#(x1)] | = | 4 · x1 + 0 |
[ba(x1)] | = | 0 · x1 + 1 |
[ac(x1)] | = | 1 · x1 + -∞ |
[bc#(x1)] | = | 4 · x1 + 0 |
[bc(x1)] | = | 0 · x1 + 1 |
aa(aa(x1)) | → | ab(bb(bc(ca(x1)))) | (10) |
aa(ab(x1)) | → | ab(bb(bc(cb(x1)))) | (11) |
aa(ac(x1)) | → | ab(bb(bc(cc(x1)))) | (12) |
ab(ba(aa(x1))) | → | aa(x1) | (13) |
ab(ba(ab(x1))) | → | ab(x1) | (14) |
ab(ba(ac(x1))) | → | ac(x1) | (15) |
bb(ba(aa(x1))) | → | ba(x1) | (16) |
bb(ba(ab(x1))) | → | bb(x1) | (17) |
bb(ba(ac(x1))) | → | bc(x1) | (18) |
cb(ba(aa(x1))) | → | ca(x1) | (19) |
cb(ba(ab(x1))) | → | cb(x1) | (20) |
cb(ba(ac(x1))) | → | cc(x1) | (21) |
ac(cb(ba(x1))) | → | aa(ac(ca(x1))) | (22) |
ac(cb(bb(x1))) | → | aa(ac(cb(x1))) | (23) |
ac(cb(bc(x1))) | → | aa(ac(cc(x1))) | (24) |
bc(cb(ba(x1))) | → | ba(ac(ca(x1))) | (25) |
bc(cb(bb(x1))) | → | ba(ac(cb(x1))) | (26) |
bc(cb(bc(x1))) | → | ba(ac(cc(x1))) | (27) |
cc(cb(ba(x1))) | → | ca(ac(ca(x1))) | (28) |
cc(cb(bb(x1))) | → | ca(ac(cb(x1))) | (29) |
cc(cb(bc(x1))) | → | ca(ac(cc(x1))) | (30) |
ac#(cb(bc(x1))) | → | cc#(x1) | (51) |
bc#(cb(bc(x1))) | → | cc#(x1) | (57) |
bc#(cb(bb(x1))) | → | ac#(cb(x1)) | (56) |
ac#(cb(bb(x1))) | → | ac#(cb(x1)) | (49) |
aa#(ab(x1)) | → | cb#(x1) | (34) |
The dependency pairs are split into 2 components.
cb#(ba(ab(x1))) | → | cb#(x1) | (44) |
Using size-change termination in combination with the subterm criterion one obtains the following initial size-change graphs.
cb#(ba(ab(x1))) | → | cb#(x1) | (44) |
1 | > | 1 |
As there is no critical graph in the transitive closure, there are no infinite chains.
ac#(cb(bb(x1))) | → | aa#(ac(cb(x1))) | (50) |
aa#(ac(x1)) | → | cc#(x1) | (38) |
cc#(cb(bc(x1))) | → | cc#(x1) | (62) |
cc#(cb(bb(x1))) | → | ac#(cb(x1)) | (61) |
[ac#(x1)] | = | 0 · x1 + 0 |
[ab(x1)] | = | 0 · x1 + 1 |
[cb(x1)] | = | 0 · x1 + 0 |
[aa(x1)] | = | 1 · x1 + 1 |
[cc#(x1)] | = | 0 · x1 + 1 |
[bb(x1)] | = | 1 · x1 + 1 |
[cc(x1)] | = | -∞ · x1 + 0 |
[ca(x1)] | = | -∞ · x1 + 0 |
[aa#(x1)] | = | 0 · x1 + 0 |
[ba(x1)] | = | 0 · x1 + 1 |
[ac(x1)] | = | 1 · x1 + 1 |
[bc(x1)] | = | 0 · x1 + 1 |
aa(aa(x1)) | → | ab(bb(bc(ca(x1)))) | (10) |
aa(ab(x1)) | → | ab(bb(bc(cb(x1)))) | (11) |
aa(ac(x1)) | → | ab(bb(bc(cc(x1)))) | (12) |
ab(ba(aa(x1))) | → | aa(x1) | (13) |
ab(ba(ab(x1))) | → | ab(x1) | (14) |
ab(ba(ac(x1))) | → | ac(x1) | (15) |
bb(ba(aa(x1))) | → | ba(x1) | (16) |
bb(ba(ab(x1))) | → | bb(x1) | (17) |
bb(ba(ac(x1))) | → | bc(x1) | (18) |
cb(ba(aa(x1))) | → | ca(x1) | (19) |
cb(ba(ab(x1))) | → | cb(x1) | (20) |
cb(ba(ac(x1))) | → | cc(x1) | (21) |
ac(cb(ba(x1))) | → | aa(ac(ca(x1))) | (22) |
ac(cb(bb(x1))) | → | aa(ac(cb(x1))) | (23) |
ac(cb(bc(x1))) | → | aa(ac(cc(x1))) | (24) |
bc(cb(ba(x1))) | → | ba(ac(ca(x1))) | (25) |
bc(cb(bb(x1))) | → | ba(ac(cb(x1))) | (26) |
bc(cb(bc(x1))) | → | ba(ac(cc(x1))) | (27) |
cc(cb(ba(x1))) | → | ca(ac(ca(x1))) | (28) |
cc(cb(bb(x1))) | → | ca(ac(cb(x1))) | (29) |
cc(cb(bc(x1))) | → | ca(ac(cc(x1))) | (30) |
cc#(cb(bb(x1))) | → | ac#(cb(x1)) | (61) |
The dependency pairs are split into 1 component.
cc#(cb(bc(x1))) | → | cc#(x1) | (62) |
Using size-change termination in combination with the subterm criterion one obtains the following initial size-change graphs.
cc#(cb(bc(x1))) | → | cc#(x1) | (62) |
1 | > | 1 |
As there is no critical graph in the transitive closure, there are no infinite chains.
bb#(ba(ab(x1))) | → | bb#(x1) | (42) |
Using size-change termination in combination with the subterm criterion one obtains the following initial size-change graphs.
bb#(ba(ab(x1))) | → | bb#(x1) | (42) |
1 | > | 1 |
As there is no critical graph in the transitive closure, there are no infinite chains.