Term Rewriting System R: [X, L, X1, X2] a__incr(nil) -> nil a__incr(cons(X, L)) -> cons(s(mark(X)), incr(L)) a__incr(X) -> incr(X) a__adx(nil) -> nil a__adx(cons(X, L)) -> a__incr(cons(mark(X), adx(L))) a__adx(X) -> adx(X) a__nats -> a__adx(a__zeros) a__nats -> nats a__zeros -> cons(0, zeros) a__zeros -> zeros a__head(cons(X, L)) -> mark(X) a__head(X) -> head(X) a__tail(cons(X, L)) -> mark(L) a__tail(X) -> tail(X) mark(incr(X)) -> a__incr(mark(X)) mark(adx(X)) -> a__adx(mark(X)) mark(nats) -> a__nats mark(zeros) -> a__zeros mark(head(X)) -> a__head(mark(X)) mark(tail(X)) -> a__tail(mark(X)) mark(nil) -> nil mark(cons(X1, X2)) -> cons(mark(X1), X2) mark(s(X)) -> s(mark(X)) mark(0) -> 0 Termination of R to be shown. Removing the following rules from R which fullfill a polynomial ordering: a__adx(nil) -> nil where the Polynomial interpretation: POL(nil) = 1 POL(s(x_1)) = x_1 POL(a__adx(x_1)) = 2*x_1 POL(a__tail(x_1)) = x_1 POL(nats) = 0 POL(mark(x_1)) = x_1 POL(zeros) = 0 POL(0) = 0 POL(a__incr(x_1)) = x_1 POL(head(x_1)) = x_1 POL(cons(x_1, x_2)) = x_1 + x_2 POL(tail(x_1)) = x_1 POL(a__head(x_1)) = x_1 POL(adx(x_1)) = 2*x_1 POL(a__zeros) = 0 POL(incr(x_1)) = x_1 POL(a__nats) = 0 was used. Not all Rules of R can be deleted, so we still have to regard a part of R. Removing the following rules from R which fullfill a polynomial ordering: a__nats -> a__adx(a__zeros) where the Polynomial interpretation: POL(nil) = 0 POL(s(x_1)) = x_1 POL(a__adx(x_1)) = x_1 POL(a__tail(x_1)) = x_1 POL(nats) = 1 POL(mark(x_1)) = x_1 POL(zeros) = 0 POL(0) = 0 POL(a__incr(x_1)) = x_1 POL(cons(x_1, x_2)) = x_1 + x_2 POL(head(x_1)) = x_1 POL(tail(x_1)) = x_1 POL(a__head(x_1)) = x_1 POL(adx(x_1)) = x_1 POL(a__zeros) = 0 POL(incr(x_1)) = x_1 POL(a__nats) = 1 was used. Not all Rules of R can be deleted, so we still have to regard a part of R. Removing the following rules from R which fullfill a polynomial ordering: a__head(cons(X, L)) -> mark(X) where the Polynomial interpretation: POL(nil) = 0 POL(s(x_1)) = x_1 POL(a__adx(x_1)) = x_1 POL(a__tail(x_1)) = x_1 POL(nats) = 0 POL(mark(x_1)) = x_1 POL(zeros) = 0 POL(0) = 0 POL(a__incr(x_1)) = x_1 POL(cons(x_1, x_2)) = x_1 + x_2 POL(head(x_1)) = 1 + x_1 POL(tail(x_1)) = x_1 POL(a__head(x_1)) = 1 + x_1 POL(adx(x_1)) = x_1 POL(a__zeros) = 0 POL(incr(x_1)) = x_1 POL(a__nats) = 0 was used. Not all Rules of R can be deleted, so we still have to regard a part of R. Removing the following rules from R which fullfill a polynomial ordering: a__tail(cons(X, L)) -> mark(L) where the Polynomial interpretation: POL(nil) = 0 POL(s(x_1)) = x_1 POL(a__adx(x_1)) = x_1 POL(a__tail(x_1)) = 1 + x_1 POL(nats) = 0 POL(mark(x_1)) = x_1 POL(zeros) = 0 POL(0) = 0 POL(a__incr(x_1)) = x_1 POL(cons(x_1, x_2)) = x_1 + x_2 POL(head(x_1)) = x_1 POL(tail(x_1)) = 1 + x_1 POL(a__head(x_1)) = x_1 POL(adx(x_1)) = x_1 POL(a__zeros) = 0 POL(incr(x_1)) = x_1 POL(a__nats) = 0 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: MARK(nats) -> A__NATS MARK(s(X)) -> MARK(X) MARK(head(X)) -> A__HEAD(mark(X)) MARK(head(X)) -> MARK(X) MARK(cons(X1, X2)) -> MARK(X1) MARK(incr(X)) -> A__INCR(mark(X)) MARK(incr(X)) -> MARK(X) MARK(tail(X)) -> A__TAIL(mark(X)) MARK(tail(X)) -> MARK(X) MARK(zeros) -> A__ZEROS MARK(adx(X)) -> A__ADX(mark(X)) MARK(adx(X)) -> MARK(X) A__INCR(cons(X, L)) -> MARK(X) A__ADX(cons(X, L)) -> A__INCR(cons(mark(X), adx(L))) A__ADX(cons(X, L)) -> MARK(X) Furthermore, R contains one SCC. SCC1: MARK(adx(X)) -> MARK(X) A__ADX(cons(X, L)) -> MARK(X) A__ADX(cons(X, L)) -> A__INCR(cons(mark(X), adx(L))) MARK(adx(X)) -> A__ADX(mark(X)) MARK(tail(X)) -> MARK(X) MARK(incr(X)) -> MARK(X) A__INCR(cons(X, L)) -> MARK(X) MARK(incr(X)) -> A__INCR(mark(X)) MARK(cons(X1, X2)) -> MARK(X1) MARK(head(X)) -> MARK(X) MARK(s(X)) -> MARK(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(nil) = 0 POL(A__INCR(x_1)) = x_1 POL(a__adx(x_1)) = 1 + x_1 POL(s(x_1)) = x_1 POL(a__tail(x_1)) = x_1 POL(nats) = 0 POL(MARK(x_1)) = x_1 POL(mark(x_1)) = x_1 POL(zeros) = 0 POL(A__ADX(x_1)) = 1 + x_1 POL(0) = 0 POL(a__incr(x_1)) = x_1 POL(head(x_1)) = x_1 POL(cons(x_1, x_2)) = x_1 + x_2 POL(tail(x_1)) = x_1 POL(a__head(x_1)) = x_1 POL(adx(x_1)) = 1 + x_1 POL(incr(x_1)) = x_1 POL(a__zeros) = 0 POL(a__nats) = 0 The following Dependency Pairs can be deleted: MARK(adx(X)) -> MARK(X) A__ADX(cons(X, L)) -> MARK(X) No rules of R can be deleted. This transformation is resulting in one new subcycle: SCC1.MRR1: MARK(adx(X)) -> A__ADX(mark(X)) MARK(tail(X)) -> MARK(X) MARK(incr(X)) -> MARK(X) MARK(incr(X)) -> A__INCR(mark(X)) MARK(cons(X1, X2)) -> MARK(X1) MARK(head(X)) -> MARK(X) MARK(s(X)) -> MARK(X) A__INCR(cons(X, L)) -> MARK(X) A__ADX(cons(X, L)) -> A__INCR(cons(mark(X), adx(L))) 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(nil) = 0 POL(A__INCR(x_1)) = x_1 POL(a__adx(x_1)) = x_1 POL(s(x_1)) = x_1 POL(a__tail(x_1)) = x_1 POL(nats) = 0 POL(MARK(x_1)) = x_1 POL(mark(x_1)) = x_1 POL(zeros) = 0 POL(A__ADX(x_1)) = x_1 POL(0) = 0 POL(a__incr(x_1)) = x_1 POL(head(x_1)) = 1 + x_1 POL(cons(x_1, x_2)) = x_1 + x_2 POL(tail(x_1)) = x_1 POL(a__head(x_1)) = 1 + x_1 POL(adx(x_1)) = x_1 POL(incr(x_1)) = x_1 POL(a__zeros) = 0 POL(a__nats) = 0 The following Dependency Pairs can be deleted: MARK(head(X)) -> MARK(X) No rules of R can be deleted. This transformation is resulting in one new subcycle: SCC1.MRR1.MRR1: MARK(tail(X)) -> MARK(X) MARK(incr(X)) -> MARK(X) MARK(incr(X)) -> A__INCR(mark(X)) MARK(cons(X1, X2)) -> MARK(X1) MARK(s(X)) -> MARK(X) A__INCR(cons(X, L)) -> MARK(X) A__ADX(cons(X, L)) -> A__INCR(cons(mark(X), adx(L))) MARK(adx(X)) -> A__ADX(mark(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(nil) = 0 POL(A__INCR(x_1)) = x_1 POL(a__adx(x_1)) = x_1 POL(s(x_1)) = x_1 POL(a__tail(x_1)) = 1 + x_1 POL(nats) = 0 POL(MARK(x_1)) = x_1 POL(mark(x_1)) = x_1 POL(zeros) = 0 POL(A__ADX(x_1)) = x_1 POL(0) = 0 POL(a__incr(x_1)) = x_1 POL(head(x_1)) = x_1 POL(cons(x_1, x_2)) = x_1 + x_2 POL(tail(x_1)) = 1 + x_1 POL(a__head(x_1)) = x_1 POL(adx(x_1)) = x_1 POL(incr(x_1)) = x_1 POL(a__zeros) = 0 POL(a__nats) = 0 The following Dependency Pairs can be deleted: MARK(tail(X)) -> MARK(X) No rules of R can be deleted. This transformation is resulting in one new subcycle: SCC1.MRR1.MRR1.MRR1: A__ADX(cons(X, L)) -> A__INCR(cons(mark(X), adx(L))) MARK(adx(X)) -> A__ADX(mark(X)) A__INCR(cons(X, L)) -> MARK(X) MARK(incr(X)) -> A__INCR(mark(X)) MARK(cons(X1, X2)) -> MARK(X1) MARK(s(X)) -> MARK(X) MARK(incr(X)) -> MARK(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: a__adx(X) -> adx(X) a__adx(cons(X, L)) -> a__incr(cons(mark(X), adx(L))) mark(nats) -> a__nats mark(s(X)) -> s(mark(X)) mark(head(X)) -> a__head(mark(X)) mark(nil) -> nil mark(cons(X1, X2)) -> cons(mark(X1), X2) mark(incr(X)) -> a__incr(mark(X)) mark(tail(X)) -> a__tail(mark(X)) mark(zeros) -> a__zeros mark(adx(X)) -> a__adx(mark(X)) mark(0) -> 0 a__incr(X) -> incr(X) a__incr(cons(X, L)) -> cons(s(mark(X)), incr(L)) a__incr(nil) -> nil a__nats -> nats a__head(X) -> head(X) a__tail(X) -> tail(X) a__zeros -> cons(0, zeros) a__zeros -> zeros Used ordering: Polynomial ordering with Polynomial interpretation: POL(A__INCR(x_1)) = x_1 POL(nil) = 0 POL(a__adx(x_1)) = x_1 POL(s(x_1)) = x_1 POL(a__tail(x_1)) = 0 POL(nats) = 0 POL(MARK(x_1)) = 1 + x_1 POL(mark(x_1)) = x_1 POL(zeros) = 1 POL(A__ADX(x_1)) = 1 + x_1 POL(0) = 0 POL(a__incr(x_1)) = x_1 POL(cons(x_1, x_2)) = 1 + x_1 POL(head(x_1)) = 0 POL(tail(x_1)) = 0 POL(a__head(x_1)) = 0 POL(adx(x_1)) = x_1 POL(incr(x_1)) = x_1 POL(a__zeros) = 1 POL(a__nats) = 0 resulting in one subcycle. SCC1.MRR1.MRR1.MRR1.Polo1: MARK(incr(X)) -> MARK(X) MARK(s(X)) -> MARK(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(s(x_1)) = 1 + x_1 POL(MARK(x_1)) = 1 + x_1 POL(incr(x_1)) = 1 + x_1 The following Dependency Pairs can be deleted: MARK(incr(X)) -> MARK(X) MARK(s(X)) -> MARK(X) This transformation is resulting in no new subcycles. Termination of R successfully shown. Duration: 5.648 seconds.