Term Rewriting System R: [Z, X, Y, X1, X2] fst(0, Z) -> nil fst(s(X), cons(Y, Z)) -> cons(Y, n__fst(activate(X), activate(Z))) fst(X1, X2) -> n__fst(X1, X2) from(X) -> cons(X, n__from(n__s(X))) from(X) -> n__from(X) add(0, X) -> X add(s(X), Y) -> s(n__add(activate(X), Y)) add(X1, X2) -> n__add(X1, X2) len(nil) -> 0 len(cons(X, Z)) -> s(n__len(activate(Z))) len(X) -> n__len(X) s(X) -> n__s(X) activate(n__fst(X1, X2)) -> fst(activate(X1), activate(X2)) activate(n__from(X)) -> from(activate(X)) activate(n__s(X)) -> s(X) activate(n__add(X1, X2)) -> add(activate(X1), activate(X2)) activate(n__len(X)) -> len(activate(X)) activate(X) -> X Termination of R to be shown. R contains the following Dependency Pairs: ACTIVATE(n__add(X1, X2)) -> ADD(activate(X1), activate(X2)) ACTIVATE(n__add(X1, X2)) -> ACTIVATE(X1) ACTIVATE(n__add(X1, X2)) -> ACTIVATE(X2) ACTIVATE(n__len(X)) -> LEN(activate(X)) ACTIVATE(n__len(X)) -> ACTIVATE(X) ACTIVATE(n__s(X)) -> S(X) ACTIVATE(n__fst(X1, X2)) -> FST(activate(X1), activate(X2)) ACTIVATE(n__fst(X1, X2)) -> ACTIVATE(X1) ACTIVATE(n__fst(X1, X2)) -> ACTIVATE(X2) ACTIVATE(n__from(X)) -> FROM(activate(X)) ACTIVATE(n__from(X)) -> ACTIVATE(X) ADD(s(X), Y) -> S(n__add(activate(X), Y)) ADD(s(X), Y) -> ACTIVATE(X) LEN(cons(X, Z)) -> S(n__len(activate(Z))) LEN(cons(X, Z)) -> ACTIVATE(Z) FST(s(X), cons(Y, Z)) -> ACTIVATE(X) FST(s(X), cons(Y, Z)) -> ACTIVATE(Z) Furthermore, R contains one SCC. SCC1: FST(s(X), cons(Y, Z)) -> ACTIVATE(Z) ACTIVATE(n__from(X)) -> ACTIVATE(X) ACTIVATE(n__fst(X1, X2)) -> ACTIVATE(X2) ACTIVATE(n__fst(X1, X2)) -> ACTIVATE(X1) FST(s(X), cons(Y, Z)) -> ACTIVATE(X) ACTIVATE(n__fst(X1, X2)) -> FST(activate(X1), activate(X2)) ACTIVATE(n__len(X)) -> ACTIVATE(X) LEN(cons(X, Z)) -> ACTIVATE(Z) ACTIVATE(n__len(X)) -> LEN(activate(X)) ACTIVATE(n__add(X1, X2)) -> ACTIVATE(X2) ACTIVATE(n__add(X1, X2)) -> ACTIVATE(X1) ADD(s(X), Y) -> ACTIVATE(X) ACTIVATE(n__add(X1, X2)) -> ADD(activate(X1), activate(X2)) By using a polynomial ordering, at least one Dependency Pair of this SCC can be strictly oriented. Additionally, the following rules can be oriented: add(X1, X2) -> n__add(X1, X2) add(0, X) -> X add(s(X), Y) -> s(n__add(activate(X), Y)) activate(n__add(X1, X2)) -> add(activate(X1), activate(X2)) activate(n__len(X)) -> len(activate(X)) activate(n__s(X)) -> s(X) activate(X) -> X activate(n__fst(X1, X2)) -> fst(activate(X1), activate(X2)) activate(n__from(X)) -> from(activate(X)) fst(s(X), cons(Y, Z)) -> cons(Y, n__fst(activate(X), activate(Z))) fst(0, Z) -> nil fst(X1, X2) -> n__fst(X1, X2) len(nil) -> 0 len(X) -> n__len(X) len(cons(X, Z)) -> s(n__len(activate(Z))) 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(add(x_1, x_2)) = x_1 + x_2 POL(nil) = 0 POL(activate(x_1)) = x_1 POL(s(x_1)) = x_1 POL(n__fst(x_1, x_2)) = 1 + x_1 + x_2 POL(fst(x_1, x_2)) = 1 + x_1 + x_2 POL(0) = 0 POL(cons(x_1, x_2)) = x_2 POL(n__from(x_1)) = x_1 POL(ADD(x_1, x_2)) = x_1 POL(ACTIVATE(x_1)) = x_1 POL(FST(x_1, x_2)) = 1 + x_1 + x_2 POL(from(x_1)) = x_1 POL(LEN(x_1)) = x_1 POL(len(x_1)) = x_1 POL(n__len(x_1)) = x_1 POL(n__add(x_1, x_2)) = x_1 + x_2 POL(n__s(x_1)) = x_1 resulting in one subcycle. SCC1.Polo1: ACTIVATE(n__len(X)) -> ACTIVATE(X) LEN(cons(X, Z)) -> ACTIVATE(Z) ACTIVATE(n__len(X)) -> LEN(activate(X)) ACTIVATE(n__add(X1, X2)) -> ACTIVATE(X2) ACTIVATE(n__add(X1, X2)) -> ACTIVATE(X1) ADD(s(X), Y) -> ACTIVATE(X) ACTIVATE(n__add(X1, X2)) -> ADD(activate(X1), activate(X2)) ACTIVATE(n__from(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: add(X1, X2) -> n__add(X1, X2) add(0, X) -> X add(s(X), Y) -> s(n__add(activate(X), Y)) activate(n__add(X1, X2)) -> add(activate(X1), activate(X2)) activate(n__len(X)) -> len(activate(X)) activate(n__s(X)) -> s(X) activate(X) -> X activate(n__fst(X1, X2)) -> fst(activate(X1), activate(X2)) activate(n__from(X)) -> from(activate(X)) fst(s(X), cons(Y, Z)) -> cons(Y, n__fst(activate(X), activate(Z))) fst(0, Z) -> nil fst(X1, X2) -> n__fst(X1, X2) len(nil) -> 0 len(X) -> n__len(X) len(cons(X, Z)) -> s(n__len(activate(Z))) 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(add(x_1, x_2)) = x_1 + x_2 POL(nil) = 0 POL(activate(x_1)) = x_1 POL(s(x_1)) = x_1 POL(n__fst(x_1, x_2)) = 0 POL(fst(x_1, x_2)) = 0 POL(0) = 0 POL(cons(x_1, x_2)) = x_2 POL(n__from(x_1)) = x_1 POL(ADD(x_1, x_2)) = x_1 POL(ACTIVATE(x_1)) = x_1 POL(LEN(x_1)) = x_1 POL(from(x_1)) = x_1 POL(len(x_1)) = 1 + x_1 POL(n__len(x_1)) = 1 + x_1 POL(n__add(x_1, x_2)) = x_1 + x_2 POL(n__s(x_1)) = x_1 resulting in one subcycle. SCC1.Polo1.Polo1: ACTIVATE(n__from(X)) -> ACTIVATE(X) ACTIVATE(n__add(X1, X2)) -> ACTIVATE(X2) ACTIVATE(n__add(X1, X2)) -> ACTIVATE(X1) ADD(s(X), Y) -> ACTIVATE(X) ACTIVATE(n__add(X1, X2)) -> ADD(activate(X1), activate(X2)) By using a polynomial ordering, at least one Dependency Pair of this SCC can be strictly oriented. Additionally, the following rules can be oriented: add(X1, X2) -> n__add(X1, X2) add(0, X) -> X add(s(X), Y) -> s(n__add(activate(X), Y)) activate(n__add(X1, X2)) -> add(activate(X1), activate(X2)) activate(n__len(X)) -> len(activate(X)) activate(n__s(X)) -> s(X) activate(X) -> X activate(n__fst(X1, X2)) -> fst(activate(X1), activate(X2)) activate(n__from(X)) -> from(activate(X)) fst(s(X), cons(Y, Z)) -> cons(Y, n__fst(activate(X), activate(Z))) fst(0, Z) -> nil fst(X1, X2) -> n__fst(X1, X2) len(nil) -> 0 len(X) -> n__len(X) len(cons(X, Z)) -> s(n__len(activate(Z))) 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(add(x_1, x_2)) = x_1 + x_2 POL(nil) = 0 POL(activate(x_1)) = x_1 POL(s(x_1)) = x_1 POL(n__fst(x_1, x_2)) = 0 POL(fst(x_1, x_2)) = 0 POL(0) = 0 POL(cons(x_1, x_2)) = 0 POL(n__from(x_1)) = 1 + x_1 POL(ADD(x_1, x_2)) = x_1 POL(ACTIVATE(x_1)) = x_1 POL(from(x_1)) = 1 + x_1 POL(len(x_1)) = 0 POL(n__len(x_1)) = 0 POL(n__add(x_1, x_2)) = x_1 + x_2 POL(n__s(x_1)) = x_1 resulting in one subcycle. SCC1.Polo1.Polo1.Polo1: ACTIVATE(n__add(X1, X2)) -> ACTIVATE(X1) ADD(s(X), Y) -> ACTIVATE(X) ACTIVATE(n__add(X1, X2)) -> ADD(activate(X1), activate(X2)) ACTIVATE(n__add(X1, X2)) -> ACTIVATE(X2) By using a polynomial ordering, at least one Dependency Pair of this SCC can be strictly oriented. Additionally, the following rules can be oriented: add(X1, X2) -> n__add(X1, X2) add(0, X) -> X add(s(X), Y) -> s(n__add(activate(X), Y)) activate(n__add(X1, X2)) -> add(activate(X1), activate(X2)) activate(n__len(X)) -> len(activate(X)) activate(n__s(X)) -> s(X) activate(X) -> X activate(n__fst(X1, X2)) -> fst(activate(X1), activate(X2)) activate(n__from(X)) -> from(activate(X)) fst(s(X), cons(Y, Z)) -> cons(Y, n__fst(activate(X), activate(Z))) fst(0, Z) -> nil fst(X1, X2) -> n__fst(X1, X2) len(nil) -> 0 len(X) -> n__len(X) len(cons(X, Z)) -> s(n__len(activate(Z))) 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(add(x_1, x_2)) = 1 + x_1 + x_2 POL(nil) = 0 POL(activate(x_1)) = x_1 POL(s(x_1)) = x_1 POL(n__fst(x_1, x_2)) = 0 POL(fst(x_1, x_2)) = 0 POL(0) = 0 POL(cons(x_1, x_2)) = 0 POL(n__from(x_1)) = 0 POL(ADD(x_1, x_2)) = x_1 POL(ACTIVATE(x_1)) = x_1 POL(from(x_1)) = 0 POL(len(x_1)) = 0 POL(n__len(x_1)) = 0 POL(n__add(x_1, x_2)) = 1 + x_1 + x_2 POL(n__s(x_1)) = x_1 resulting in no subcycles. Termination of R successfully shown. Duration: 3.875 seconds.