Term Rewriting System R:
[YS, X, XS, X1, X2, Y, L]
app(nil, YS) -> YS
app(cons(X, XS), YS) -> cons(X, napp(activate(XS), YS))
app(X1, X2) -> napp(X1, X2)
from(X) -> cons(X, nfrom(s(X)))
from(X) -> nfrom(X)
zWadr(nil, YS) -> nil
zWadr(XS, nil) -> nil
zWadr(cons(X, XS), cons(Y, YS)) -> cons(app(Y, cons(X, nnil)), nzWadr(activate(XS), activate(YS)))
zWadr(X1, X2) -> nzWadr(X1, X2)
prefix(L) -> cons(nil, nzWadr(L, prefix(L)))
nil -> nnil
activate(napp(X1, X2)) -> app(X1, X2)
activate(nfrom(X)) -> from(X)
activate(nnil) -> nil
activate(nzWadr(X1, X2)) -> zWadr(X1, X2)
activate(X) -> X
Termination of R to be shown.
R
↳Dependency Pair Analysis
R contains the following Dependency Pairs:
APP(cons(X, XS), YS) -> ACTIVATE(XS)
ZWADR(cons(X, XS), cons(Y, YS)) -> APP(Y, cons(X, nnil))
ZWADR(cons(X, XS), cons(Y, YS)) -> ACTIVATE(XS)
ZWADR(cons(X, XS), cons(Y, YS)) -> ACTIVATE(YS)
PREFIX(L) -> NIL
PREFIX(L) -> PREFIX(L)
ACTIVATE(napp(X1, X2)) -> APP(X1, X2)
ACTIVATE(nfrom(X)) -> FROM(X)
ACTIVATE(nnil) -> NIL
ACTIVATE(nzWadr(X1, X2)) -> ZWADR(X1, X2)
Furthermore, R contains two SCCs.
R
↳DPs
→DP Problem 1
↳Size-Change Principle
→DP Problem 2
↳MRR
Dependency Pairs:
ZWADR(cons(X, XS), cons(Y, YS)) -> ACTIVATE(YS)
ZWADR(cons(X, XS), cons(Y, YS)) -> ACTIVATE(XS)
ZWADR(cons(X, XS), cons(Y, YS)) -> APP(Y, cons(X, nnil))
ACTIVATE(nzWadr(X1, X2)) -> ZWADR(X1, X2)
ACTIVATE(napp(X1, X2)) -> APP(X1, X2)
APP(cons(X, XS), YS) -> ACTIVATE(XS)
Rules:
app(nil, YS) -> YS
app(cons(X, XS), YS) -> cons(X, napp(activate(XS), YS))
app(X1, X2) -> napp(X1, X2)
from(X) -> cons(X, nfrom(s(X)))
from(X) -> nfrom(X)
zWadr(nil, YS) -> nil
zWadr(XS, nil) -> nil
zWadr(cons(X, XS), cons(Y, YS)) -> cons(app(Y, cons(X, nnil)), nzWadr(activate(XS), activate(YS)))
zWadr(X1, X2) -> nzWadr(X1, X2)
prefix(L) -> cons(nil, nzWadr(L, prefix(L)))
nil -> nnil
activate(napp(X1, X2)) -> app(X1, X2)
activate(nfrom(X)) -> from(X)
activate(nnil) -> nil
activate(nzWadr(X1, X2)) -> zWadr(X1, X2)
activate(X) -> X
We number the DPs as follows:
- ZWADR(cons(X, XS), cons(Y, YS)) -> ACTIVATE(YS)
- ZWADR(cons(X, XS), cons(Y, YS)) -> ACTIVATE(XS)
- ZWADR(cons(X, XS), cons(Y, YS)) -> APP(Y, cons(X, nnil))
- ACTIVATE(nzWadr(X1, X2)) -> ZWADR(X1, X2)
- ACTIVATE(napp(X1, X2)) -> APP(X1, X2)
- APP(cons(X, XS), YS) -> ACTIVATE(XS)
and get the following Size-Change Graph(s):
which lead(s) to this/these maximal multigraph(s):
DP: empty set
Oriented Rules: none
We used the order Homeomorphic Embedding Order with Non-Strict Precedence.
trivial
with Argument Filtering System:
cons(x1, x2) -> cons(x1, x2)
nzWadr(x1, x2) -> nzWadr(x1, x2)
napp(x1, x2) -> napp(x1, x2)
We obtain no new DP problems.
R
↳DPs
→DP Problem 1
↳SCP
→DP Problem 2
↳Modular Removal of Rules
Dependency Pair:
PREFIX(L) -> PREFIX(L)
Rules:
app(nil, YS) -> YS
app(cons(X, XS), YS) -> cons(X, napp(activate(XS), YS))
app(X1, X2) -> napp(X1, X2)
from(X) -> cons(X, nfrom(s(X)))
from(X) -> nfrom(X)
zWadr(nil, YS) -> nil
zWadr(XS, nil) -> nil
zWadr(cons(X, XS), cons(Y, YS)) -> cons(app(Y, cons(X, nnil)), nzWadr(activate(XS), activate(YS)))
zWadr(X1, X2) -> nzWadr(X1, X2)
prefix(L) -> cons(nil, nzWadr(L, prefix(L)))
nil -> nnil
activate(napp(X1, X2)) -> app(X1, X2)
activate(nfrom(X)) -> from(X)
activate(nnil) -> nil
activate(nzWadr(X1, X2)) -> zWadr(X1, X2)
activate(X) -> X
We have the following set of usable rules:
none
To remove rules and DPs from this DP problem we used the following monotonic and CE-compatible order: Polynomial ordering.
Polynomial interpretation:
We have the following set D of usable symbols: {PREFIX}
No Dependency Pairs can be deleted.
16 non usable rules have been deleted.
The result of this processor delivers one new DP problem.
R
↳DPs
→DP Problem 1
↳SCP
→DP Problem 2
↳MRR
→DP Problem 3
↳Non-Overlappingness Check
Dependency Pair:
PREFIX(L) -> PREFIX(L)
Rule:
none
R does not overlap into P. Moreover, R is locally confluent (all critical pairs are trivially joinable).Hence we can switch to innermost.
The transformation is resulting in one subcycle:
R
↳DPs
→DP Problem 1
↳SCP
→DP Problem 2
↳MRR
→DP Problem 3
↳NOC
...
→DP Problem 4
↳Non Termination
Dependency Pair:
PREFIX(L) -> PREFIX(L)
Rule:
none
Strategy:
innermost
Found an infinite P-chain over R:
P =
PREFIX(L) -> PREFIX(L)
R = none
s = PREFIX(L')
evaluates to t =PREFIX(L')
Thus, s starts an infinite chain.
Non-Termination of R could be shown.
Duration:
0:04 minutes