Term Rewriting System R:
[X, Y, Z, X1, X2]
asel(s(X), cons(Y, Z)) -> asel(mark(X), mark(Z))
asel(0, cons(X, Z)) -> mark(X)
asel(X1, X2) -> sel(X1, X2)
afirst(0, Z) -> nil
afirst(s(X), cons(Y, Z)) -> cons(mark(Y), first(X, Z))
afirst(X1, X2) -> first(X1, X2)
afrom(X) -> cons(mark(X), from(s(X)))
afrom(X) -> from(X)
asel1(s(X), cons(Y, Z)) -> asel1(mark(X), mark(Z))
asel1(0, cons(X, Z)) -> aquote(X)
asel1(X1, X2) -> sel1(X1, X2)
afirst1(0, Z) -> nil1
afirst1(s(X), cons(Y, Z)) -> cons1(aquote(Y), afirst1(mark(X), mark(Z)))
afirst1(X1, X2) -> first1(X1, X2)
aquote(0) -> 01
aquote(s(X)) -> s1(aquote(X))
aquote(sel(X, Z)) -> asel1(mark(X), mark(Z))
aquote(X) -> quote(X)
aquote1(cons(X, Z)) -> cons1(aquote(X), aquote1(Z))
aquote1(nil) -> nil1
aquote1(first(X, Z)) -> afirst1(mark(X), mark(Z))
aquote1(X) -> quote1(X)
aunquote(01) -> 0
aunquote(s1(X)) -> s(aunquote(mark(X)))
aunquote(X) -> unquote(X)
aunquote1(nil1) -> nil
aunquote1(cons1(X, Z)) -> afcons(aunquote(mark(X)), aunquote1(mark(Z)))
aunquote1(X) -> unquote1(X)
afcons(X, Z) -> cons(mark(X), Z)
afcons(X1, X2) -> fcons(X1, X2)
mark(sel(X1, X2)) -> asel(mark(X1), mark(X2))
mark(first(X1, X2)) -> afirst(mark(X1), mark(X2))
mark(from(X)) -> afrom(mark(X))
mark(sel1(X1, X2)) -> asel1(mark(X1), mark(X2))
mark(quote(X)) -> aquote(X)
mark(first1(X1, X2)) -> afirst1(mark(X1), mark(X2))
mark(quote1(X)) -> aquote1(X)
mark(unquote(X)) -> aunquote(mark(X))
mark(unquote1(X)) -> aunquote1(mark(X))
mark(fcons(X1, X2)) -> afcons(mark(X1), mark(X2))
mark(s(X)) -> s(mark(X))
mark(cons(X1, X2)) -> cons(mark(X1), X2)
mark(0) -> 0
mark(nil) -> nil
mark(nil1) -> nil1
mark(cons1(X1, X2)) -> cons1(mark(X1), mark(X2))
mark(01) -> 01
mark(s1(X)) -> s1(mark(X))

Termination of R to be shown.



   R
Dependency Pair Analysis



R contains the following Dependency Pairs:

ASEL(s(X), cons(Y, Z)) -> ASEL(mark(X), mark(Z))
ASEL(s(X), cons(Y, Z)) -> MARK(X)
ASEL(s(X), cons(Y, Z)) -> MARK(Z)
ASEL(0, cons(X, Z)) -> MARK(X)
AFIRST(s(X), cons(Y, Z)) -> MARK(Y)
AFROM(X) -> MARK(X)
ASEL1(s(X), cons(Y, Z)) -> ASEL1(mark(X), mark(Z))
ASEL1(s(X), cons(Y, Z)) -> MARK(X)
ASEL1(s(X), cons(Y, Z)) -> MARK(Z)
ASEL1(0, cons(X, Z)) -> AQUOTE(X)
AFIRST1(s(X), cons(Y, Z)) -> AQUOTE(Y)
AFIRST1(s(X), cons(Y, Z)) -> AFIRST1(mark(X), mark(Z))
AFIRST1(s(X), cons(Y, Z)) -> MARK(X)
AFIRST1(s(X), cons(Y, Z)) -> MARK(Z)
AQUOTE(s(X)) -> AQUOTE(X)
AQUOTE(sel(X, Z)) -> ASEL1(mark(X), mark(Z))
AQUOTE(sel(X, Z)) -> MARK(X)
AQUOTE(sel(X, Z)) -> MARK(Z)
AQUOTE1(cons(X, Z)) -> AQUOTE(X)
AQUOTE1(cons(X, Z)) -> AQUOTE1(Z)
AQUOTE1(first(X, Z)) -> AFIRST1(mark(X), mark(Z))
AQUOTE1(first(X, Z)) -> MARK(X)
AQUOTE1(first(X, Z)) -> MARK(Z)
AUNQUOTE(s1(X)) -> AUNQUOTE(mark(X))
AUNQUOTE(s1(X)) -> MARK(X)
AUNQUOTE1(cons1(X, Z)) -> AFCONS(aunquote(mark(X)), aunquote1(mark(Z)))
AUNQUOTE1(cons1(X, Z)) -> AUNQUOTE(mark(X))
AUNQUOTE1(cons1(X, Z)) -> MARK(X)
AUNQUOTE1(cons1(X, Z)) -> AUNQUOTE1(mark(Z))
AUNQUOTE1(cons1(X, Z)) -> MARK(Z)
AFCONS(X, Z) -> MARK(X)
MARK(sel(X1, X2)) -> ASEL(mark(X1), mark(X2))
MARK(sel(X1, X2)) -> MARK(X1)
MARK(sel(X1, X2)) -> MARK(X2)
MARK(first(X1, X2)) -> AFIRST(mark(X1), mark(X2))
MARK(first(X1, X2)) -> MARK(X1)
MARK(first(X1, X2)) -> MARK(X2)
MARK(from(X)) -> AFROM(mark(X))
MARK(from(X)) -> MARK(X)
MARK(sel1(X1, X2)) -> ASEL1(mark(X1), mark(X2))
MARK(sel1(X1, X2)) -> MARK(X1)
MARK(sel1(X1, X2)) -> MARK(X2)
MARK(quote(X)) -> AQUOTE(X)
MARK(first1(X1, X2)) -> AFIRST1(mark(X1), mark(X2))
MARK(first1(X1, X2)) -> MARK(X1)
MARK(first1(X1, X2)) -> MARK(X2)
MARK(quote1(X)) -> AQUOTE1(X)
MARK(unquote(X)) -> AUNQUOTE(mark(X))
MARK(unquote(X)) -> MARK(X)
MARK(unquote1(X)) -> AUNQUOTE1(mark(X))
MARK(unquote1(X)) -> MARK(X)
MARK(fcons(X1, X2)) -> AFCONS(mark(X1), mark(X2))
MARK(fcons(X1, X2)) -> MARK(X1)
MARK(fcons(X1, X2)) -> MARK(X2)
MARK(s(X)) -> MARK(X)
MARK(cons(X1, X2)) -> MARK(X1)
MARK(cons1(X1, X2)) -> MARK(X1)
MARK(cons1(X1, X2)) -> MARK(X2)
MARK(s1(X)) -> MARK(X)

Furthermore, R contains one SCC.


   R
DPs
       →DP Problem 1
Remaining Obligation(s)




The following remains to be proven:
Dependency Pairs:

ASEL(0, cons(X, Z)) -> MARK(X)
ASEL1(0, cons(X, Z)) -> AQUOTE(X)
AQUOTE1(first(X, Z)) -> MARK(Z)
AQUOTE1(first(X, Z)) -> MARK(X)
AFIRST1(s(X), cons(Y, Z)) -> MARK(Z)
AFIRST1(s(X), cons(Y, Z)) -> MARK(X)
AFIRST1(s(X), cons(Y, Z)) -> AFIRST1(mark(X), mark(Z))
AQUOTE1(first(X, Z)) -> AFIRST1(mark(X), mark(Z))
AQUOTE1(cons(X, Z)) -> AQUOTE1(Z)
AUNQUOTE1(cons1(X, Z)) -> MARK(Z)
AUNQUOTE1(cons1(X, Z)) -> AUNQUOTE1(mark(Z))
AUNQUOTE1(cons1(X, Z)) -> MARK(X)
AUNQUOTE1(cons1(X, Z)) -> AUNQUOTE(mark(X))
MARK(s1(X)) -> MARK(X)
MARK(cons1(X1, X2)) -> MARK(X2)
MARK(cons1(X1, X2)) -> MARK(X1)
MARK(cons(X1, X2)) -> MARK(X1)
MARK(s(X)) -> MARK(X)
MARK(fcons(X1, X2)) -> MARK(X2)
MARK(fcons(X1, X2)) -> MARK(X1)
MARK(fcons(X1, X2)) -> AFCONS(mark(X1), mark(X2))
MARK(unquote1(X)) -> MARK(X)
AFCONS(X, Z) -> MARK(X)
AUNQUOTE1(cons1(X, Z)) -> AFCONS(aunquote(mark(X)), aunquote1(mark(Z)))
MARK(unquote1(X)) -> AUNQUOTE1(mark(X))
MARK(unquote(X)) -> MARK(X)
AUNQUOTE(s1(X)) -> MARK(X)
AUNQUOTE(s1(X)) -> AUNQUOTE(mark(X))
MARK(unquote(X)) -> AUNQUOTE(mark(X))
AQUOTE(sel(X, Z)) -> MARK(Z)
AQUOTE1(cons(X, Z)) -> AQUOTE(X)
MARK(quote1(X)) -> AQUOTE1(X)
MARK(first1(X1, X2)) -> MARK(X2)
MARK(first1(X1, X2)) -> MARK(X1)
AQUOTE(sel(X, Z)) -> MARK(X)
AFIRST1(s(X), cons(Y, Z)) -> AQUOTE(Y)
MARK(first1(X1, X2)) -> AFIRST1(mark(X1), mark(X2))
ASEL1(s(X), cons(Y, Z)) -> MARK(Z)
AQUOTE(sel(X, Z)) -> ASEL1(mark(X), mark(Z))
AQUOTE(s(X)) -> AQUOTE(X)
MARK(quote(X)) -> AQUOTE(X)
MARK(sel1(X1, X2)) -> MARK(X2)
MARK(sel1(X1, X2)) -> MARK(X1)
ASEL1(s(X), cons(Y, Z)) -> MARK(X)
ASEL1(s(X), cons(Y, Z)) -> ASEL1(mark(X), mark(Z))
MARK(sel1(X1, X2)) -> ASEL1(mark(X1), mark(X2))
MARK(from(X)) -> MARK(X)
AFROM(X) -> MARK(X)
MARK(from(X)) -> AFROM(mark(X))
MARK(first(X1, X2)) -> MARK(X2)
MARK(first(X1, X2)) -> MARK(X1)
AFIRST(s(X), cons(Y, Z)) -> MARK(Y)
MARK(first(X1, X2)) -> AFIRST(mark(X1), mark(X2))
MARK(sel(X1, X2)) -> MARK(X2)
MARK(sel(X1, X2)) -> MARK(X1)
ASEL(s(X), cons(Y, Z)) -> MARK(Z)
MARK(sel(X1, X2)) -> ASEL(mark(X1), mark(X2))
ASEL(s(X), cons(Y, Z)) -> MARK(X)
ASEL(s(X), cons(Y, Z)) -> ASEL(mark(X), mark(Z))


Rules:


asel(s(X), cons(Y, Z)) -> asel(mark(X), mark(Z))
asel(0, cons(X, Z)) -> mark(X)
asel(X1, X2) -> sel(X1, X2)
afirst(0, Z) -> nil
afirst(s(X), cons(Y, Z)) -> cons(mark(Y), first(X, Z))
afirst(X1, X2) -> first(X1, X2)
afrom(X) -> cons(mark(X), from(s(X)))
afrom(X) -> from(X)
asel1(s(X), cons(Y, Z)) -> asel1(mark(X), mark(Z))
asel1(0, cons(X, Z)) -> aquote(X)
asel1(X1, X2) -> sel1(X1, X2)
afirst1(0, Z) -> nil1
afirst1(s(X), cons(Y, Z)) -> cons1(aquote(Y), afirst1(mark(X), mark(Z)))
afirst1(X1, X2) -> first1(X1, X2)
aquote(0) -> 01
aquote(s(X)) -> s1(aquote(X))
aquote(sel(X, Z)) -> asel1(mark(X), mark(Z))
aquote(X) -> quote(X)
aquote1(cons(X, Z)) -> cons1(aquote(X), aquote1(Z))
aquote1(nil) -> nil1
aquote1(first(X, Z)) -> afirst1(mark(X), mark(Z))
aquote1(X) -> quote1(X)
aunquote(01) -> 0
aunquote(s1(X)) -> s(aunquote(mark(X)))
aunquote(X) -> unquote(X)
aunquote1(nil1) -> nil
aunquote1(cons1(X, Z)) -> afcons(aunquote(mark(X)), aunquote1(mark(Z)))
aunquote1(X) -> unquote1(X)
afcons(X, Z) -> cons(mark(X), Z)
afcons(X1, X2) -> fcons(X1, X2)
mark(sel(X1, X2)) -> asel(mark(X1), mark(X2))
mark(first(X1, X2)) -> afirst(mark(X1), mark(X2))
mark(from(X)) -> afrom(mark(X))
mark(sel1(X1, X2)) -> asel1(mark(X1), mark(X2))
mark(quote(X)) -> aquote(X)
mark(first1(X1, X2)) -> afirst1(mark(X1), mark(X2))
mark(quote1(X)) -> aquote1(X)
mark(unquote(X)) -> aunquote(mark(X))
mark(unquote1(X)) -> aunquote1(mark(X))
mark(fcons(X1, X2)) -> afcons(mark(X1), mark(X2))
mark(s(X)) -> s(mark(X))
mark(cons(X1, X2)) -> cons(mark(X1), X2)
mark(0) -> 0
mark(nil) -> nil
mark(nil1) -> nil1
mark(cons1(X1, X2)) -> cons1(mark(X1), mark(X2))
mark(01) -> 01
mark(s1(X)) -> s1(mark(X))




Termination of R could not be shown.
Duration:
0:03 minutes