YES
app(nil, YS) → YS
app(cons(X, XS), YS) → cons(X, app(XS, YS))
from(X) → cons(X, from(s(X)))
zWadr(nil, YS) → nil
zWadr(XS, nil) → nil
zWadr(cons(X, XS), cons(Y, YS)) → cons(app(Y, cons(X, nil)), zWadr(XS, YS))
prefix(L) → cons(nil, zWadr(L, prefix(L)))
app: {1, 2}
nil: empty set
cons: {1}
from: {1}
s: {1}
zWadr: {1, 2}
prefix: {1}
↳ CSR
↳ Lucas-Transformation
app(nil, YS) → YS
app(cons(X, XS), YS) → cons(X, app(XS, YS))
from(X) → cons(X, from(s(X)))
zWadr(nil, YS) → nil
zWadr(XS, nil) → nil
zWadr(cons(X, XS), cons(Y, YS)) → cons(app(Y, cons(X, nil)), zWadr(XS, YS))
prefix(L) → cons(nil, zWadr(L, prefix(L)))
app: {1, 2}
nil: empty set
cons: {1}
from: {1}
s: {1}
zWadr: {1, 2}
prefix: {1}
We applied the Lucas [26] to transform the context-sensitive TRS to an usual TRS.
↳ CSR
↳ Lucas-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
app(nil, YS) → YS
app(cons(X), YS) → cons(X)
from(X) → cons(X)
zWadr(nil, YS) → nil
zWadr(XS, nil) → nil
zWadr(cons(X), cons(Y)) → cons(app(Y, cons(X)))
prefix(L) → cons(nil)
app(nil, YS) → YS
app(cons(X), YS) → cons(X)
from(X) → cons(X)
zWadr(nil, YS) → nil
zWadr(XS, nil) → nil
zWadr(cons(X), cons(Y)) → cons(app(Y, cons(X)))
prefix(L) → cons(nil)
Used ordering:
zWadr(cons(X), cons(Y)) → cons(app(Y, cons(X)))
POL(app(x1, x2)) = x1 + x2
POL(cons(x1)) = 2 + x1
POL(from(x1)) = 2 + x1
POL(nil) = 0
POL(prefix(x1)) = 2 + x1
POL(zWadr(x1, x2)) = 2·x1 + x2
↳ CSR
↳ Lucas-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
app(nil, YS) → YS
app(cons(X), YS) → cons(X)
from(X) → cons(X)
zWadr(nil, YS) → nil
zWadr(XS, nil) → nil
prefix(L) → cons(nil)
app(nil, YS) → YS
app(cons(X), YS) → cons(X)
from(X) → cons(X)
zWadr(nil, YS) → nil
zWadr(XS, nil) → nil
prefix(L) → cons(nil)
Used ordering:
app(nil, YS) → YS
app(cons(X), YS) → cons(X)
from(X) → cons(X)
prefix(L) → cons(nil)
POL(app(x1, x2)) = 2 + 2·x1 + x2
POL(cons(x1)) = 1 + 2·x1
POL(from(x1)) = 2 + 2·x1
POL(nil) = 0
POL(prefix(x1)) = 2 + x1
POL(zWadr(x1, x2)) = x1 + 2·x2
↳ CSR
↳ Lucas-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
zWadr(nil, YS) → nil
zWadr(XS, nil) → nil
zWadr(nil, YS) → nil
zWadr(XS, nil) → nil
Used ordering:
zWadr(nil, YS) → nil
zWadr(XS, nil) → nil
POL(nil) = 1
POL(zWadr(x1, x2)) = 2 + 2·x1 + 2·x2
↳ CSR
↳ Lucas-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RisEmptyProof