Term Rewriting System R: [x, y] active(f(x)) -> mark(x) active(f(x)) -> f(active(x)) top(active(c)) -> top(mark(c)) top(mark(x)) -> top(check(x)) top(found(x)) -> top(active(x)) check(f(x)) -> f(check(x)) check(x) -> start(match(f(X), x)) match(f(x), f(y)) -> f(match(x, y)) match(X, x) -> proper(x) proper(c) -> ok(c) proper(f(x)) -> f(proper(x)) f(ok(x)) -> ok(f(x)) f(found(x)) -> found(f(x)) f(mark(x)) -> mark(f(x)) start(ok(x)) -> found(x) Termination of R to be shown. R contains the following Dependency Pairs: F(found(x)) -> F(x) F(ok(x)) -> F(x) F(mark(x)) -> F(x) PROPER(f(x)) -> F(proper(x)) PROPER(f(x)) -> PROPER(x) TOP(mark(x)) -> TOP(check(x)) TOP(mark(x)) -> CHECK(x) TOP(active(c)) -> TOP(mark(c)) TOP(found(x)) -> TOP(active(x)) TOP(found(x)) -> ACTIVE(x) CHECK(x) -> START(match(f(X), x)) CHECK(x) -> MATCH(f(X), x) CHECK(x) -> F(X) CHECK(f(x)) -> F(check(x)) CHECK(f(x)) -> CHECK(x) MATCH(f(x), f(y)) -> F(match(x, y)) MATCH(f(x), f(y)) -> MATCH(x, y) MATCH(X, x) -> PROPER(x) ACTIVE(f(x)) -> F(active(x)) ACTIVE(f(x)) -> ACTIVE(x) Furthermore, R contains six SCCs. SCC1: F(mark(x)) -> F(x) F(ok(x)) -> F(x) F(found(x)) -> F(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(mark(x_1)) = 1 + x_1 POL(F(x_1)) = 1 + x_1 POL(ok(x_1)) = 1 + x_1 POL(found(x_1)) = 1 + x_1 The following Dependency Pairs can be deleted: F(mark(x)) -> F(x) F(ok(x)) -> F(x) F(found(x)) -> F(x) This transformation is resulting in no new subcycles. SCC2: PROPER(f(x)) -> 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(PROPER(x_1)) = 1 + x_1 POL(f(x_1)) = 1 + x_1 The following Dependency Pairs can be deleted: PROPER(f(x)) -> PROPER(x) This transformation is resulting in no new subcycles. SCC3: ACTIVE(f(x)) -> 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)) = 1 + x_1 POL(f(x_1)) = 1 + x_1 The following Dependency Pairs can be deleted: ACTIVE(f(x)) -> ACTIVE(x) This transformation is resulting in no new subcycles. SCC4: MATCH(f(x), f(y)) -> MATCH(x, y) 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(f(x_1)) = 1 + x_1 POL(MATCH(x_1, x_2)) = 1 + x_1 + x_2 The following Dependency Pairs can be deleted: MATCH(f(x), f(y)) -> MATCH(x, y) This transformation is resulting in no new subcycles. SCC5: CHECK(f(x)) -> CHECK(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(CHECK(x_1)) = 1 + x_1 POL(f(x_1)) = 1 + x_1 The following Dependency Pairs can be deleted: CHECK(f(x)) -> CHECK(x) This transformation is resulting in no new subcycles. SCC6: TOP(active(c)) -> TOP(mark(c)) TOP(found(x)) -> TOP(active(x)) TOP(mark(x)) -> TOP(check(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(start(x_1)) = x_1 POL(proper(x_1)) = x_1 POL(X) = 0 POL(TOP(x_1)) = x_1 POL(mark(x_1)) = x_1 POL(match(x_1, x_2)) = x_1 + x_2 POL(check(x_1)) = x_1 POL(ok(x_1)) = x_1 POL(c) = 0 POL(f(x_1)) = x_1 POL(found(x_1)) = x_1 No Dependency Pairs can be deleted. The following rules of R can be deleted: top(mark(x)) -> top(check(x)) top(active(c)) -> top(mark(c)) top(found(x)) -> top(active(x)) This transformation is resulting in one new subcycle: SCC6.MRR1: TOP(found(x)) -> TOP(active(x)) TOP(mark(x)) -> TOP(check(x)) TOP(active(c)) -> TOP(mark(c)) By using a polynomial ordering, at least one Dependency Pair of this SCC can be strictly oriented. Additionally, the following rules can be oriented: active(f(x)) -> mark(x) active(f(x)) -> f(active(x)) check(x) -> start(match(f(X), x)) check(f(x)) -> f(check(x)) match(f(x), f(y)) -> f(match(x, y)) match(X, x) -> proper(x) start(ok(x)) -> found(x) proper(f(x)) -> f(proper(x)) proper(c) -> ok(c) f(found(x)) -> found(f(x)) f(ok(x)) -> ok(f(x)) f(mark(x)) -> mark(f(x)) Used ordering: Polynomial ordering with Polynomial interpretation: POL(active(x_1)) = x_1 POL(start(x_1)) = x_1 POL(proper(x_1)) = 1 POL(X) = 1 POL(TOP(x_1)) = 1 + x_1 POL(mark(x_1)) = 0 POL(match(x_1, x_2)) = x_1 POL(check(x_1)) = 0 POL(ok(x_1)) = x_1 POL(f(x_1)) = 0 POL(c) = 1 POL(found(x_1)) = x_1 resulting in one subcycle. SCC6.MRR1.Polo1: TOP(mark(x)) -> TOP(check(x)) TOP(found(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(start(x_1)) = x_1 POL(proper(x_1)) = x_1 POL(X) = 0 POL(TOP(x_1)) = 1 + x_1 POL(mark(x_1)) = 1 + x_1 POL(match(x_1, x_2)) = x_1 + x_2 POL(check(x_1)) = 1 + x_1 POL(ok(x_1)) = x_1 POL(f(x_1)) = 1 + x_1 POL(c) = 0 POL(found(x_1)) = x_1 No Dependency Pairs can be deleted. The following rules of R can be deleted: match(f(x), f(y)) -> f(match(x, y)) This transformation is resulting in one new subcycle: SCC6.MRR1.Polo1.MRR1: TOP(found(x)) -> TOP(active(x)) TOP(mark(x)) -> TOP(check(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: active(f(x)) -> mark(x) active(f(x)) -> f(active(x)) check(x) -> start(match(f(X), x)) check(f(x)) -> f(check(x)) match(X, x) -> proper(x) start(ok(x)) -> found(x) proper(f(x)) -> f(proper(x)) proper(c) -> ok(c) f(found(x)) -> found(f(x)) f(ok(x)) -> ok(f(x)) f(mark(x)) -> mark(f(x)) Used ordering: Polynomial ordering with Polynomial interpretation: POL(active(x_1)) = x_1 POL(start(x_1)) = 1 + x_1 POL(proper(x_1)) = x_1 POL(X) = 0 POL(TOP(x_1)) = 1 + x_1 POL(mark(x_1)) = 1 + x_1 POL(match(x_1, x_2)) = x_2 POL(check(x_1)) = 1 + x_1 POL(ok(x_1)) = x_1 POL(f(x_1)) = 1 + x_1 POL(c) = 0 POL(found(x_1)) = 1 + x_1 resulting in one subcycle. SCC6.MRR1.Polo1.MRR1.Polo1: TOP(mark(x)) -> TOP(check(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(start(x_1)) = x_1 POL(proper(x_1)) = x_1 POL(X) = 0 POL(TOP(x_1)) = x_1 POL(mark(x_1)) = x_1 POL(match(x_1, x_2)) = x_1 + x_2 POL(check(x_1)) = x_1 POL(ok(x_1)) = x_1 POL(f(x_1)) = x_1 POL(c) = 0 POL(found(x_1)) = x_1 No Dependency Pairs can be deleted. The following rules of R can be deleted: active(f(x)) -> mark(x) active(f(x)) -> f(active(x)) This transformation is resulting in one new subcycle: SCC6.MRR1.Polo1.MRR1.Polo1.MRR1: TOP(mark(x)) -> TOP(check(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(start(x_1)) = x_1 POL(proper(x_1)) = x_1 POL(X) = 0 POL(TOP(x_1)) = x_1 POL(mark(x_1)) = 1 + x_1 POL(match(x_1, x_2)) = x_1 + x_2 POL(check(x_1)) = x_1 POL(ok(x_1)) = x_1 POL(f(x_1)) = x_1 POL(c) = 0 POL(found(x_1)) = x_1 The following Dependency Pairs can be deleted: TOP(mark(x)) -> TOP(check(x)) This transformation is resulting in no new subcycles. Termination of R successfully shown. Duration: 1.966 seconds.