Term Rewriting System R: [X, XS, X1, X2] active(zeros) -> mark(cons(0, zeros)) active(tail(cons(X, XS))) -> mark(XS) active(cons(X1, X2)) -> cons(active(X1), X2) active(tail(X)) -> tail(active(X)) cons(mark(X1), X2) -> mark(cons(X1, X2)) cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) tail(mark(X)) -> mark(tail(X)) tail(ok(X)) -> ok(tail(X)) proper(zeros) -> ok(zeros) proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) proper(0) -> ok(0) proper(tail(X)) -> tail(proper(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Termination of R to be shown. Removing the following rules from R which fullfill a polynomial ordering: active(tail(cons(X, XS))) -> mark(XS) where the Polynomial interpretation: POL(active(x_1)) = x_1 POL(proper(x_1)) = x_1 POL(tail(x_1)) = 1 + x_1 POL(top(x_1)) = 1 + x_1 POL(mark(x_1)) = x_1 POL(zeros) = 0 POL(ok(x_1)) = x_1 POL(0) = 0 POL(cons(x_1, x_2)) = x_1 + x_2 was used. Not all Rules of R can be deleted, so we still have to regard a part of R. R contains the following Dependency Pairs: ACTIVE(cons(X1, X2)) -> CONS(active(X1), X2) ACTIVE(cons(X1, X2)) -> ACTIVE(X1) ACTIVE(zeros) -> CONS(0, zeros) ACTIVE(tail(X)) -> TAIL(active(X)) ACTIVE(tail(X)) -> ACTIVE(X) CONS(mark(X1), X2) -> CONS(X1, X2) CONS(ok(X1), ok(X2)) -> CONS(X1, X2) TAIL(mark(X)) -> TAIL(X) TAIL(ok(X)) -> TAIL(X) PROPER(cons(X1, X2)) -> CONS(proper(X1), proper(X2)) PROPER(cons(X1, X2)) -> PROPER(X1) PROPER(cons(X1, X2)) -> PROPER(X2) PROPER(tail(X)) -> TAIL(proper(X)) PROPER(tail(X)) -> PROPER(X) TOP(mark(X)) -> TOP(proper(X)) TOP(mark(X)) -> PROPER(X) TOP(ok(X)) -> TOP(active(X)) TOP(ok(X)) -> ACTIVE(X) Furthermore, R contains five SCCs. SCC1: CONS(ok(X1), ok(X2)) -> CONS(X1, X2) CONS(mark(X1), X2) -> CONS(X1, X2) 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(mark(x_1)) = 1 + x_1 POL(ok(x_1)) = 1 + x_1 POL(CONS(x_1, x_2)) = 1 + x_1 + x_2 The following Dependency Pairs can be deleted: CONS(ok(X1), ok(X2)) -> CONS(X1, X2) CONS(mark(X1), X2) -> CONS(X1, X2) This transformation is resulting in no new subcycles. SCC2: TAIL(ok(X)) -> TAIL(X) TAIL(mark(X)) -> TAIL(X) 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(TAIL(x_1)) = 1 + x_1 POL(mark(x_1)) = 1 + x_1 POL(ok(x_1)) = 1 + x_1 The following Dependency Pairs can be deleted: TAIL(ok(X)) -> TAIL(X) TAIL(mark(X)) -> TAIL(X) This transformation is resulting in no new subcycles. SCC3: ACTIVE(tail(X)) -> ACTIVE(X) ACTIVE(cons(X1, X2)) -> ACTIVE(X1) 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(tail(x_1)) = 1 + x_1 POL(ACTIVE(x_1)) = 1 + x_1 POL(cons(x_1, x_2)) = 1 + x_1 + x_2 The following Dependency Pairs can be deleted: ACTIVE(tail(X)) -> ACTIVE(X) ACTIVE(cons(X1, X2)) -> ACTIVE(X1) This transformation is resulting in no new subcycles. SCC4: PROPER(tail(X)) -> PROPER(X) PROPER(cons(X1, X2)) -> PROPER(X2) PROPER(cons(X1, X2)) -> PROPER(X1) 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(PROPER(x_1)) = 1 + x_1 POL(tail(x_1)) = 1 + x_1 POL(cons(x_1, x_2)) = 1 + x_1 + x_2 The following Dependency Pairs can be deleted: PROPER(tail(X)) -> PROPER(X) PROPER(cons(X1, X2)) -> PROPER(X2) PROPER(cons(X1, X2)) -> PROPER(X1) This transformation is resulting in no new subcycles. SCC5: TOP(ok(X)) -> TOP(active(X)) TOP(mark(X)) -> TOP(proper(X)) 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(active(x_1)) = x_1 POL(proper(x_1)) = x_1 POL(tail(x_1)) = x_1 POL(TOP(x_1)) = x_1 POL(mark(x_1)) = x_1 POL(ok(x_1)) = x_1 POL(zeros) = 0 POL(0) = 0 POL(cons(x_1, x_2)) = x_1 + x_2 No Dependency Pairs can be deleted. The following rules of R can be deleted: top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) This transformation is resulting in one new subcycle: SCC5.MRR1: TOP(mark(X)) -> TOP(proper(X)) TOP(ok(X)) -> TOP(active(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: proper(zeros) -> ok(zeros) proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) proper(tail(X)) -> tail(proper(X)) proper(0) -> ok(0) active(cons(X1, X2)) -> cons(active(X1), X2) active(zeros) -> mark(cons(0, zeros)) active(tail(X)) -> tail(active(X)) cons(mark(X1), X2) -> mark(cons(X1, X2)) cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) tail(mark(X)) -> mark(tail(X)) tail(ok(X)) -> ok(tail(X)) Used ordering: Polynomial ordering with Polynomial interpretation: POL(active(x_1)) = x_1 POL(proper(x_1)) = x_1 POL(tail(x_1)) = x_1 POL(TOP(x_1)) = x_1 POL(mark(x_1)) = 1 + x_1 POL(zeros) = 1 POL(ok(x_1)) = x_1 POL(0) = 0 POL(cons(x_1, x_2)) = x_1 resulting in one subcycle. SCC5.MRR1.Polo1: TOP(ok(X)) -> TOP(active(X)) 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(active(x_1)) = x_1 POL(tail(x_1)) = x_1 POL(TOP(x_1)) = x_1 POL(mark(x_1)) = x_1 POL(ok(x_1)) = x_1 POL(zeros) = 0 POL(0) = 0 POL(cons(x_1, x_2)) = x_1 + x_2 No Dependency Pairs can be deleted. The following rules of R can be deleted: proper(zeros) -> ok(zeros) proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) proper(tail(X)) -> tail(proper(X)) proper(0) -> ok(0) This transformation is resulting in one new subcycle: SCC5.MRR1.Polo1.MRR1: TOP(ok(X)) -> TOP(active(X)) 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(active(x_1)) = x_1 POL(tail(x_1)) = x_1 POL(TOP(x_1)) = x_1 POL(mark(x_1)) = x_1 POL(ok(x_1)) = 1 + x_1 POL(zeros) = 0 POL(0) = 0 POL(cons(x_1, x_2)) = x_1 + x_2 The following Dependency Pairs can be deleted: TOP(ok(X)) -> TOP(active(X)) This transformation is resulting in no new subcycles. Termination of R successfully shown. Duration: 1.545 seconds.