Certification Problem
Input (TPDB SRS_Standard/Secret_05_SRS/torpa3)
The rewrite relation of the following TRS is considered.
b(b(x1)) |
→ |
c(d(x1)) |
(1) |
c(c(x1)) |
→ |
d(d(d(x1))) |
(2) |
c(x1) |
→ |
g(x1) |
(3) |
d(d(x1)) |
→ |
c(f(x1)) |
(4) |
d(d(d(x1))) |
→ |
g(c(x1)) |
(5) |
f(x1) |
→ |
a(g(x1)) |
(6) |
g(x1) |
→ |
d(a(b(x1))) |
(7) |
g(g(x1)) |
→ |
b(c(x1)) |
(8) |
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
b(b(x1)) |
→ |
d(c(x1)) |
(9) |
c(c(x1)) |
→ |
d(d(d(x1))) |
(2) |
c(x1) |
→ |
g(x1) |
(3) |
d(d(x1)) |
→ |
f(c(x1)) |
(10) |
d(d(d(x1))) |
→ |
c(g(x1)) |
(11) |
f(x1) |
→ |
g(a(x1)) |
(12) |
g(x1) |
→ |
b(a(d(x1))) |
(13) |
g(g(x1)) |
→ |
c(b(x1)) |
(14) |
1.1 Closure Under Flat Contexts
Using the flat contexts
{b(☐), d(☐), c(☐), g(☐), f(☐), a(☐)}
We obtain the transformed TRS
b(b(b(x1))) |
→ |
b(d(c(x1))) |
(15) |
d(b(b(x1))) |
→ |
d(d(c(x1))) |
(16) |
c(b(b(x1))) |
→ |
c(d(c(x1))) |
(17) |
g(b(b(x1))) |
→ |
g(d(c(x1))) |
(18) |
f(b(b(x1))) |
→ |
f(d(c(x1))) |
(19) |
a(b(b(x1))) |
→ |
a(d(c(x1))) |
(20) |
b(c(c(x1))) |
→ |
b(d(d(d(x1)))) |
(21) |
d(c(c(x1))) |
→ |
d(d(d(d(x1)))) |
(22) |
c(c(c(x1))) |
→ |
c(d(d(d(x1)))) |
(23) |
g(c(c(x1))) |
→ |
g(d(d(d(x1)))) |
(24) |
f(c(c(x1))) |
→ |
f(d(d(d(x1)))) |
(25) |
a(c(c(x1))) |
→ |
a(d(d(d(x1)))) |
(26) |
b(c(x1)) |
→ |
b(g(x1)) |
(27) |
d(c(x1)) |
→ |
d(g(x1)) |
(28) |
c(c(x1)) |
→ |
c(g(x1)) |
(29) |
g(c(x1)) |
→ |
g(g(x1)) |
(30) |
f(c(x1)) |
→ |
f(g(x1)) |
(31) |
a(c(x1)) |
→ |
a(g(x1)) |
(32) |
b(d(d(x1))) |
→ |
b(f(c(x1))) |
(33) |
d(d(d(x1))) |
→ |
d(f(c(x1))) |
(34) |
c(d(d(x1))) |
→ |
c(f(c(x1))) |
(35) |
g(d(d(x1))) |
→ |
g(f(c(x1))) |
(36) |
f(d(d(x1))) |
→ |
f(f(c(x1))) |
(37) |
a(d(d(x1))) |
→ |
a(f(c(x1))) |
(38) |
b(d(d(d(x1)))) |
→ |
b(c(g(x1))) |
(39) |
d(d(d(d(x1)))) |
→ |
d(c(g(x1))) |
(40) |
c(d(d(d(x1)))) |
→ |
c(c(g(x1))) |
(41) |
g(d(d(d(x1)))) |
→ |
g(c(g(x1))) |
(42) |
f(d(d(d(x1)))) |
→ |
f(c(g(x1))) |
(43) |
a(d(d(d(x1)))) |
→ |
a(c(g(x1))) |
(44) |
b(f(x1)) |
→ |
b(g(a(x1))) |
(45) |
d(f(x1)) |
→ |
d(g(a(x1))) |
(46) |
c(f(x1)) |
→ |
c(g(a(x1))) |
(47) |
g(f(x1)) |
→ |
g(g(a(x1))) |
(48) |
f(f(x1)) |
→ |
f(g(a(x1))) |
(49) |
a(f(x1)) |
→ |
a(g(a(x1))) |
(50) |
b(g(x1)) |
→ |
b(b(a(d(x1)))) |
(51) |
d(g(x1)) |
→ |
d(b(a(d(x1)))) |
(52) |
c(g(x1)) |
→ |
c(b(a(d(x1)))) |
(53) |
g(g(x1)) |
→ |
g(b(a(d(x1)))) |
(54) |
f(g(x1)) |
→ |
f(b(a(d(x1)))) |
(55) |
a(g(x1)) |
→ |
a(b(a(d(x1)))) |
(56) |
b(g(g(x1))) |
→ |
b(c(b(x1))) |
(57) |
d(g(g(x1))) |
→ |
d(c(b(x1))) |
(58) |
c(g(g(x1))) |
→ |
c(c(b(x1))) |
(59) |
g(g(g(x1))) |
→ |
g(c(b(x1))) |
(60) |
f(g(g(x1))) |
→ |
f(c(b(x1))) |
(61) |
a(g(g(x1))) |
→ |
a(c(b(x1))) |
(62) |
1.1.1 Semantic Labeling
Root-labeling is applied.
We obtain the labeled TRS
There are 288 ruless (increase limit for explicit display).
1.1.1.1 Rule Removal
Using the
linear polynomial interpretation over the naturals
[bb(x1)] |
= |
1 · x1 + 89 |
[bd(x1)] |
= |
1 · x1 + 64 |
[dc(x1)] |
= |
1 · x1 + 110 |
[cb(x1)] |
= |
1 · x1 + 89 |
[cd(x1)] |
= |
1 · x1 + 65 |
[bc(x1)] |
= |
1 · x1 + 104 |
[cc(x1)] |
= |
1 · x1 + 105 |
[bg(x1)] |
= |
1 · x1 + 94 |
[cg(x1)] |
= |
1 · x1 + 94 |
[bf(x1)] |
= |
1 · x1 + 65 |
[cf(x1)] |
= |
1 · x1 + 65 |
[ba(x1)] |
= |
1 · x1
|
[ca(x1)] |
= |
1 · x1
|
[db(x1)] |
= |
1 · x1 + 92 |
[dd(x1)] |
= |
1 · x1 + 70 |
[gb(x1)] |
= |
1 · x1 + 96 |
[gd(x1)] |
= |
1 · x1 + 73 |
[fb(x1)] |
= |
1 · x1 + 54 |
[fd(x1)] |
= |
1 · x1 + 31 |
[ab(x1)] |
= |
1 · x1 + 22 |
[ad(x1)] |
= |
1 · x1
|
[dg(x1)] |
= |
1 · x1 + 99 |
[df(x1)] |
= |
1 · x1 + 70 |
[da(x1)] |
= |
1 · x1 + 4 |
[gc(x1)] |
= |
1 · x1 + 114 |
[fc(x1)] |
= |
1 · x1 + 72 |
[ac(x1)] |
= |
1 · x1 + 41 |
[gg(x1)] |
= |
1 · x1 + 102 |
[gf(x1)] |
= |
1 · x1 + 73 |
[ga(x1)] |
= |
1 · x1
|
[fg(x1)] |
= |
1 · x1 + 60 |
[ag(x1)] |
= |
1 · x1 + 30 |
[ff(x1)] |
= |
1 · x1 + 30 |
[af(x1)] |
= |
1 · x1
|
[fa(x1)] |
= |
1 · x1 + 31 |
[aa(x1)] |
= |
1 · x1
|
all of the following rules can be deleted.
There are 267 ruless (increase limit for explicit display).
1.1.1.1.1 Rule Removal
Using the
linear polynomial interpretation over the naturals
[db(x1)] |
= |
1 · x1 + 3 |
[bb(x1)] |
= |
1 · x1
|
[bd(x1)] |
= |
1 · x1
|
[dd(x1)] |
= |
1 · x1
|
[dc(x1)] |
= |
1 · x1 + 1 |
[cd(x1)] |
= |
1 · x1
|
[bc(x1)] |
= |
1 · x1
|
[cc(x1)] |
= |
1 · x1 + 1 |
[ab(x1)] |
= |
1 · x1 + 3 |
[ad(x1)] |
= |
1 · x1
|
[cg(x1)] |
= |
1 · x1
|
[dg(x1)] |
= |
1 · x1 + 1 |
[cf(x1)] |
= |
1 · x1
|
[df(x1)] |
= |
1 · x1
|
[bf(x1)] |
= |
1 · x1
|
[fc(x1)] |
= |
1 · x1
|
[cb(x1)] |
= |
1 · x1
|
[ff(x1)] |
= |
1 · x1
|
[fg(x1)] |
= |
1 · x1
|
[ga(x1)] |
= |
1 · x1
|
[ag(x1)] |
= |
1 · x1
|
[af(x1)] |
= |
1 · x1
|
all of the following rules can be deleted.
db(bb(bd(x1))) |
→ |
dd(dc(cd(x1))) |
(70) |
db(bb(bc(x1))) |
→ |
dd(dc(cc(x1))) |
(71) |
ab(bb(bd(x1))) |
→ |
ad(dc(cd(x1))) |
(94) |
ab(bb(bc(x1))) |
→ |
ad(dc(cc(x1))) |
(95) |
bc(cc(cd(x1))) |
→ |
bd(dd(dd(dd(x1)))) |
(100) |
bc(cc(cc(x1))) |
→ |
bd(dd(dd(dc(x1)))) |
(101) |
bc(cc(cf(x1))) |
→ |
bd(dd(dd(df(x1)))) |
(103) |
dc(cc(cd(x1))) |
→ |
dd(dd(dd(dd(x1)))) |
(106) |
dc(cc(cc(x1))) |
→ |
dd(dd(dd(dc(x1)))) |
(107) |
dc(cc(cg(x1))) |
→ |
dd(dd(dd(dg(x1)))) |
(108) |
dc(cc(cf(x1))) |
→ |
dd(dd(dd(df(x1)))) |
(109) |
cc(cc(cd(x1))) |
→ |
cd(dd(dd(dd(x1)))) |
(112) |
cc(cc(cc(x1))) |
→ |
cd(dd(dd(dc(x1)))) |
(113) |
cc(cc(cg(x1))) |
→ |
cd(dd(dd(dg(x1)))) |
(114) |
cc(cc(cf(x1))) |
→ |
cd(dd(dd(df(x1)))) |
(115) |
bd(dd(db(x1))) |
→ |
bf(fc(cb(x1))) |
(171) |
1.1.1.1.1.1 Rule Removal
Using the
linear polynomial interpretation over the naturals
[bc(x1)] |
= |
1 · x1 + 1 |
[cc(x1)] |
= |
1 · x1
|
[cg(x1)] |
= |
1 · x1
|
[bd(x1)] |
= |
1 · x1
|
[dd(x1)] |
= |
1 · x1
|
[dg(x1)] |
= |
1 · x1
|
[ff(x1)] |
= |
1 · x1
|
[fg(x1)] |
= |
1 · x1
|
[ga(x1)] |
= |
1 · x1
|
[ag(x1)] |
= |
1 · x1
|
[af(x1)] |
= |
1 · x1
|
all of the following rules can be deleted.
bc(cc(cg(x1))) |
→ |
bd(dd(dd(dg(x1)))) |
(102) |
1.1.1.1.1.1.1 Rule Removal
Using the
linear polynomial interpretation over the naturals
[ff(x1)] |
= |
1 · x1 + 1 |
[fg(x1)] |
= |
1 · x1
|
[ga(x1)] |
= |
1 · x1
|
[ag(x1)] |
= |
1 · x1
|
[af(x1)] |
= |
1 · x1 + 1 |
all of the following rules can be deleted.
ff(fg(x1)) |
→ |
fg(ga(ag(x1))) |
(270) |
ff(ff(x1)) |
→ |
fg(ga(af(x1))) |
(271) |
af(fg(x1)) |
→ |
ag(ga(ag(x1))) |
(276) |
af(ff(x1)) |
→ |
ag(ga(af(x1))) |
(277) |
1.1.1.1.1.1.1.1 R is empty
There are no rules in the TRS. Hence, it is terminating.