Term Rewriting System R:
[X, Y, Z, X1, X2]
adbl(0) -> 0
adbl(s(X)) -> s(s(dbl(X)))
adbl(X) -> dbl(X)
adbls(nil) -> nil
adbls(cons(X, Y)) -> cons(dbl(X), dbls(Y))
adbls(X) -> dbls(X)
asel(0, cons(X, Y)) -> mark(X)
asel(s(X), cons(Y, Z)) -> asel(mark(X), mark(Z))
asel(X1, X2) -> sel(X1, X2)
aindx(nil, X) -> nil
aindx(cons(X, Y), Z) -> cons(sel(X, Z), indx(Y, Z))
aindx(X1, X2) -> indx(X1, X2)
afrom(X) -> cons(X, from(s(X)))
afrom(X) -> from(X)
mark(dbl(X)) -> adbl(mark(X))
mark(dbls(X)) -> adbls(mark(X))
mark(sel(X1, X2)) -> asel(mark(X1), mark(X2))
mark(indx(X1, X2)) -> aindx(mark(X1), X2)
mark(from(X)) -> afrom(X)
mark(0) -> 0
mark(s(X)) -> s(X)
mark(nil) -> nil
mark(cons(X1, X2)) -> cons(X1, X2)

Termination of R to be shown.



   R
Dependency Pair Analysis



R contains the following Dependency Pairs:

ASEL(0, cons(X, Y)) -> MARK(X)
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)
MARK(dbl(X)) -> ADBL(mark(X))
MARK(dbl(X)) -> MARK(X)
MARK(dbls(X)) -> ADBLS(mark(X))
MARK(dbls(X)) -> MARK(X)
MARK(sel(X1, X2)) -> ASEL(mark(X1), mark(X2))
MARK(sel(X1, X2)) -> MARK(X1)
MARK(sel(X1, X2)) -> MARK(X2)
MARK(indx(X1, X2)) -> AINDX(mark(X1), X2)
MARK(indx(X1, X2)) -> MARK(X1)
MARK(from(X)) -> AFROM(X)

Furthermore, R contains one SCC.


   R
DPs
       →DP Problem 1
Remaining Obligation(s)




The following remains to be proven:
Dependency Pairs:

ASEL(s(X), cons(Y, Z)) -> MARK(Z)
MARK(indx(X1, X2)) -> MARK(X1)
MARK(sel(X1, X2)) -> MARK(X2)
MARK(sel(X1, X2)) -> MARK(X1)
ASEL(s(X), cons(Y, Z)) -> MARK(X)
ASEL(s(X), cons(Y, Z)) -> ASEL(mark(X), mark(Z))
MARK(sel(X1, X2)) -> ASEL(mark(X1), mark(X2))
MARK(dbls(X)) -> MARK(X)
MARK(dbl(X)) -> MARK(X)
ASEL(0, cons(X, Y)) -> MARK(X)


Rules:


adbl(0) -> 0
adbl(s(X)) -> s(s(dbl(X)))
adbl(X) -> dbl(X)
adbls(nil) -> nil
adbls(cons(X, Y)) -> cons(dbl(X), dbls(Y))
adbls(X) -> dbls(X)
asel(0, cons(X, Y)) -> mark(X)
asel(s(X), cons(Y, Z)) -> asel(mark(X), mark(Z))
asel(X1, X2) -> sel(X1, X2)
aindx(nil, X) -> nil
aindx(cons(X, Y), Z) -> cons(sel(X, Z), indx(Y, Z))
aindx(X1, X2) -> indx(X1, X2)
afrom(X) -> cons(X, from(s(X)))
afrom(X) -> from(X)
mark(dbl(X)) -> adbl(mark(X))
mark(dbls(X)) -> adbls(mark(X))
mark(sel(X1, X2)) -> asel(mark(X1), mark(X2))
mark(indx(X1, X2)) -> aindx(mark(X1), X2)
mark(from(X)) -> afrom(X)
mark(0) -> 0
mark(s(X)) -> s(X)
mark(nil) -> nil
mark(cons(X1, X2)) -> cons(X1, X2)




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