Term Rewriting System R: [X, Z, Y, X1, X2] from(X) -> cons(X, n__from(s(X))) from(X) -> n__from(X) first(0, Z) -> nil first(s(X), cons(Y, Z)) -> cons(Y, n__first(X, activate(Z))) first(X1, X2) -> n__first(X1, X2) sel(0, cons(X, Z)) -> X sel(s(X), cons(Y, Z)) -> sel(X, activate(Z)) activate(n__from(X)) -> from(X) activate(n__first(X1, X2)) -> first(X1, X2) activate(X) -> X Termination of R to be shown. R contains the following Dependency Pairs: FIRST(s(X), cons(Y, Z)) -> ACTIVATE(Z) SEL(s(X), cons(Y, Z)) -> SEL(X, activate(Z)) SEL(s(X), cons(Y, Z)) -> ACTIVATE(Z) ACTIVATE(n__from(X)) -> FROM(X) ACTIVATE(n__first(X1, X2)) -> FIRST(X1, X2) Furthermore, R contains two SCCs. SCC1: ACTIVATE(n__first(X1, X2)) -> FIRST(X1, X2) FIRST(s(X), cons(Y, Z)) -> ACTIVATE(Z) Removing rules from R by ordering and analyzing Dependency Pairs, Usable Rules, and Usable Equations. This is possible by using the following (C_E-compatible) Polynomial ordering. Polynomial interpretation: POL(n__first(x_1, x_2)) = x_1 + x_2 POL(s(x_1)) = x_1 POL(ACTIVATE(x_1)) = x_1 POL(FIRST(x_1, x_2)) = x_1 + x_2 POL(cons(x_1, x_2)) = x_1 + x_2 The following Dependency Pairs can be deleted: ACTIVATE(n__first(X1, X2)) -> FIRST(X1, X2) FIRST(s(X), cons(Y, Z)) -> ACTIVATE(Z) This transformation is resulting in no new subcycles. SCC2: SEL(s(X), cons(Y, Z)) -> SEL(X, activate(Z)) 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(n__first(x_1, x_2)) = 0 POL(first(x_1, x_2)) = 0 POL(nil) = 0 POL(activate(x_1)) = 0 POL(s(x_1)) = 1 + x_1 POL(SEL(x_1, x_2)) = x_1 POL(from(x_1)) = 0 POL(0) = 0 POL(cons(x_1, x_2)) = 0 resulting in no subcycles. Termination of R successfully shown. Duration: 0.693 seconds.