Term Rewriting System R: [X, XS, N, X1, X2] from(X) -> cons(X, n__from(n__s(X))) from(X) -> n__from(X) head(cons(X, XS)) -> X 2nd(cons(X, XS)) -> head(activate(XS)) take(0, XS) -> nil take(s(N), cons(X, XS)) -> cons(X, n__take(N, activate(XS))) take(X1, X2) -> n__take(X1, X2) sel(0, cons(X, XS)) -> X sel(s(N), cons(X, XS)) -> sel(N, activate(XS)) s(X) -> n__s(X) activate(n__from(X)) -> from(activate(X)) activate(n__s(X)) -> s(activate(X)) activate(n__take(X1, X2)) -> take(activate(X1), activate(X2)) activate(X) -> X Termination of R to be shown. R contains the following Dependency Pairs: TAKE(s(N), cons(X, XS)) -> ACTIVATE(XS) ACTIVATE(n__take(X1, X2)) -> TAKE(activate(X1), activate(X2)) ACTIVATE(n__take(X1, X2)) -> ACTIVATE(X1) ACTIVATE(n__take(X1, X2)) -> ACTIVATE(X2) ACTIVATE(n__s(X)) -> S(activate(X)) ACTIVATE(n__s(X)) -> ACTIVATE(X) ACTIVATE(n__from(X)) -> FROM(activate(X)) ACTIVATE(n__from(X)) -> ACTIVATE(X) SEL(s(N), cons(X, XS)) -> SEL(N, activate(XS)) SEL(s(N), cons(X, XS)) -> ACTIVATE(XS) 2ND(cons(X, XS)) -> HEAD(activate(XS)) 2ND(cons(X, XS)) -> ACTIVATE(XS) Furthermore, R contains two SCCs. SCC1: ACTIVATE(n__from(X)) -> ACTIVATE(X) ACTIVATE(n__s(X)) -> ACTIVATE(X) ACTIVATE(n__take(X1, X2)) -> ACTIVATE(X2) ACTIVATE(n__take(X1, X2)) -> ACTIVATE(X1) ACTIVATE(n__take(X1, X2)) -> TAKE(activate(X1), activate(X2)) TAKE(s(N), cons(X, XS)) -> ACTIVATE(XS) By using a polynomial ordering, at least one Dependency Pair of this SCC can be strictly oriented. Additionally, the following rules can be oriented: activate(n__take(X1, X2)) -> take(activate(X1), activate(X2)) activate(X) -> X activate(n__s(X)) -> s(activate(X)) activate(n__from(X)) -> from(activate(X)) take(0, XS) -> nil take(s(N), cons(X, XS)) -> cons(X, n__take(N, activate(XS))) take(X1, X2) -> n__take(X1, X2) s(X) -> n__s(X) from(X) -> cons(X, n__from(n__s(X))) from(X) -> n__from(X) Used ordering: Polynomial ordering with Polynomial interpretation: POL(n__from(x_1)) = 1 + x_1 POL(nil) = 0 POL(TAKE(x_1, x_2)) = x_2 POL(activate(x_1)) = x_1 POL(s(x_1)) = x_1 POL(take(x_1, x_2)) = x_1 + x_2 POL(ACTIVATE(x_1)) = x_1 POL(n__take(x_1, x_2)) = x_1 + x_2 POL(from(x_1)) = 1 + x_1 POL(0) = 0 POL(n__s(x_1)) = x_1 POL(cons(x_1, x_2)) = x_2 resulting in one subcycle. SCC1.Polo1: ACTIVATE(n__take(X1, X2)) -> ACTIVATE(X2) ACTIVATE(n__take(X1, X2)) -> ACTIVATE(X1) TAKE(s(N), cons(X, XS)) -> ACTIVATE(XS) ACTIVATE(n__take(X1, X2)) -> TAKE(activate(X1), activate(X2)) ACTIVATE(n__s(X)) -> ACTIVATE(X) By using a polynomial ordering, at least one Dependency Pair of this SCC can be strictly oriented. Additionally, the following rules can be oriented: activate(n__take(X1, X2)) -> take(activate(X1), activate(X2)) activate(X) -> X activate(n__s(X)) -> s(activate(X)) activate(n__from(X)) -> from(activate(X)) take(0, XS) -> nil take(s(N), cons(X, XS)) -> cons(X, n__take(N, activate(XS))) take(X1, X2) -> n__take(X1, X2) s(X) -> n__s(X) from(X) -> cons(X, n__from(n__s(X))) from(X) -> n__from(X) Used ordering: Polynomial ordering with Polynomial interpretation: POL(n__from(x_1)) = 0 POL(nil) = 0 POL(TAKE(x_1, x_2)) = x_1 + x_2 POL(activate(x_1)) = x_1 POL(s(x_1)) = 1 + x_1 POL(take(x_1, x_2)) = 1 + x_1 + x_2 POL(ACTIVATE(x_1)) = x_1 POL(n__take(x_1, x_2)) = 1 + x_1 + x_2 POL(from(x_1)) = 0 POL(0) = 0 POL(n__s(x_1)) = 1 + x_1 POL(cons(x_1, x_2)) = x_2 resulting in no subcycles. SCC2: SEL(s(N), cons(X, XS)) -> SEL(N, activate(XS)) By using a polynomial ordering, at least one Dependency Pair of this SCC can be strictly oriented. No rules need to be oriented. Used ordering: Polynomial ordering with Polynomial interpretation: POL(n__from(x_1)) = 0 POL(nil) = 0 POL(activate(x_1)) = 0 POL(s(x_1)) = 1 + x_1 POL(take(x_1, x_2)) = 0 POL(n__take(x_1, x_2)) = 0 POL(SEL(x_1, x_2)) = x_1 POL(from(x_1)) = 0 POL(0) = 0 POL(n__s(x_1)) = 0 POL(cons(x_1, x_2)) = 0 resulting in no subcycles. Termination of R successfully shown. Duration: 1.218 seconds.