TIMEOUT
The TRS could not be proven terminating. The proof attempt took 60000 ms.
The following DP Processors were used
Problem 1 was processed with processor DependencyGraph (874ms).
| Problem 2 remains open; application of the following processors failed [SubtermCriterion (2ms), DependencyGraph (6ms), PolynomialLinearRange4iUR (2976ms), DependencyGraph (2ms), PolynomialLinearRange8NegiUR (timeout), DependencyGraph (2ms), ReductionPairSAT (3019ms), DependencyGraph (44ms), SizeChangePrinciple (timeout)].
| Problem 3 was processed with processor SubtermCriterion (1ms).
| Problem 4 was processed with processor SubtermCriterion (1ms).
| Problem 5 was processed with processor SubtermCriterion (3ms).
| Problem 6 was processed with processor SubtermCriterion (1ms).
| Problem 7 was processed with processor SubtermCriterion (0ms).
| Problem 8 was processed with processor SubtermCriterion (1ms).
| Problem 9 was processed with processor SubtermCriterion (1ms).
| Problem 10 was processed with processor SubtermCriterion (1ms).
The following open problems remain:
Open Dependency Pair Problem 2
Dependency Pairs
| top#(mark(X)) | → | top#(proper(X)) | | top#(ok(X)) | → | top#(active(X)) |
Rewrite Rules
| active(nats) | → | mark(adx(zeros)) | | active(zeros) | → | mark(cons(0, zeros)) |
| active(incr(cons(X, Y))) | → | mark(cons(s(X), incr(Y))) | | active(adx(cons(X, Y))) | → | mark(incr(cons(X, adx(Y)))) |
| active(hd(cons(X, Y))) | → | mark(X) | | active(tl(cons(X, Y))) | → | mark(Y) |
| active(adx(X)) | → | adx(active(X)) | | active(incr(X)) | → | incr(active(X)) |
| active(hd(X)) | → | hd(active(X)) | | active(tl(X)) | → | tl(active(X)) |
| adx(mark(X)) | → | mark(adx(X)) | | incr(mark(X)) | → | mark(incr(X)) |
| hd(mark(X)) | → | mark(hd(X)) | | tl(mark(X)) | → | mark(tl(X)) |
| proper(nats) | → | ok(nats) | | proper(adx(X)) | → | adx(proper(X)) |
| proper(zeros) | → | ok(zeros) | | proper(cons(X1, X2)) | → | cons(proper(X1), proper(X2)) |
| proper(0) | → | ok(0) | | proper(incr(X)) | → | incr(proper(X)) |
| proper(s(X)) | → | s(proper(X)) | | proper(hd(X)) | → | hd(proper(X)) |
| proper(tl(X)) | → | tl(proper(X)) | | adx(ok(X)) | → | ok(adx(X)) |
| cons(ok(X1), ok(X2)) | → | ok(cons(X1, X2)) | | incr(ok(X)) | → | ok(incr(X)) |
| s(ok(X)) | → | ok(s(X)) | | hd(ok(X)) | → | ok(hd(X)) |
| tl(ok(X)) | → | ok(tl(X)) | | top(mark(X)) | → | top(proper(X)) |
| top(ok(X)) | → | top(active(X)) |
Original Signature
Termination of terms over the following signature is verified: tl, mark, hd, nats, 0, s, zeros, adx, active, ok, incr, proper, top, cons
Problem 1: DependencyGraph
Dependency Pair Problem
Dependency Pairs
| proper#(cons(X1, X2)) | → | proper#(X1) | | active#(adx(cons(X, Y))) | → | cons#(X, adx(Y)) |
| active#(adx(X)) | → | active#(X) | | top#(ok(X)) | → | top#(active(X)) |
| active#(incr(cons(X, Y))) | → | cons#(s(X), incr(Y)) | | incr#(ok(X)) | → | incr#(X) |
| cons#(ok(X1), ok(X2)) | → | cons#(X1, X2) | | tl#(ok(X)) | → | tl#(X) |
| proper#(incr(X)) | → | incr#(proper(X)) | | top#(ok(X)) | → | active#(X) |
| active#(tl(X)) | → | tl#(active(X)) | | proper#(adx(X)) | → | proper#(X) |
| proper#(incr(X)) | → | proper#(X) | | adx#(ok(X)) | → | adx#(X) |
| incr#(mark(X)) | → | incr#(X) | | proper#(hd(X)) | → | proper#(X) |
| active#(tl(X)) | → | active#(X) | | top#(mark(X)) | → | proper#(X) |
| active#(adx(cons(X, Y))) | → | adx#(Y) | | active#(incr(cons(X, Y))) | → | incr#(Y) |
| proper#(hd(X)) | → | hd#(proper(X)) | | top#(mark(X)) | → | top#(proper(X)) |
| active#(incr(X)) | → | active#(X) | | active#(adx(X)) | → | adx#(active(X)) |
| active#(adx(cons(X, Y))) | → | incr#(cons(X, adx(Y))) | | proper#(cons(X1, X2)) | → | proper#(X2) |
| hd#(mark(X)) | → | hd#(X) | | active#(incr(X)) | → | incr#(active(X)) |
| active#(hd(X)) | → | hd#(active(X)) | | s#(ok(X)) | → | s#(X) |
| active#(nats) | → | adx#(zeros) | | proper#(adx(X)) | → | adx#(proper(X)) |
| adx#(mark(X)) | → | adx#(X) | | proper#(s(X)) | → | proper#(X) |
| proper#(cons(X1, X2)) | → | cons#(proper(X1), proper(X2)) | | active#(incr(cons(X, Y))) | → | s#(X) |
| tl#(mark(X)) | → | tl#(X) | | proper#(s(X)) | → | s#(proper(X)) |
| active#(hd(X)) | → | active#(X) | | active#(zeros) | → | cons#(0, zeros) |
| proper#(tl(X)) | → | tl#(proper(X)) | | proper#(tl(X)) | → | proper#(X) |
| hd#(ok(X)) | → | hd#(X) |
Rewrite Rules
| active(nats) | → | mark(adx(zeros)) | | active(zeros) | → | mark(cons(0, zeros)) |
| active(incr(cons(X, Y))) | → | mark(cons(s(X), incr(Y))) | | active(adx(cons(X, Y))) | → | mark(incr(cons(X, adx(Y)))) |
| active(hd(cons(X, Y))) | → | mark(X) | | active(tl(cons(X, Y))) | → | mark(Y) |
| active(adx(X)) | → | adx(active(X)) | | active(incr(X)) | → | incr(active(X)) |
| active(hd(X)) | → | hd(active(X)) | | active(tl(X)) | → | tl(active(X)) |
| adx(mark(X)) | → | mark(adx(X)) | | incr(mark(X)) | → | mark(incr(X)) |
| hd(mark(X)) | → | mark(hd(X)) | | tl(mark(X)) | → | mark(tl(X)) |
| proper(nats) | → | ok(nats) | | proper(adx(X)) | → | adx(proper(X)) |
| proper(zeros) | → | ok(zeros) | | proper(cons(X1, X2)) | → | cons(proper(X1), proper(X2)) |
| proper(0) | → | ok(0) | | proper(incr(X)) | → | incr(proper(X)) |
| proper(s(X)) | → | s(proper(X)) | | proper(hd(X)) | → | hd(proper(X)) |
| proper(tl(X)) | → | tl(proper(X)) | | adx(ok(X)) | → | ok(adx(X)) |
| cons(ok(X1), ok(X2)) | → | ok(cons(X1, X2)) | | incr(ok(X)) | → | ok(incr(X)) |
| s(ok(X)) | → | ok(s(X)) | | hd(ok(X)) | → | ok(hd(X)) |
| tl(ok(X)) | → | ok(tl(X)) | | top(mark(X)) | → | top(proper(X)) |
| top(ok(X)) | → | top(active(X)) |
Original Signature
Termination of terms over the following signature is verified: tl, mark, hd, nats, 0, s, zeros, adx, active, ok, incr, proper, cons, top
Strategy
The following SCCs where found
| tl#(mark(X)) → tl#(X) | tl#(ok(X)) → tl#(X) |
| proper#(s(X)) → proper#(X) | proper#(adx(X)) → proper#(X) |
| proper#(cons(X1, X2)) → proper#(X1) | proper#(cons(X1, X2)) → proper#(X2) |
| proper#(incr(X)) → proper#(X) | proper#(hd(X)) → proper#(X) |
| proper#(tl(X)) → proper#(X) |
| hd#(mark(X)) → hd#(X) | hd#(ok(X)) → hd#(X) |
| active#(incr(X)) → active#(X) | active#(adx(X)) → active#(X) |
| active#(hd(X)) → active#(X) | active#(tl(X)) → active#(X) |
| incr#(ok(X)) → incr#(X) | incr#(mark(X)) → incr#(X) |
| cons#(ok(X1), ok(X2)) → cons#(X1, X2) |
| adx#(mark(X)) → adx#(X) | adx#(ok(X)) → adx#(X) |
| top#(mark(X)) → top#(proper(X)) | top#(ok(X)) → top#(active(X)) |
Problem 3: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
| incr#(ok(X)) | → | incr#(X) | | incr#(mark(X)) | → | incr#(X) |
Rewrite Rules
| active(nats) | → | mark(adx(zeros)) | | active(zeros) | → | mark(cons(0, zeros)) |
| active(incr(cons(X, Y))) | → | mark(cons(s(X), incr(Y))) | | active(adx(cons(X, Y))) | → | mark(incr(cons(X, adx(Y)))) |
| active(hd(cons(X, Y))) | → | mark(X) | | active(tl(cons(X, Y))) | → | mark(Y) |
| active(adx(X)) | → | adx(active(X)) | | active(incr(X)) | → | incr(active(X)) |
| active(hd(X)) | → | hd(active(X)) | | active(tl(X)) | → | tl(active(X)) |
| adx(mark(X)) | → | mark(adx(X)) | | incr(mark(X)) | → | mark(incr(X)) |
| hd(mark(X)) | → | mark(hd(X)) | | tl(mark(X)) | → | mark(tl(X)) |
| proper(nats) | → | ok(nats) | | proper(adx(X)) | → | adx(proper(X)) |
| proper(zeros) | → | ok(zeros) | | proper(cons(X1, X2)) | → | cons(proper(X1), proper(X2)) |
| proper(0) | → | ok(0) | | proper(incr(X)) | → | incr(proper(X)) |
| proper(s(X)) | → | s(proper(X)) | | proper(hd(X)) | → | hd(proper(X)) |
| proper(tl(X)) | → | tl(proper(X)) | | adx(ok(X)) | → | ok(adx(X)) |
| cons(ok(X1), ok(X2)) | → | ok(cons(X1, X2)) | | incr(ok(X)) | → | ok(incr(X)) |
| s(ok(X)) | → | ok(s(X)) | | hd(ok(X)) | → | ok(hd(X)) |
| tl(ok(X)) | → | ok(tl(X)) | | top(mark(X)) | → | top(proper(X)) |
| top(ok(X)) | → | top(active(X)) |
Original Signature
Termination of terms over the following signature is verified: tl, mark, hd, nats, 0, s, zeros, adx, active, ok, incr, proper, cons, top
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
| incr#(ok(X)) | → | incr#(X) | | incr#(mark(X)) | → | incr#(X) |
Problem 4: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
| active#(incr(X)) | → | active#(X) | | active#(adx(X)) | → | active#(X) |
| active#(hd(X)) | → | active#(X) | | active#(tl(X)) | → | active#(X) |
Rewrite Rules
| active(nats) | → | mark(adx(zeros)) | | active(zeros) | → | mark(cons(0, zeros)) |
| active(incr(cons(X, Y))) | → | mark(cons(s(X), incr(Y))) | | active(adx(cons(X, Y))) | → | mark(incr(cons(X, adx(Y)))) |
| active(hd(cons(X, Y))) | → | mark(X) | | active(tl(cons(X, Y))) | → | mark(Y) |
| active(adx(X)) | → | adx(active(X)) | | active(incr(X)) | → | incr(active(X)) |
| active(hd(X)) | → | hd(active(X)) | | active(tl(X)) | → | tl(active(X)) |
| adx(mark(X)) | → | mark(adx(X)) | | incr(mark(X)) | → | mark(incr(X)) |
| hd(mark(X)) | → | mark(hd(X)) | | tl(mark(X)) | → | mark(tl(X)) |
| proper(nats) | → | ok(nats) | | proper(adx(X)) | → | adx(proper(X)) |
| proper(zeros) | → | ok(zeros) | | proper(cons(X1, X2)) | → | cons(proper(X1), proper(X2)) |
| proper(0) | → | ok(0) | | proper(incr(X)) | → | incr(proper(X)) |
| proper(s(X)) | → | s(proper(X)) | | proper(hd(X)) | → | hd(proper(X)) |
| proper(tl(X)) | → | tl(proper(X)) | | adx(ok(X)) | → | ok(adx(X)) |
| cons(ok(X1), ok(X2)) | → | ok(cons(X1, X2)) | | incr(ok(X)) | → | ok(incr(X)) |
| s(ok(X)) | → | ok(s(X)) | | hd(ok(X)) | → | ok(hd(X)) |
| tl(ok(X)) | → | ok(tl(X)) | | top(mark(X)) | → | top(proper(X)) |
| top(ok(X)) | → | top(active(X)) |
Original Signature
Termination of terms over the following signature is verified: tl, mark, hd, nats, 0, s, zeros, adx, active, ok, incr, proper, cons, top
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
| active#(incr(X)) | → | active#(X) | | active#(adx(X)) | → | active#(X) |
| active#(hd(X)) | → | active#(X) | | active#(tl(X)) | → | active#(X) |
Problem 5: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
| adx#(mark(X)) | → | adx#(X) | | adx#(ok(X)) | → | adx#(X) |
Rewrite Rules
| active(nats) | → | mark(adx(zeros)) | | active(zeros) | → | mark(cons(0, zeros)) |
| active(incr(cons(X, Y))) | → | mark(cons(s(X), incr(Y))) | | active(adx(cons(X, Y))) | → | mark(incr(cons(X, adx(Y)))) |
| active(hd(cons(X, Y))) | → | mark(X) | | active(tl(cons(X, Y))) | → | mark(Y) |
| active(adx(X)) | → | adx(active(X)) | | active(incr(X)) | → | incr(active(X)) |
| active(hd(X)) | → | hd(active(X)) | | active(tl(X)) | → | tl(active(X)) |
| adx(mark(X)) | → | mark(adx(X)) | | incr(mark(X)) | → | mark(incr(X)) |
| hd(mark(X)) | → | mark(hd(X)) | | tl(mark(X)) | → | mark(tl(X)) |
| proper(nats) | → | ok(nats) | | proper(adx(X)) | → | adx(proper(X)) |
| proper(zeros) | → | ok(zeros) | | proper(cons(X1, X2)) | → | cons(proper(X1), proper(X2)) |
| proper(0) | → | ok(0) | | proper(incr(X)) | → | incr(proper(X)) |
| proper(s(X)) | → | s(proper(X)) | | proper(hd(X)) | → | hd(proper(X)) |
| proper(tl(X)) | → | tl(proper(X)) | | adx(ok(X)) | → | ok(adx(X)) |
| cons(ok(X1), ok(X2)) | → | ok(cons(X1, X2)) | | incr(ok(X)) | → | ok(incr(X)) |
| s(ok(X)) | → | ok(s(X)) | | hd(ok(X)) | → | ok(hd(X)) |
| tl(ok(X)) | → | ok(tl(X)) | | top(mark(X)) | → | top(proper(X)) |
| top(ok(X)) | → | top(active(X)) |
Original Signature
Termination of terms over the following signature is verified: tl, mark, hd, nats, 0, s, zeros, adx, active, ok, incr, proper, cons, top
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
| adx#(mark(X)) | → | adx#(X) | | adx#(ok(X)) | → | adx#(X) |
Problem 6: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
| hd#(mark(X)) | → | hd#(X) | | hd#(ok(X)) | → | hd#(X) |
Rewrite Rules
| active(nats) | → | mark(adx(zeros)) | | active(zeros) | → | mark(cons(0, zeros)) |
| active(incr(cons(X, Y))) | → | mark(cons(s(X), incr(Y))) | | active(adx(cons(X, Y))) | → | mark(incr(cons(X, adx(Y)))) |
| active(hd(cons(X, Y))) | → | mark(X) | | active(tl(cons(X, Y))) | → | mark(Y) |
| active(adx(X)) | → | adx(active(X)) | | active(incr(X)) | → | incr(active(X)) |
| active(hd(X)) | → | hd(active(X)) | | active(tl(X)) | → | tl(active(X)) |
| adx(mark(X)) | → | mark(adx(X)) | | incr(mark(X)) | → | mark(incr(X)) |
| hd(mark(X)) | → | mark(hd(X)) | | tl(mark(X)) | → | mark(tl(X)) |
| proper(nats) | → | ok(nats) | | proper(adx(X)) | → | adx(proper(X)) |
| proper(zeros) | → | ok(zeros) | | proper(cons(X1, X2)) | → | cons(proper(X1), proper(X2)) |
| proper(0) | → | ok(0) | | proper(incr(X)) | → | incr(proper(X)) |
| proper(s(X)) | → | s(proper(X)) | | proper(hd(X)) | → | hd(proper(X)) |
| proper(tl(X)) | → | tl(proper(X)) | | adx(ok(X)) | → | ok(adx(X)) |
| cons(ok(X1), ok(X2)) | → | ok(cons(X1, X2)) | | incr(ok(X)) | → | ok(incr(X)) |
| s(ok(X)) | → | ok(s(X)) | | hd(ok(X)) | → | ok(hd(X)) |
| tl(ok(X)) | → | ok(tl(X)) | | top(mark(X)) | → | top(proper(X)) |
| top(ok(X)) | → | top(active(X)) |
Original Signature
Termination of terms over the following signature is verified: tl, mark, hd, nats, 0, s, zeros, adx, active, ok, incr, proper, cons, top
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
| hd#(mark(X)) | → | hd#(X) | | hd#(ok(X)) | → | hd#(X) |
Problem 7: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
| tl#(mark(X)) | → | tl#(X) | | tl#(ok(X)) | → | tl#(X) |
Rewrite Rules
| active(nats) | → | mark(adx(zeros)) | | active(zeros) | → | mark(cons(0, zeros)) |
| active(incr(cons(X, Y))) | → | mark(cons(s(X), incr(Y))) | | active(adx(cons(X, Y))) | → | mark(incr(cons(X, adx(Y)))) |
| active(hd(cons(X, Y))) | → | mark(X) | | active(tl(cons(X, Y))) | → | mark(Y) |
| active(adx(X)) | → | adx(active(X)) | | active(incr(X)) | → | incr(active(X)) |
| active(hd(X)) | → | hd(active(X)) | | active(tl(X)) | → | tl(active(X)) |
| adx(mark(X)) | → | mark(adx(X)) | | incr(mark(X)) | → | mark(incr(X)) |
| hd(mark(X)) | → | mark(hd(X)) | | tl(mark(X)) | → | mark(tl(X)) |
| proper(nats) | → | ok(nats) | | proper(adx(X)) | → | adx(proper(X)) |
| proper(zeros) | → | ok(zeros) | | proper(cons(X1, X2)) | → | cons(proper(X1), proper(X2)) |
| proper(0) | → | ok(0) | | proper(incr(X)) | → | incr(proper(X)) |
| proper(s(X)) | → | s(proper(X)) | | proper(hd(X)) | → | hd(proper(X)) |
| proper(tl(X)) | → | tl(proper(X)) | | adx(ok(X)) | → | ok(adx(X)) |
| cons(ok(X1), ok(X2)) | → | ok(cons(X1, X2)) | | incr(ok(X)) | → | ok(incr(X)) |
| s(ok(X)) | → | ok(s(X)) | | hd(ok(X)) | → | ok(hd(X)) |
| tl(ok(X)) | → | ok(tl(X)) | | top(mark(X)) | → | top(proper(X)) |
| top(ok(X)) | → | top(active(X)) |
Original Signature
Termination of terms over the following signature is verified: tl, mark, hd, nats, 0, s, zeros, adx, active, ok, incr, proper, cons, top
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
| tl#(mark(X)) | → | tl#(X) | | tl#(ok(X)) | → | tl#(X) |
Problem 8: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
Rewrite Rules
| active(nats) | → | mark(adx(zeros)) | | active(zeros) | → | mark(cons(0, zeros)) |
| active(incr(cons(X, Y))) | → | mark(cons(s(X), incr(Y))) | | active(adx(cons(X, Y))) | → | mark(incr(cons(X, adx(Y)))) |
| active(hd(cons(X, Y))) | → | mark(X) | | active(tl(cons(X, Y))) | → | mark(Y) |
| active(adx(X)) | → | adx(active(X)) | | active(incr(X)) | → | incr(active(X)) |
| active(hd(X)) | → | hd(active(X)) | | active(tl(X)) | → | tl(active(X)) |
| adx(mark(X)) | → | mark(adx(X)) | | incr(mark(X)) | → | mark(incr(X)) |
| hd(mark(X)) | → | mark(hd(X)) | | tl(mark(X)) | → | mark(tl(X)) |
| proper(nats) | → | ok(nats) | | proper(adx(X)) | → | adx(proper(X)) |
| proper(zeros) | → | ok(zeros) | | proper(cons(X1, X2)) | → | cons(proper(X1), proper(X2)) |
| proper(0) | → | ok(0) | | proper(incr(X)) | → | incr(proper(X)) |
| proper(s(X)) | → | s(proper(X)) | | proper(hd(X)) | → | hd(proper(X)) |
| proper(tl(X)) | → | tl(proper(X)) | | adx(ok(X)) | → | ok(adx(X)) |
| cons(ok(X1), ok(X2)) | → | ok(cons(X1, X2)) | | incr(ok(X)) | → | ok(incr(X)) |
| s(ok(X)) | → | ok(s(X)) | | hd(ok(X)) | → | ok(hd(X)) |
| tl(ok(X)) | → | ok(tl(X)) | | top(mark(X)) | → | top(proper(X)) |
| top(ok(X)) | → | top(active(X)) |
Original Signature
Termination of terms over the following signature is verified: tl, mark, hd, nats, 0, s, zeros, adx, active, ok, incr, proper, cons, top
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
Problem 9: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
| cons#(ok(X1), ok(X2)) | → | cons#(X1, X2) |
Rewrite Rules
| active(nats) | → | mark(adx(zeros)) | | active(zeros) | → | mark(cons(0, zeros)) |
| active(incr(cons(X, Y))) | → | mark(cons(s(X), incr(Y))) | | active(adx(cons(X, Y))) | → | mark(incr(cons(X, adx(Y)))) |
| active(hd(cons(X, Y))) | → | mark(X) | | active(tl(cons(X, Y))) | → | mark(Y) |
| active(adx(X)) | → | adx(active(X)) | | active(incr(X)) | → | incr(active(X)) |
| active(hd(X)) | → | hd(active(X)) | | active(tl(X)) | → | tl(active(X)) |
| adx(mark(X)) | → | mark(adx(X)) | | incr(mark(X)) | → | mark(incr(X)) |
| hd(mark(X)) | → | mark(hd(X)) | | tl(mark(X)) | → | mark(tl(X)) |
| proper(nats) | → | ok(nats) | | proper(adx(X)) | → | adx(proper(X)) |
| proper(zeros) | → | ok(zeros) | | proper(cons(X1, X2)) | → | cons(proper(X1), proper(X2)) |
| proper(0) | → | ok(0) | | proper(incr(X)) | → | incr(proper(X)) |
| proper(s(X)) | → | s(proper(X)) | | proper(hd(X)) | → | hd(proper(X)) |
| proper(tl(X)) | → | tl(proper(X)) | | adx(ok(X)) | → | ok(adx(X)) |
| cons(ok(X1), ok(X2)) | → | ok(cons(X1, X2)) | | incr(ok(X)) | → | ok(incr(X)) |
| s(ok(X)) | → | ok(s(X)) | | hd(ok(X)) | → | ok(hd(X)) |
| tl(ok(X)) | → | ok(tl(X)) | | top(mark(X)) | → | top(proper(X)) |
| top(ok(X)) | → | top(active(X)) |
Original Signature
Termination of terms over the following signature is verified: tl, mark, hd, nats, 0, s, zeros, adx, active, ok, incr, proper, cons, top
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
| cons#(ok(X1), ok(X2)) | → | cons#(X1, X2) |
Problem 10: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
| proper#(s(X)) | → | proper#(X) | | proper#(adx(X)) | → | proper#(X) |
| proper#(cons(X1, X2)) | → | proper#(X1) | | proper#(cons(X1, X2)) | → | proper#(X2) |
| proper#(incr(X)) | → | proper#(X) | | proper#(hd(X)) | → | proper#(X) |
| proper#(tl(X)) | → | proper#(X) |
Rewrite Rules
| active(nats) | → | mark(adx(zeros)) | | active(zeros) | → | mark(cons(0, zeros)) |
| active(incr(cons(X, Y))) | → | mark(cons(s(X), incr(Y))) | | active(adx(cons(X, Y))) | → | mark(incr(cons(X, adx(Y)))) |
| active(hd(cons(X, Y))) | → | mark(X) | | active(tl(cons(X, Y))) | → | mark(Y) |
| active(adx(X)) | → | adx(active(X)) | | active(incr(X)) | → | incr(active(X)) |
| active(hd(X)) | → | hd(active(X)) | | active(tl(X)) | → | tl(active(X)) |
| adx(mark(X)) | → | mark(adx(X)) | | incr(mark(X)) | → | mark(incr(X)) |
| hd(mark(X)) | → | mark(hd(X)) | | tl(mark(X)) | → | mark(tl(X)) |
| proper(nats) | → | ok(nats) | | proper(adx(X)) | → | adx(proper(X)) |
| proper(zeros) | → | ok(zeros) | | proper(cons(X1, X2)) | → | cons(proper(X1), proper(X2)) |
| proper(0) | → | ok(0) | | proper(incr(X)) | → | incr(proper(X)) |
| proper(s(X)) | → | s(proper(X)) | | proper(hd(X)) | → | hd(proper(X)) |
| proper(tl(X)) | → | tl(proper(X)) | | adx(ok(X)) | → | ok(adx(X)) |
| cons(ok(X1), ok(X2)) | → | ok(cons(X1, X2)) | | incr(ok(X)) | → | ok(incr(X)) |
| s(ok(X)) | → | ok(s(X)) | | hd(ok(X)) | → | ok(hd(X)) |
| tl(ok(X)) | → | ok(tl(X)) | | top(mark(X)) | → | top(proper(X)) |
| top(ok(X)) | → | top(active(X)) |
Original Signature
Termination of terms over the following signature is verified: tl, mark, hd, nats, 0, s, zeros, adx, active, ok, incr, proper, cons, top
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
| proper#(adx(X)) | → | proper#(X) | | proper#(s(X)) | → | proper#(X) |
| proper#(cons(X1, X2)) | → | proper#(X1) | | proper#(cons(X1, X2)) | → | proper#(X2) |
| proper#(incr(X)) | → | proper#(X) | | proper#(hd(X)) | → | proper#(X) |
| proper#(tl(X)) | → | proper#(X) |