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.