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) |