TIMEOUT
The TRS could not be proven terminating. The proof attempt took 60020 ms.
The following DP Processors were used
Problem 1 was processed with processor DependencyGraph (26461ms).
| Problem 2 was processed with processor DependencyGraph (6657ms).
| | Problem 46 remains open; application of the following processors failed [].
| Problem 3 was processed with processor SubtermCriterion (2ms).
| | Problem 39 remains open; application of the following processors failed [].
| Problem 4 was processed with processor DependencyGraph (6446ms).
| | Problem 47 remains open; application of the following processors failed [].
| Problem 5 was processed with processor DependencyGraph (6337ms).
| | Problem 48 remains open; application of the following processors failed [].
| Problem 6 was processed with processor DependencyGraph (6969ms).
| | Problem 49 remains open; application of the following processors failed [].
| Problem 7 was processed with processor SubtermCriterion (1ms).
| | Problem 40 remains open; application of the following processors failed [].
| Problem 8 was processed with processor DependencyGraph (6143ms).
| | Problem 50 remains open; application of the following processors failed [].
| Problem 9 was processed with processor SubtermCriterion (1ms).
| Problem 10 remains open; application of the following processors failed [SubtermCriterion (1ms), DependencyGraph (timeout)].
| Problem 11 was processed with processor SubtermCriterion (1ms).
| | Problem 41 remains open; application of the following processors failed [].
| Problem 12 remains open; application of the following processors failed [SubtermCriterion (3ms)].
| Problem 13 was processed with processor SubtermCriterion (1ms).
| Problem 14 was processed with processor SubtermCriterion (1ms).
| Problem 15 remains open; application of the following processors failed [SubtermCriterion (1ms)].
| Problem 16 remains open; application of the following processors failed [SubtermCriterion (1ms)].
| Problem 17 remains open; application of the following processors failed [SubtermCriterion (1ms)].
| Problem 18 remains open; application of the following processors failed [SubtermCriterion (2ms)].
| Problem 19 remains open; application of the following processors failed [SubtermCriterion (1ms)].
| Problem 20 remains open; application of the following processors failed [SubtermCriterion (1ms)].
| Problem 21 was processed with processor SubtermCriterion (1ms).
| | Problem 42 remains open; application of the following processors failed [].
| Problem 22 remains open; application of the following processors failed [SubtermCriterion (1ms)].
| Problem 23 remains open; application of the following processors failed [SubtermCriterion (2ms)].
| Problem 24 was processed with processor SubtermCriterion (1ms).
| | Problem 43 remains open; application of the following processors failed [].
| Problem 25 remains open; application of the following processors failed [SubtermCriterion (1ms)].
| Problem 26 remains open; application of the following processors failed [SubtermCriterion (1ms)].
| Problem 27 remains open; application of the following processors failed [SubtermCriterion (2ms)].
| Problem 28 remains open; application of the following processors failed [SubtermCriterion (3ms)].
| Problem 29 was processed with processor SubtermCriterion (2ms).
| Problem 30 was processed with processor SubtermCriterion (1ms).
| Problem 31 was processed with processor SubtermCriterion (2ms).
| | Problem 44 remains open; application of the following processors failed [].
| Problem 32 remains open; application of the following processors failed [SubtermCriterion (1ms)].
| Problem 33 was processed with processor SubtermCriterion (1ms).
| Problem 34 remains open; application of the following processors failed [SubtermCriterion (1ms)].
| Problem 35 was processed with processor SubtermCriterion (2ms).
| Problem 36 was processed with processor SubtermCriterion (1ms).
| | Problem 45 remains open; application of the following processors failed [].
| Problem 37 remains open; application of the following processors failed [SubtermCriterion (1ms)].
| Problem 38 remains open; application of the following processors failed [SubtermCriterion (3ms)].
The following open problems remain:
Open Dependency Pair Problem 2
Dependency Pairs
mark#(cons(X1, X2)) | → | active#(cons(mark(X1), X2)) | | active#(unquote1(nil1)) | → | mark#(nil) |
mark#(fcons(X1, X2)) | → | active#(fcons(mark(X1), mark(X2))) | | active#(quote1(first(X, Z))) | → | mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) | → | active#(sel1(mark(X1), mark(X2))) | | mark#(01) | → | active#(01) |
active#(sel1(0, cons(X, Z))) | → | mark#(quote(X)) | | mark#(cons1(X1, X2)) | → | mark#(X1) |
active#(first1(s(X), cons(Y, Z))) | → | mark#(cons1(quote(Y), first1(X, Z))) | | active#(first(s(X), cons(Y, Z))) | → | mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) | → | mark#(X) | | mark#(s(X)) | → | mark#(X) |
mark#(sel(X1, X2)) | → | mark#(X1) | | active#(quote(s(X))) | → | mark#(s1(quote(X))) |
mark#(unquote1(X)) | → | active#(unquote1(mark(X))) | | active#(sel(s(X), cons(Y, Z))) | → | sel#(X, Z) |
active#(unquote1(cons1(X, Z))) | → | mark#(fcons(unquote(X), unquote1(Z))) | | mark#(from(X)) | → | mark#(X) |
mark#(cons(X1, X2)) | → | mark#(X1) | | mark#(unquote(X)) | → | active#(unquote(mark(X))) |
active#(from(X)) | → | mark#(cons(X, from(s(X)))) | | mark#(sel(X1, X2)) | → | active#(sel(mark(X1), mark(X2))) |
active#(unquote1(cons1(X, Z))) | → | unquote1#(Z) | | active#(quote1(cons(X, Z))) | → | quote#(X) |
mark#(from(X)) | → | active#(from(mark(X))) | | mark#(s1(X)) | → | active#(s1(mark(X))) |
mark#(first1(X1, X2)) | → | active#(first1(mark(X1), mark(X2))) | | mark#(first(X1, X2)) | → | mark#(X1) |
mark#(quote1(X)) | → | active#(quote1(X)) | | active#(quote1(cons(X, Z))) | → | mark#(cons1(quote(X), quote1(Z))) |
active#(quote(s(X))) | → | s1#(quote(X)) | | active#(first1(0, Z)) | → | mark#(nil1) |
mark#(unquote1(X)) | → | mark#(X) | | mark#(first1(X1, X2)) | → | mark#(X1) |
mark#(quote(X)) | → | active#(quote(X)) | | active#(sel(0, cons(X, Z))) | → | mark#(X) |
active#(sel(s(X), cons(Y, Z))) | → | mark#(sel(X, Z)) | | mark#(nil) | → | active#(nil) |
mark#(sel(X1, X2)) | → | mark#(X2) | | mark#(first1(X1, X2)) | → | mark#(X2) |
active#(from(X)) | → | cons#(X, from(s(X))) | | active#(quote(sel(X, Z))) | → | mark#(sel1(X, Z)) |
mark#(cons1(X1, X2)) | → | active#(cons1(mark(X1), mark(X2))) | | active#(quote1(first(X, Z))) | → | first1#(X, Z) |
mark#(0) | → | active#(0) | | mark#(first(X1, X2)) | → | mark#(X2) |
mark#(fcons(X1, X2)) | → | mark#(X2) | | mark#(s(X)) | → | active#(s(mark(X))) |
mark#(fcons(X1, X2)) | → | mark#(X1) | | mark#(first(X1, X2)) | → | active#(first(mark(X1), mark(X2))) |
active#(quote(0)) | → | mark#(01) | | mark#(sel1(X1, X2)) | → | mark#(X2) |
mark#(cons1(X1, X2)) | → | mark#(X2) | | mark#(s1(X)) | → | mark#(X) |
active#(sel1(s(X), cons(Y, Z))) | → | mark#(sel1(X, Z)) | | active#(quote1(nil)) | → | mark#(nil1) |
active#(unquote(01)) | → | mark#(0) | | active#(first(0, Z)) | → | mark#(nil) |
mark#(sel1(X1, X2)) | → | mark#(X1) | | active#(unquote(s1(X))) | → | mark#(s(unquote(X))) |
mark#(nil1) | → | active#(nil1) | | active#(fcons(X, Z)) | → | mark#(cons(X, Z)) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, sel, first, cons, nil
Open Dependency Pair Problem 3
Dependency Pairs
cons#(X1, active(X2)) | → | cons#(X1, X2) | | cons#(mark(X1), X2) | → | cons#(X1, X2) |
cons#(X1, mark(X2)) | → | cons#(X1, X2) | | cons#(active(X1), X2) | → | cons#(X1, X2) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, sel, first, cons, nil
Open Dependency Pair Problem 4
Dependency Pairs
mark#(cons(X1, X2)) | → | active#(cons(mark(X1), X2)) | | active#(unquote1(nil1)) | → | mark#(nil) |
mark#(fcons(X1, X2)) | → | active#(fcons(mark(X1), mark(X2))) | | active#(quote1(first(X, Z))) | → | mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) | → | active#(sel1(mark(X1), mark(X2))) | | mark#(01) | → | active#(01) |
active#(sel1(0, cons(X, Z))) | → | mark#(quote(X)) | | mark#(cons1(X1, X2)) | → | mark#(X1) |
active#(fcons(X, Z)) | → | cons#(X, Z) | | active#(first1(s(X), cons(Y, Z))) | → | mark#(cons1(quote(Y), first1(X, Z))) |
active#(first(s(X), cons(Y, Z))) | → | mark#(cons(Y, first(X, Z))) | | mark#(unquote(X)) | → | mark#(X) |
mark#(s(X)) | → | mark#(X) | | mark#(sel(X1, X2)) | → | mark#(X1) |
mark#(unquote1(X)) | → | active#(unquote1(mark(X))) | | active#(quote(s(X))) | → | mark#(s1(quote(X))) |
active#(unquote1(cons1(X, Z))) | → | mark#(fcons(unquote(X), unquote1(Z))) | | mark#(from(X)) | → | mark#(X) |
mark#(cons(X1, X2)) | → | mark#(X1) | | mark#(unquote(X)) | → | active#(unquote(mark(X))) |
mark#(sel(X1, X2)) | → | active#(sel(mark(X1), mark(X2))) | | active#(from(X)) | → | mark#(cons(X, from(s(X)))) |
active#(from(X)) | → | s#(X) | | active#(quote1(cons(X, Z))) | → | quote#(X) |
mark#(from(X)) | → | active#(from(mark(X))) | | mark#(s1(X)) | → | active#(s1(mark(X))) |
mark#(first(X1, X2)) | → | mark#(X1) | | mark#(first1(X1, X2)) | → | active#(first1(mark(X1), mark(X2))) |
mark#(quote1(X)) | → | active#(quote1(X)) | | active#(quote1(cons(X, Z))) | → | mark#(cons1(quote(X), quote1(Z))) |
active#(quote(s(X))) | → | s1#(quote(X)) | | active#(first1(0, Z)) | → | mark#(nil1) |
mark#(unquote1(X)) | → | mark#(X) | | mark#(first1(X1, X2)) | → | mark#(X1) |
mark#(quote(X)) | → | active#(quote(X)) | | active#(sel(0, cons(X, Z))) | → | mark#(X) |
active#(sel(s(X), cons(Y, Z))) | → | mark#(sel(X, Z)) | | mark#(nil) | → | active#(nil) |
mark#(sel(X1, X2)) | → | mark#(X2) | | mark#(first1(X1, X2)) | → | mark#(X2) |
active#(from(X)) | → | cons#(X, from(s(X))) | | active#(quote(sel(X, Z))) | → | mark#(sel1(X, Z)) |
mark#(cons1(X1, X2)) | → | active#(cons1(mark(X1), mark(X2))) | | mark#(first(X1, X2)) | → | mark#(X2) |
mark#(0) | → | active#(0) | | mark#(s(X)) | → | active#(s(mark(X))) |
mark#(fcons(X1, X2)) | → | mark#(X2) | | mark#(fcons(X1, X2)) | → | mark#(X1) |
mark#(first(X1, X2)) | → | active#(first(mark(X1), mark(X2))) | | active#(quote(0)) | → | mark#(01) |
mark#(sel1(X1, X2)) | → | mark#(X2) | | mark#(cons1(X1, X2)) | → | mark#(X2) |
mark#(s1(X)) | → | mark#(X) | | active#(sel1(s(X), cons(Y, Z))) | → | mark#(sel1(X, Z)) |
active#(quote1(nil)) | → | mark#(nil1) | | active#(unquote(01)) | → | mark#(0) |
active#(first(0, Z)) | → | mark#(nil) | | mark#(sel1(X1, X2)) | → | mark#(X1) |
active#(unquote(s1(X))) | → | mark#(s(unquote(X))) | | mark#(nil1) | → | active#(nil1) |
active#(fcons(X, Z)) | → | mark#(cons(X, Z)) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, sel, first, cons, nil
Open Dependency Pair Problem 5
Dependency Pairs
mark#(cons(X1, X2)) | → | active#(cons(mark(X1), X2)) | | active#(unquote1(nil1)) | → | mark#(nil) |
mark#(fcons(X1, X2)) | → | active#(fcons(mark(X1), mark(X2))) | | active#(quote1(first(X, Z))) | → | mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) | → | active#(sel1(mark(X1), mark(X2))) | | mark#(01) | → | active#(01) |
active#(sel1(0, cons(X, Z))) | → | mark#(quote(X)) | | mark#(cons1(X1, X2)) | → | mark#(X1) |
active#(first1(s(X), cons(Y, Z))) | → | mark#(cons1(quote(Y), first1(X, Z))) | | active#(first(s(X), cons(Y, Z))) | → | mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) | → | mark#(X) | | mark#(s(X)) | → | mark#(X) |
mark#(sel(X1, X2)) | → | mark#(X1) | | mark#(unquote1(X)) | → | active#(unquote1(mark(X))) |
active#(quote(s(X))) | → | mark#(s1(quote(X))) | | active#(unquote1(cons1(X, Z))) | → | mark#(fcons(unquote(X), unquote1(Z))) |
mark#(from(X)) | → | mark#(X) | | mark#(cons(X1, X2)) | → | mark#(X1) |
mark#(unquote(X)) | → | active#(unquote(mark(X))) | | active#(from(X)) | → | mark#(cons(X, from(s(X)))) |
mark#(sel(X1, X2)) | → | active#(sel(mark(X1), mark(X2))) | | active#(from(X)) | → | s#(X) |
active#(quote1(cons(X, Z))) | → | quote#(X) | | mark#(from(X)) | → | active#(from(mark(X))) |
mark#(s1(X)) | → | active#(s1(mark(X))) | | mark#(first(X1, X2)) | → | mark#(X1) |
mark#(first1(X1, X2)) | → | active#(first1(mark(X1), mark(X2))) | | mark#(quote1(X)) | → | active#(quote1(X)) |
active#(quote1(cons(X, Z))) | → | mark#(cons1(quote(X), quote1(Z))) | | active#(quote(s(X))) | → | s1#(quote(X)) |
active#(first1(0, Z)) | → | mark#(nil1) | | mark#(unquote1(X)) | → | mark#(X) |
mark#(first1(X1, X2)) | → | mark#(X1) | | mark#(quote(X)) | → | active#(quote(X)) |
active#(sel(0, cons(X, Z))) | → | mark#(X) | | active#(sel(s(X), cons(Y, Z))) | → | mark#(sel(X, Z)) |
mark#(nil) | → | active#(nil) | | mark#(sel(X1, X2)) | → | mark#(X2) |
mark#(first1(X1, X2)) | → | mark#(X2) | | active#(quote(sel(X, Z))) | → | mark#(sel1(X, Z)) |
mark#(cons1(X1, X2)) | → | active#(cons1(mark(X1), mark(X2))) | | mark#(0) | → | active#(0) |
mark#(first(X1, X2)) | → | mark#(X2) | | mark#(s(X)) | → | active#(s(mark(X))) |
mark#(fcons(X1, X2)) | → | mark#(X2) | | mark#(fcons(X1, X2)) | → | mark#(X1) |
active#(quote(0)) | → | mark#(01) | | mark#(first(X1, X2)) | → | active#(first(mark(X1), mark(X2))) |
mark#(sel1(X1, X2)) | → | mark#(X2) | | mark#(cons1(X1, X2)) | → | mark#(X2) |
mark#(s1(X)) | → | mark#(X) | | active#(sel1(s(X), cons(Y, Z))) | → | mark#(sel1(X, Z)) |
active#(quote1(nil)) | → | mark#(nil1) | | active#(unquote(01)) | → | mark#(0) |
active#(first(0, Z)) | → | mark#(nil) | | mark#(sel1(X1, X2)) | → | mark#(X1) |
mark#(nil1) | → | active#(nil1) | | active#(unquote(s1(X))) | → | mark#(s(unquote(X))) |
active#(fcons(X, Z)) | → | mark#(cons(X, Z)) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, sel, first, cons, nil
Open Dependency Pair Problem 6
Dependency Pairs
mark#(cons(X1, X2)) | → | active#(cons(mark(X1), X2)) | | active#(unquote1(nil1)) | → | mark#(nil) |
mark#(fcons(X1, X2)) | → | active#(fcons(mark(X1), mark(X2))) | | active#(quote1(first(X, Z))) | → | mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) | → | active#(sel1(mark(X1), mark(X2))) | | mark#(01) | → | active#(01) |
mark#(cons1(X1, X2)) | → | mark#(X1) | | active#(sel1(0, cons(X, Z))) | → | mark#(quote(X)) |
active#(first1(s(X), cons(Y, Z))) | → | mark#(cons1(quote(Y), first1(X, Z))) | | active#(first(s(X), cons(Y, Z))) | → | mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) | → | mark#(X) | | mark#(s(X)) | → | mark#(X) |
mark#(sel(X1, X2)) | → | mark#(X1) | | active#(quote(s(X))) | → | mark#(s1(quote(X))) |
mark#(unquote1(X)) | → | active#(unquote1(mark(X))) | | active#(sel(s(X), cons(Y, Z))) | → | sel#(X, Z) |
active#(unquote1(cons1(X, Z))) | → | mark#(fcons(unquote(X), unquote1(Z))) | | mark#(from(X)) | → | mark#(X) |
mark#(cons(X1, X2)) | → | mark#(X1) | | active#(quote(s(X))) | → | quote#(X) |
mark#(unquote(X)) | → | active#(unquote(mark(X))) | | active#(first1(s(X), cons(Y, Z))) | → | cons1#(quote(Y), first1(X, Z)) |
mark#(sel(X1, X2)) | → | active#(sel(mark(X1), mark(X2))) | | active#(from(X)) | → | mark#(cons(X, from(s(X)))) |
active#(unquote1(cons1(X, Z))) | → | unquote1#(Z) | | active#(quote1(cons(X, Z))) | → | quote#(X) |
mark#(from(X)) | → | active#(from(mark(X))) | | mark#(s1(X)) | → | active#(s1(mark(X))) |
mark#(first1(X1, X2)) | → | active#(first1(mark(X1), mark(X2))) | | mark#(first(X1, X2)) | → | mark#(X1) |
mark#(quote1(X)) | → | active#(quote1(X)) | | active#(quote1(cons(X, Z))) | → | mark#(cons1(quote(X), quote1(Z))) |
active#(quote(s(X))) | → | s1#(quote(X)) | | active#(first1(0, Z)) | → | mark#(nil1) |
mark#(unquote1(X)) | → | mark#(X) | | mark#(first1(X1, X2)) | → | mark#(X1) |
mark#(quote(X)) | → | active#(quote(X)) | | active#(sel(0, cons(X, Z))) | → | mark#(X) |
active#(sel(s(X), cons(Y, Z))) | → | mark#(sel(X, Z)) | | mark#(nil) | → | active#(nil) |
mark#(sel(X1, X2)) | → | mark#(X2) | | mark#(first1(X1, X2)) | → | mark#(X2) |
active#(quote(sel(X, Z))) | → | mark#(sel1(X, Z)) | | mark#(cons1(X1, X2)) | → | active#(cons1(mark(X1), mark(X2))) |
mark#(first(X1, X2)) | → | mark#(X2) | | mark#(0) | → | active#(0) |
mark#(s(X)) | → | active#(s(mark(X))) | | mark#(fcons(X1, X2)) | → | mark#(X2) |
mark#(fcons(X1, X2)) | → | mark#(X1) | | mark#(first(X1, X2)) | → | active#(first(mark(X1), mark(X2))) |
active#(quote(0)) | → | mark#(01) | | mark#(sel1(X1, X2)) | → | mark#(X2) |
mark#(cons1(X1, X2)) | → | mark#(X2) | | mark#(s1(X)) | → | mark#(X) |
active#(sel1(s(X), cons(Y, Z))) | → | mark#(sel1(X, Z)) | | active#(quote1(nil)) | → | mark#(nil1) |
active#(unquote(01)) | → | mark#(0) | | active#(first(0, Z)) | → | mark#(nil) |
mark#(sel1(X1, X2)) | → | mark#(X1) | | mark#(nil1) | → | active#(nil1) |
active#(unquote(s1(X))) | → | mark#(s(unquote(X))) | | active#(fcons(X, Z)) | → | mark#(cons(X, Z)) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, sel, first, cons, nil
Open Dependency Pair Problem 7
Dependency Pairs
sel1#(X1, mark(X2)) | → | sel1#(X1, X2) | | sel1#(mark(X1), X2) | → | sel1#(X1, X2) |
sel1#(X1, active(X2)) | → | sel1#(X1, X2) | | sel1#(active(X1), X2) | → | sel1#(X1, X2) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, sel, first, cons, nil
Open Dependency Pair Problem 8
Dependency Pairs
mark#(cons1(X1, X2)) | → | cons1#(mark(X1), mark(X2)) | | mark#(cons(X1, X2)) | → | active#(cons(mark(X1), X2)) |
active#(unquote1(nil1)) | → | mark#(nil) | | mark#(fcons(X1, X2)) | → | active#(fcons(mark(X1), mark(X2))) |
active#(quote1(first(X, Z))) | → | mark#(first1(X, Z)) | | mark#(sel1(X1, X2)) | → | active#(sel1(mark(X1), mark(X2))) |
mark#(01) | → | active#(01) | | mark#(cons1(X1, X2)) | → | mark#(X1) |
active#(sel1(0, cons(X, Z))) | → | mark#(quote(X)) | | active#(first1(s(X), cons(Y, Z))) | → | mark#(cons1(quote(Y), first1(X, Z))) |
active#(first(s(X), cons(Y, Z))) | → | mark#(cons(Y, first(X, Z))) | | mark#(unquote(X)) | → | mark#(X) |
mark#(s(X)) | → | mark#(X) | | mark#(sel(X1, X2)) | → | mark#(X1) |
mark#(unquote1(X)) | → | active#(unquote1(mark(X))) | | active#(quote(s(X))) | → | mark#(s1(quote(X))) |
active#(unquote1(cons1(X, Z))) | → | mark#(fcons(unquote(X), unquote1(Z))) | | mark#(from(X)) | → | mark#(X) |
mark#(cons(X1, X2)) | → | mark#(X1) | | mark#(unquote(X)) | → | active#(unquote(mark(X))) |
mark#(sel(X1, X2)) | → | active#(sel(mark(X1), mark(X2))) | | active#(from(X)) | → | mark#(cons(X, from(s(X)))) |
active#(quote1(cons(X, Z))) | → | quote#(X) | | mark#(from(X)) | → | active#(from(mark(X))) |
mark#(s1(X)) | → | active#(s1(mark(X))) | | mark#(first(X1, X2)) | → | mark#(X1) |
mark#(first1(X1, X2)) | → | active#(first1(mark(X1), mark(X2))) | | mark#(quote1(X)) | → | active#(quote1(X)) |
active#(quote1(cons(X, Z))) | → | mark#(cons1(quote(X), quote1(Z))) | | active#(quote(s(X))) | → | s1#(quote(X)) |
active#(first1(0, Z)) | → | mark#(nil1) | | mark#(unquote1(X)) | → | mark#(X) |
mark#(quote(X)) | → | active#(quote(X)) | | mark#(first1(X1, X2)) | → | mark#(X1) |
active#(sel(0, cons(X, Z))) | → | mark#(X) | | active#(sel(s(X), cons(Y, Z))) | → | mark#(sel(X, Z)) |
mark#(nil) | → | active#(nil) | | mark#(sel(X1, X2)) | → | mark#(X2) |
mark#(first1(X1, X2)) | → | mark#(X2) | | active#(quote(sel(X, Z))) | → | mark#(sel1(X, Z)) |
mark#(cons1(X1, X2)) | → | active#(cons1(mark(X1), mark(X2))) | | mark#(0) | → | active#(0) |
mark#(first(X1, X2)) | → | mark#(X2) | | mark#(fcons(X1, X2)) | → | mark#(X2) |
mark#(s(X)) | → | active#(s(mark(X))) | | mark#(fcons(X1, X2)) | → | mark#(X1) |
mark#(first(X1, X2)) | → | active#(first(mark(X1), mark(X2))) | | active#(quote(0)) | → | mark#(01) |
mark#(sel1(X1, X2)) | → | mark#(X2) | | mark#(cons1(X1, X2)) | → | mark#(X2) |
mark#(s1(X)) | → | mark#(X) | | active#(sel1(s(X), cons(Y, Z))) | → | mark#(sel1(X, Z)) |
active#(quote1(nil)) | → | mark#(nil1) | | active#(unquote(01)) | → | mark#(0) |
active#(first(0, Z)) | → | mark#(nil) | | mark#(sel1(X1, X2)) | → | mark#(X1) |
active#(unquote(s1(X))) | → | mark#(s(unquote(X))) | | mark#(nil1) | → | active#(nil1) |
active#(fcons(X, Z)) | → | mark#(cons(X, Z)) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, sel, first, cons, nil
Open Dependency Pair Problem 10
Dependency Pairs
mark#(cons(X1, X2)) | → | active#(cons(mark(X1), X2)) | | active#(unquote1(nil1)) | → | mark#(nil) |
mark#(fcons(X1, X2)) | → | active#(fcons(mark(X1), mark(X2))) | | active#(quote1(first(X, Z))) | → | mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) | → | active#(sel1(mark(X1), mark(X2))) | | mark#(01) | → | active#(01) |
active#(sel1(0, cons(X, Z))) | → | mark#(quote(X)) | | mark#(cons1(X1, X2)) | → | mark#(X1) |
active#(fcons(X, Z)) | → | cons#(X, Z) | | active#(first1(s(X), cons(Y, Z))) | → | mark#(cons1(quote(Y), first1(X, Z))) |
active#(first(s(X), cons(Y, Z))) | → | mark#(cons(Y, first(X, Z))) | | mark#(unquote(X)) | → | mark#(X) |
mark#(s(X)) | → | mark#(X) | | mark#(sel(X1, X2)) | → | mark#(X1) |
active#(quote(s(X))) | → | mark#(s1(quote(X))) | | mark#(unquote1(X)) | → | active#(unquote1(mark(X))) |
active#(unquote1(cons1(X, Z))) | → | mark#(fcons(unquote(X), unquote1(Z))) | | mark#(from(X)) | → | mark#(X) |
mark#(cons(X1, X2)) | → | mark#(X1) | | mark#(unquote(X)) | → | active#(unquote(mark(X))) |
mark#(sel(X1, X2)) | → | active#(sel(mark(X1), mark(X2))) | | active#(from(X)) | → | mark#(cons(X, from(s(X)))) |
active#(unquote1(cons1(X, Z))) | → | unquote1#(Z) | | active#(from(X)) | → | s#(X) |
active#(quote1(cons(X, Z))) | → | quote#(X) | | mark#(from(X)) | → | active#(from(mark(X))) |
mark#(s1(X)) | → | active#(s1(mark(X))) | | mark#(first1(X1, X2)) | → | active#(first1(mark(X1), mark(X2))) |
mark#(first(X1, X2)) | → | mark#(X1) | | mark#(quote1(X)) | → | active#(quote1(X)) |
active#(quote1(cons(X, Z))) | → | mark#(cons1(quote(X), quote1(Z))) | | active#(quote(s(X))) | → | s1#(quote(X)) |
active#(first1(0, Z)) | → | mark#(nil1) | | mark#(unquote1(X)) | → | mark#(X) |
mark#(first1(X1, X2)) | → | mark#(X1) | | mark#(quote(X)) | → | active#(quote(X)) |
active#(sel(0, cons(X, Z))) | → | mark#(X) | | active#(sel(s(X), cons(Y, Z))) | → | mark#(sel(X, Z)) |
mark#(nil) | → | active#(nil) | | mark#(sel(X1, X2)) | → | mark#(X2) |
active#(from(X)) | → | cons#(X, from(s(X))) | | mark#(first1(X1, X2)) | → | mark#(X2) |
active#(quote(sel(X, Z))) | → | mark#(sel1(X, Z)) | | mark#(cons1(X1, X2)) | → | active#(cons1(mark(X1), mark(X2))) |
mark#(0) | → | active#(0) | | mark#(first(X1, X2)) | → | mark#(X2) |
mark#(s(X)) | → | active#(s(mark(X))) | | mark#(fcons(X1, X2)) | → | mark#(X2) |
mark#(fcons(X1, X2)) | → | mark#(X1) | | active#(quote(0)) | → | mark#(01) |
mark#(first(X1, X2)) | → | active#(first(mark(X1), mark(X2))) | | mark#(sel1(X1, X2)) | → | mark#(X2) |
mark#(cons1(X1, X2)) | → | mark#(X2) | | mark#(s1(X)) | → | mark#(X) |
active#(sel1(s(X), cons(Y, Z))) | → | mark#(sel1(X, Z)) | | active#(quote1(nil)) | → | mark#(nil1) |
active#(unquote(01)) | → | mark#(0) | | active#(first(0, Z)) | → | mark#(nil) |
mark#(sel1(X1, X2)) | → | mark#(X1) | | mark#(nil1) | → | active#(nil1) |
active#(unquote(s1(X))) | → | mark#(s(unquote(X))) | | active#(fcons(X, Z)) | → | mark#(cons(X, Z)) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, sel, first, cons, nil
Open Dependency Pair Problem 11
Dependency Pairs
fcons#(active(X1), X2) | → | fcons#(X1, X2) | | fcons#(X1, mark(X2)) | → | fcons#(X1, X2) |
fcons#(X1, active(X2)) | → | fcons#(X1, X2) | | fcons#(mark(X1), X2) | → | fcons#(X1, X2) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, sel, first, cons, nil
Open Dependency Pair Problem 12
Dependency Pairs
mark#(cons(X1, X2)) | → | active#(cons(mark(X1), X2)) | | active#(unquote1(nil1)) | → | mark#(nil) |
mark#(fcons(X1, X2)) | → | active#(fcons(mark(X1), mark(X2))) | | active#(quote1(first(X, Z))) | → | mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) | → | active#(sel1(mark(X1), mark(X2))) | | mark#(01) | → | active#(01) |
active#(sel1(0, cons(X, Z))) | → | mark#(quote(X)) | | mark#(cons1(X1, X2)) | → | mark#(X1) |
active#(first1(s(X), cons(Y, Z))) | → | mark#(cons1(quote(Y), first1(X, Z))) | | active#(first(s(X), cons(Y, Z))) | → | mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) | → | mark#(X) | | mark#(s(X)) | → | mark#(X) |
mark#(sel(X1, X2)) | → | mark#(X1) | | active#(quote(s(X))) | → | mark#(s1(quote(X))) |
mark#(unquote1(X)) | → | active#(unquote1(mark(X))) | | active#(sel(s(X), cons(Y, Z))) | → | sel#(X, Z) |
active#(unquote1(cons1(X, Z))) | → | mark#(fcons(unquote(X), unquote1(Z))) | | mark#(from(X)) | → | mark#(X) |
mark#(cons(X1, X2)) | → | mark#(X1) | | mark#(unquote(X)) | → | active#(unquote(mark(X))) |
active#(from(X)) | → | mark#(cons(X, from(s(X)))) | | mark#(sel(X1, X2)) | → | active#(sel(mark(X1), mark(X2))) |
active#(unquote1(cons1(X, Z))) | → | unquote1#(Z) | | active#(from(X)) | → | s#(X) |
mark#(from(X)) | → | active#(from(mark(X))) | | mark#(s1(X)) | → | active#(s1(mark(X))) |
mark#(first1(X1, X2)) | → | active#(first1(mark(X1), mark(X2))) | | mark#(first(X1, X2)) | → | mark#(X1) |
mark#(quote1(X)) | → | active#(quote1(X)) | | active#(quote1(cons(X, Z))) | → | mark#(cons1(quote(X), quote1(Z))) |
active#(quote(s(X))) | → | s1#(quote(X)) | | active#(first1(0, Z)) | → | mark#(nil1) |
mark#(unquote1(X)) | → | mark#(X) | | mark#(first1(X1, X2)) | → | mark#(X1) |
mark#(quote(X)) | → | active#(quote(X)) | | active#(sel(0, cons(X, Z))) | → | mark#(X) |
active#(sel(s(X), cons(Y, Z))) | → | mark#(sel(X, Z)) | | mark#(nil) | → | active#(nil) |
mark#(sel(X1, X2)) | → | mark#(X2) | | mark#(first1(X1, X2)) | → | mark#(X2) |
active#(from(X)) | → | cons#(X, from(s(X))) | | active#(quote(sel(X, Z))) | → | mark#(sel1(X, Z)) |
mark#(cons1(X1, X2)) | → | active#(cons1(mark(X1), mark(X2))) | | mark#(0) | → | active#(0) |
mark#(first(X1, X2)) | → | mark#(X2) | | mark#(s(X)) | → | active#(s(mark(X))) |
mark#(fcons(X1, X2)) | → | mark#(X2) | | mark#(fcons(X1, X2)) | → | mark#(X1) |
mark#(first(X1, X2)) | → | active#(first(mark(X1), mark(X2))) | | active#(quote(0)) | → | mark#(01) |
mark#(sel1(X1, X2)) | → | mark#(X2) | | mark#(cons1(X1, X2)) | → | mark#(X2) |
mark#(s1(X)) | → | mark#(X) | | active#(sel1(s(X), cons(Y, Z))) | → | mark#(sel1(X, Z)) |
active#(quote1(nil)) | → | mark#(nil1) | | active#(unquote(01)) | → | mark#(0) |
active#(first(0, Z)) | → | mark#(nil) | | mark#(sel1(X1, X2)) | → | mark#(X1) |
mark#(nil1) | → | active#(nil1) | | active#(unquote(s1(X))) | → | mark#(s(unquote(X))) |
active#(fcons(X, Z)) | → | mark#(cons(X, Z)) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, sel, first, cons, nil
Open Dependency Pair Problem 15
Dependency Pairs
mark#(cons(X1, X2)) | → | active#(cons(mark(X1), X2)) | | active#(unquote1(nil1)) | → | mark#(nil) |
mark#(fcons(X1, X2)) | → | active#(fcons(mark(X1), mark(X2))) | | active#(quote1(first(X, Z))) | → | mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) | → | active#(sel1(mark(X1), mark(X2))) | | mark#(01) | → | active#(01) |
mark#(cons1(X1, X2)) | → | mark#(X1) | | active#(sel1(0, cons(X, Z))) | → | mark#(quote(X)) |
active#(first1(s(X), cons(Y, Z))) | → | mark#(cons1(quote(Y), first1(X, Z))) | | active#(first(s(X), cons(Y, Z))) | → | mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) | → | mark#(X) | | mark#(s(X)) | → | mark#(X) |
mark#(sel(X1, X2)) | → | mark#(X1) | | mark#(unquote1(X)) | → | active#(unquote1(mark(X))) |
mark#(sel(X1, X2)) | → | sel#(mark(X1), mark(X2)) | | active#(quote(s(X))) | → | mark#(s1(quote(X))) |
active#(unquote1(cons1(X, Z))) | → | mark#(fcons(unquote(X), unquote1(Z))) | | mark#(from(X)) | → | mark#(X) |
mark#(cons(X1, X2)) | → | mark#(X1) | | mark#(unquote(X)) | → | active#(unquote(mark(X))) |
mark#(sel(X1, X2)) | → | active#(sel(mark(X1), mark(X2))) | | active#(from(X)) | → | mark#(cons(X, from(s(X)))) |
active#(from(X)) | → | s#(X) | | active#(quote1(cons(X, Z))) | → | quote#(X) |
mark#(from(X)) | → | active#(from(mark(X))) | | mark#(s1(X)) | → | active#(s1(mark(X))) |
mark#(first1(X1, X2)) | → | active#(first1(mark(X1), mark(X2))) | | mark#(first(X1, X2)) | → | mark#(X1) |
mark#(quote1(X)) | → | active#(quote1(X)) | | active#(quote1(cons(X, Z))) | → | mark#(cons1(quote(X), quote1(Z))) |
active#(quote(s(X))) | → | s1#(quote(X)) | | active#(first1(0, Z)) | → | mark#(nil1) |
mark#(unquote1(X)) | → | mark#(X) | | mark#(first1(X1, X2)) | → | mark#(X1) |
mark#(quote(X)) | → | active#(quote(X)) | | active#(sel(0, cons(X, Z))) | → | mark#(X) |
active#(sel(s(X), cons(Y, Z))) | → | mark#(sel(X, Z)) | | mark#(nil) | → | active#(nil) |
mark#(sel(X1, X2)) | → | mark#(X2) | | active#(from(X)) | → | cons#(X, from(s(X))) |
mark#(first1(X1, X2)) | → | mark#(X2) | | active#(quote(sel(X, Z))) | → | mark#(sel1(X, Z)) |
mark#(cons1(X1, X2)) | → | active#(cons1(mark(X1), mark(X2))) | | mark#(0) | → | active#(0) |
mark#(first(X1, X2)) | → | mark#(X2) | | mark#(fcons(X1, X2)) | → | mark#(X2) |
mark#(s(X)) | → | active#(s(mark(X))) | | mark#(fcons(X1, X2)) | → | mark#(X1) |
active#(quote(0)) | → | mark#(01) | | mark#(first(X1, X2)) | → | active#(first(mark(X1), mark(X2))) |
mark#(sel1(X1, X2)) | → | mark#(X2) | | mark#(cons1(X1, X2)) | → | mark#(X2) |
mark#(s1(X)) | → | mark#(X) | | active#(sel1(s(X), cons(Y, Z))) | → | mark#(sel1(X, Z)) |
active#(quote1(nil)) | → | mark#(nil1) | | active#(unquote(01)) | → | mark#(0) |
active#(first(0, Z)) | → | mark#(nil) | | mark#(sel1(X1, X2)) | → | mark#(X1) |
mark#(nil1) | → | active#(nil1) | | active#(unquote(s1(X))) | → | mark#(s(unquote(X))) |
active#(fcons(X, Z)) | → | mark#(cons(X, Z)) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, sel, first, cons, nil
Open Dependency Pair Problem 17
Dependency Pairs
mark#(cons(X1, X2)) | → | active#(cons(mark(X1), X2)) | | active#(unquote1(nil1)) | → | mark#(nil) |
mark#(fcons(X1, X2)) | → | active#(fcons(mark(X1), mark(X2))) | | active#(quote1(first(X, Z))) | → | mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) | → | active#(sel1(mark(X1), mark(X2))) | | mark#(01) | → | active#(01) |
active#(sel1(0, cons(X, Z))) | → | mark#(quote(X)) | | mark#(cons1(X1, X2)) | → | mark#(X1) |
active#(first1(s(X), cons(Y, Z))) | → | mark#(cons1(quote(Y), first1(X, Z))) | | active#(first(s(X), cons(Y, Z))) | → | mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) | → | mark#(X) | | mark#(s(X)) | → | mark#(X) |
mark#(sel(X1, X2)) | → | mark#(X1) | | active#(quote(s(X))) | → | mark#(s1(quote(X))) |
mark#(unquote1(X)) | → | active#(unquote1(mark(X))) | | active#(unquote1(cons1(X, Z))) | → | mark#(fcons(unquote(X), unquote1(Z))) |
mark#(from(X)) | → | mark#(X) | | mark#(cons(X1, X2)) | → | mark#(X1) |
mark#(unquote(X)) | → | active#(unquote(mark(X))) | | mark#(sel(X1, X2)) | → | active#(sel(mark(X1), mark(X2))) |
active#(from(X)) | → | mark#(cons(X, from(s(X)))) | | active#(unquote1(cons1(X, Z))) | → | unquote1#(Z) |
active#(from(X)) | → | s#(X) | | active#(quote1(cons(X, Z))) | → | quote#(X) |
mark#(from(X)) | → | active#(from(mark(X))) | | mark#(s1(X)) | → | active#(s1(mark(X))) |
mark#(first1(X1, X2)) | → | active#(first1(mark(X1), mark(X2))) | | mark#(first(X1, X2)) | → | mark#(X1) |
mark#(quote1(X)) | → | active#(quote1(X)) | | active#(quote1(cons(X, Z))) | → | mark#(cons1(quote(X), quote1(Z))) |
active#(quote(s(X))) | → | s1#(quote(X)) | | active#(first1(0, Z)) | → | mark#(nil1) |
mark#(unquote1(X)) | → | mark#(X) | | mark#(first1(X1, X2)) | → | mark#(X1) |
mark#(quote(X)) | → | active#(quote(X)) | | active#(sel(0, cons(X, Z))) | → | mark#(X) |
active#(sel(s(X), cons(Y, Z))) | → | mark#(sel(X, Z)) | | mark#(nil) | → | active#(nil) |
mark#(sel(X1, X2)) | → | mark#(X2) | | active#(from(X)) | → | cons#(X, from(s(X))) |
mark#(first1(X1, X2)) | → | mark#(X2) | | active#(quote(sel(X, Z))) | → | mark#(sel1(X, Z)) |
active#(quote1(first(X, Z))) | → | first1#(X, Z) | | mark#(cons1(X1, X2)) | → | active#(cons1(mark(X1), mark(X2))) |
mark#(0) | → | active#(0) | | mark#(first(X1, X2)) | → | mark#(X2) |
mark#(fcons(X1, X2)) | → | mark#(X2) | | mark#(s(X)) | → | active#(s(mark(X))) |
mark#(fcons(X1, X2)) | → | mark#(X1) | | active#(quote(0)) | → | mark#(01) |
mark#(first(X1, X2)) | → | active#(first(mark(X1), mark(X2))) | | mark#(sel1(X1, X2)) | → | mark#(X2) |
mark#(cons1(X1, X2)) | → | mark#(X2) | | mark#(s1(X)) | → | mark#(X) |
active#(sel1(s(X), cons(Y, Z))) | → | mark#(sel1(X, Z)) | | active#(quote1(nil)) | → | mark#(nil1) |
active#(unquote(01)) | → | mark#(0) | | active#(first(0, Z)) | → | mark#(nil) |
mark#(sel1(X1, X2)) | → | mark#(X1) | | active#(unquote(s1(X))) | → | mark#(s(unquote(X))) |
mark#(nil1) | → | active#(nil1) | | active#(fcons(X, Z)) | → | mark#(cons(X, Z)) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, sel, first, cons, nil
Open Dependency Pair Problem 16
Dependency Pairs
mark#(cons(X1, X2)) | → | active#(cons(mark(X1), X2)) | | active#(unquote1(nil1)) | → | mark#(nil) |
mark#(fcons(X1, X2)) | → | active#(fcons(mark(X1), mark(X2))) | | active#(quote1(first(X, Z))) | → | mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) | → | active#(sel1(mark(X1), mark(X2))) | | mark#(01) | → | active#(01) |
mark#(cons1(X1, X2)) | → | mark#(X1) | | active#(sel1(0, cons(X, Z))) | → | mark#(quote(X)) |
active#(first1(s(X), cons(Y, Z))) | → | mark#(cons1(quote(Y), first1(X, Z))) | | active#(first(s(X), cons(Y, Z))) | → | mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) | → | mark#(X) | | mark#(s(X)) | → | mark#(X) |
mark#(sel(X1, X2)) | → | mark#(X1) | | mark#(unquote1(X)) | → | active#(unquote1(mark(X))) |
active#(quote(s(X))) | → | mark#(s1(quote(X))) | | active#(unquote1(cons1(X, Z))) | → | mark#(fcons(unquote(X), unquote1(Z))) |
mark#(from(X)) | → | mark#(X) | | mark#(cons(X1, X2)) | → | mark#(X1) |
mark#(unquote(X)) | → | active#(unquote(mark(X))) | | active#(from(X)) | → | mark#(cons(X, from(s(X)))) |
mark#(sel(X1, X2)) | → | active#(sel(mark(X1), mark(X2))) | | active#(from(X)) | → | s#(X) |
active#(quote1(cons(X, Z))) | → | quote#(X) | | mark#(from(X)) | → | active#(from(mark(X))) |
mark#(s1(X)) | → | active#(s1(mark(X))) | | mark#(first(X1, X2)) | → | mark#(X1) |
mark#(first1(X1, X2)) | → | active#(first1(mark(X1), mark(X2))) | | mark#(quote1(X)) | → | active#(quote1(X)) |
active#(quote1(cons(X, Z))) | → | mark#(cons1(quote(X), quote1(Z))) | | active#(quote(s(X))) | → | s1#(quote(X)) |
active#(first1(0, Z)) | → | mark#(nil1) | | mark#(unquote1(X)) | → | mark#(X) |
mark#(first1(X1, X2)) | → | mark#(X1) | | mark#(quote(X)) | → | active#(quote(X)) |
active#(sel(0, cons(X, Z))) | → | mark#(X) | | active#(sel(s(X), cons(Y, Z))) | → | mark#(sel(X, Z)) |
mark#(nil) | → | active#(nil) | | mark#(sel(X1, X2)) | → | mark#(X2) |
mark#(first1(X1, X2)) | → | mark#(X2) | | active#(from(X)) | → | cons#(X, from(s(X))) |
active#(quote(sel(X, Z))) | → | mark#(sel1(X, Z)) | | mark#(cons1(X1, X2)) | → | active#(cons1(mark(X1), mark(X2))) |
mark#(first(X1, X2)) | → | mark#(X2) | | mark#(0) | → | active#(0) |
mark#(s(X)) | → | active#(s(mark(X))) | | mark#(fcons(X1, X2)) | → | mark#(X2) |
mark#(fcons(X1, X2)) | → | mark#(X1) | | mark#(first(X1, X2)) | → | active#(first(mark(X1), mark(X2))) |
active#(quote(0)) | → | mark#(01) | | mark#(sel1(X1, X2)) | → | mark#(X2) |
mark#(cons1(X1, X2)) | → | mark#(X2) | | mark#(s1(X)) | → | mark#(X) |
active#(sel1(s(X), cons(Y, Z))) | → | mark#(sel1(X, Z)) | | active#(quote1(nil)) | → | mark#(nil1) |
active#(unquote(01)) | → | mark#(0) | | active#(first(0, Z)) | → | mark#(nil) |
mark#(sel1(X1, X2)) | → | mark#(X1) | | mark#(nil1) | → | active#(nil1) |
active#(unquote(s1(X))) | → | mark#(s(unquote(X))) | | active#(fcons(X, Z)) | → | mark#(cons(X, Z)) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, sel, first, cons, nil
Open Dependency Pair Problem 19
Dependency Pairs
mark#(cons(X1, X2)) | → | active#(cons(mark(X1), X2)) | | active#(unquote1(nil1)) | → | mark#(nil) |
mark#(fcons(X1, X2)) | → | active#(fcons(mark(X1), mark(X2))) | | active#(quote1(first(X, Z))) | → | mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) | → | active#(sel1(mark(X1), mark(X2))) | | mark#(01) | → | active#(01) |
mark#(cons1(X1, X2)) | → | mark#(X1) | | active#(sel1(0, cons(X, Z))) | → | mark#(quote(X)) |
active#(first1(s(X), cons(Y, Z))) | → | mark#(cons1(quote(Y), first1(X, Z))) | | active#(first(s(X), cons(Y, Z))) | → | mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) | → | mark#(X) | | mark#(s(X)) | → | mark#(X) |
mark#(sel(X1, X2)) | → | mark#(X1) | | active#(quote(s(X))) | → | mark#(s1(quote(X))) |
mark#(unquote1(X)) | → | active#(unquote1(mark(X))) | | active#(unquote1(cons1(X, Z))) | → | mark#(fcons(unquote(X), unquote1(Z))) |
mark#(from(X)) | → | mark#(X) | | mark#(cons(X1, X2)) | → | mark#(X1) |
mark#(unquote(X)) | → | active#(unquote(mark(X))) | | active#(from(X)) | → | mark#(cons(X, from(s(X)))) |
mark#(sel(X1, X2)) | → | active#(sel(mark(X1), mark(X2))) | | active#(unquote1(cons1(X, Z))) | → | unquote1#(Z) |
active#(quote1(cons(X, Z))) | → | quote#(X) | | active#(from(X)) | → | s#(X) |
mark#(from(X)) | → | active#(from(mark(X))) | | mark#(s1(X)) | → | active#(s1(mark(X))) |
mark#(first1(X1, X2)) | → | active#(first1(mark(X1), mark(X2))) | | mark#(first(X1, X2)) | → | mark#(X1) |
mark#(quote1(X)) | → | active#(quote1(X)) | | active#(quote1(cons(X, Z))) | → | mark#(cons1(quote(X), quote1(Z))) |
active#(quote(s(X))) | → | s1#(quote(X)) | | active#(first1(0, Z)) | → | mark#(nil1) |
mark#(unquote1(X)) | → | mark#(X) | | mark#(first1(X1, X2)) | → | mark#(X1) |
mark#(quote(X)) | → | active#(quote(X)) | | active#(sel(0, cons(X, Z))) | → | mark#(X) |
active#(sel(s(X), cons(Y, Z))) | → | mark#(sel(X, Z)) | | mark#(nil) | → | active#(nil) |
mark#(sel(X1, X2)) | → | mark#(X2) | | active#(from(X)) | → | cons#(X, from(s(X))) |
mark#(first1(X1, X2)) | → | mark#(X2) | | active#(quote(sel(X, Z))) | → | mark#(sel1(X, Z)) |
mark#(cons1(X1, X2)) | → | active#(cons1(mark(X1), mark(X2))) | | mark#(0) | → | active#(0) |
mark#(first(X1, X2)) | → | mark#(X2) | | mark#(s(X)) | → | active#(s(mark(X))) |
mark#(fcons(X1, X2)) | → | mark#(X2) | | mark#(fcons(X1, X2)) | → | mark#(X1) |
mark#(first(X1, X2)) | → | active#(first(mark(X1), mark(X2))) | | active#(quote(0)) | → | mark#(01) |
mark#(sel1(X1, X2)) | → | mark#(X2) | | mark#(cons1(X1, X2)) | → | mark#(X2) |
mark#(s1(X)) | → | mark#(X) | | active#(sel1(s(X), cons(Y, Z))) | → | mark#(sel1(X, Z)) |
active#(quote1(nil)) | → | mark#(nil1) | | active#(unquote(01)) | → | mark#(0) |
active#(first(0, Z)) | → | mark#(nil) | | mark#(sel1(X1, X2)) | → | mark#(X1) |
mark#(nil1) | → | active#(nil1) | | active#(unquote(s1(X))) | → | mark#(s(unquote(X))) |
active#(fcons(X, Z)) | → | mark#(cons(X, Z)) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, sel, first, cons, nil
Open Dependency Pair Problem 18
Dependency Pairs
mark#(cons(X1, X2)) | → | active#(cons(mark(X1), X2)) | | active#(unquote1(nil1)) | → | mark#(nil) |
mark#(fcons(X1, X2)) | → | active#(fcons(mark(X1), mark(X2))) | | active#(quote1(first(X, Z))) | → | mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) | → | active#(sel1(mark(X1), mark(X2))) | | mark#(01) | → | active#(01) |
active#(sel1(0, cons(X, Z))) | → | mark#(quote(X)) | | mark#(cons1(X1, X2)) | → | mark#(X1) |
active#(fcons(X, Z)) | → | cons#(X, Z) | | active#(first1(s(X), cons(Y, Z))) | → | mark#(cons1(quote(Y), first1(X, Z))) |
active#(first(s(X), cons(Y, Z))) | → | mark#(cons(Y, first(X, Z))) | | mark#(unquote(X)) | → | mark#(X) |
mark#(s(X)) | → | mark#(X) | | mark#(sel(X1, X2)) | → | mark#(X1) |
mark#(unquote1(X)) | → | active#(unquote1(mark(X))) | | active#(quote(s(X))) | → | mark#(s1(quote(X))) |
active#(unquote1(cons1(X, Z))) | → | mark#(fcons(unquote(X), unquote1(Z))) | | mark#(from(X)) | → | mark#(X) |
mark#(cons(X1, X2)) | → | mark#(X1) | | mark#(unquote(X)) | → | active#(unquote(mark(X))) |
mark#(sel(X1, X2)) | → | active#(sel(mark(X1), mark(X2))) | | active#(from(X)) | → | mark#(cons(X, from(s(X)))) |
active#(from(X)) | → | s#(X) | | mark#(from(X)) | → | active#(from(mark(X))) |
mark#(s1(X)) | → | active#(s1(mark(X))) | | mark#(first1(X1, X2)) | → | active#(first1(mark(X1), mark(X2))) |
mark#(first(X1, X2)) | → | mark#(X1) | | mark#(quote1(X)) | → | active#(quote1(X)) |
active#(quote1(cons(X, Z))) | → | mark#(cons1(quote(X), quote1(Z))) | | active#(first1(0, Z)) | → | mark#(nil1) |
mark#(unquote1(X)) | → | mark#(X) | | mark#(quote(X)) | → | active#(quote(X)) |
mark#(first1(X1, X2)) | → | mark#(X1) | | active#(sel(0, cons(X, Z))) | → | mark#(X) |
active#(sel(s(X), cons(Y, Z))) | → | mark#(sel(X, Z)) | | mark#(nil) | → | active#(nil) |
mark#(sel(X1, X2)) | → | mark#(X2) | | mark#(first1(X1, X2)) | → | mark#(X2) |
active#(quote(sel(X, Z))) | → | mark#(sel1(X, Z)) | | mark#(cons1(X1, X2)) | → | active#(cons1(mark(X1), mark(X2))) |
mark#(0) | → | active#(0) | | mark#(first(X1, X2)) | → | mark#(X2) |
mark#(fcons(X1, X2)) | → | mark#(X2) | | mark#(s(X)) | → | active#(s(mark(X))) |
mark#(fcons(X1, X2)) | → | mark#(X1) | | active#(quote(0)) | → | mark#(01) |
mark#(first(X1, X2)) | → | active#(first(mark(X1), mark(X2))) | | mark#(sel1(X1, X2)) | → | mark#(X2) |
mark#(cons1(X1, X2)) | → | mark#(X2) | | mark#(s1(X)) | → | mark#(X) |
active#(sel1(s(X), cons(Y, Z))) | → | mark#(sel1(X, Z)) | | active#(quote1(nil)) | → | mark#(nil1) |
active#(unquote(01)) | → | mark#(0) | | active#(first(0, Z)) | → | mark#(nil) |
mark#(sel1(X1, X2)) | → | mark#(X1) | | active#(unquote(s1(X))) | → | mark#(s(unquote(X))) |
mark#(nil1) | → | active#(nil1) | | active#(fcons(X, Z)) | → | mark#(cons(X, Z)) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, sel, first, cons, nil
Open Dependency Pair Problem 21
Dependency Pairs
sel#(mark(X1), X2) | → | sel#(X1, X2) | | sel#(active(X1), X2) | → | sel#(X1, X2) |
sel#(X1, active(X2)) | → | sel#(X1, X2) | | sel#(X1, mark(X2)) | → | sel#(X1, X2) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, sel, first, cons, nil
Open Dependency Pair Problem 20
Dependency Pairs
mark#(cons(X1, X2)) | → | active#(cons(mark(X1), X2)) | | active#(unquote1(nil1)) | → | mark#(nil) |
mark#(fcons(X1, X2)) | → | active#(fcons(mark(X1), mark(X2))) | | active#(quote1(first(X, Z))) | → | mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) | → | active#(sel1(mark(X1), mark(X2))) | | mark#(01) | → | active#(01) |
mark#(cons1(X1, X2)) | → | mark#(X1) | | active#(sel1(0, cons(X, Z))) | → | mark#(quote(X)) |
active#(first1(s(X), cons(Y, Z))) | → | mark#(cons1(quote(Y), first1(X, Z))) | | active#(first(s(X), cons(Y, Z))) | → | mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) | → | mark#(X) | | mark#(s(X)) | → | mark#(X) |
mark#(sel(X1, X2)) | → | mark#(X1) | | active#(quote(s(X))) | → | mark#(s1(quote(X))) |
mark#(unquote1(X)) | → | active#(unquote1(mark(X))) | | active#(sel(s(X), cons(Y, Z))) | → | sel#(X, Z) |
active#(unquote1(cons1(X, Z))) | → | mark#(fcons(unquote(X), unquote1(Z))) | | mark#(from(X)) | → | mark#(X) |
mark#(cons(X1, X2)) | → | mark#(X1) | | mark#(unquote(X)) | → | active#(unquote(mark(X))) |
mark#(sel(X1, X2)) | → | active#(sel(mark(X1), mark(X2))) | | active#(from(X)) | → | mark#(cons(X, from(s(X)))) |
mark#(from(X)) | → | active#(from(mark(X))) | | mark#(s1(X)) | → | active#(s1(mark(X))) |
mark#(first1(X1, X2)) | → | active#(first1(mark(X1), mark(X2))) | | mark#(first(X1, X2)) | → | mark#(X1) |
mark#(quote1(X)) | → | active#(quote1(X)) | | active#(quote1(cons(X, Z))) | → | mark#(cons1(quote(X), quote1(Z))) |
active#(quote(s(X))) | → | s1#(quote(X)) | | active#(first1(0, Z)) | → | mark#(nil1) |
mark#(unquote1(X)) | → | mark#(X) | | mark#(first1(X1, X2)) | → | mark#(X1) |
mark#(quote(X)) | → | active#(quote(X)) | | active#(sel(0, cons(X, Z))) | → | mark#(X) |
active#(sel(s(X), cons(Y, Z))) | → | mark#(sel(X, Z)) | | mark#(nil) | → | active#(nil) |
mark#(sel(X1, X2)) | → | mark#(X2) | | mark#(first1(X1, X2)) | → | mark#(X2) |
active#(from(X)) | → | cons#(X, from(s(X))) | | active#(quote(sel(X, Z))) | → | mark#(sel1(X, Z)) |
mark#(cons1(X1, X2)) | → | active#(cons1(mark(X1), mark(X2))) | | mark#(first(X1, X2)) | → | mark#(X2) |
mark#(0) | → | active#(0) | | mark#(s(X)) | → | active#(s(mark(X))) |
mark#(fcons(X1, X2)) | → | mark#(X2) | | mark#(fcons(X1, X2)) | → | mark#(X1) |
active#(quote(0)) | → | mark#(01) | | mark#(first(X1, X2)) | → | active#(first(mark(X1), mark(X2))) |
mark#(sel1(X1, X2)) | → | mark#(X2) | | mark#(cons1(X1, X2)) | → | mark#(X2) |
mark#(s1(X)) | → | mark#(X) | | active#(sel1(s(X), cons(Y, Z))) | → | mark#(sel1(X, Z)) |
active#(quote1(nil)) | → | mark#(nil1) | | active#(unquote(01)) | → | mark#(0) |
active#(first(0, Z)) | → | mark#(nil) | | mark#(sel1(X1, X2)) | → | mark#(X1) |
mark#(nil1) | → | active#(nil1) | | active#(unquote(s1(X))) | → | mark#(s(unquote(X))) |
active#(fcons(X, Z)) | → | mark#(cons(X, Z)) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, sel, first, cons, nil
Open Dependency Pair Problem 23
Dependency Pairs
mark#(cons(X1, X2)) | → | active#(cons(mark(X1), X2)) | | active#(unquote1(nil1)) | → | mark#(nil) |
mark#(fcons(X1, X2)) | → | active#(fcons(mark(X1), mark(X2))) | | active#(quote1(first(X, Z))) | → | mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) | → | active#(sel1(mark(X1), mark(X2))) | | mark#(01) | → | active#(01) |
mark#(cons1(X1, X2)) | → | mark#(X1) | | active#(sel1(0, cons(X, Z))) | → | mark#(quote(X)) |
active#(fcons(X, Z)) | → | cons#(X, Z) | | active#(first1(s(X), cons(Y, Z))) | → | mark#(cons1(quote(Y), first1(X, Z))) |
active#(first(s(X), cons(Y, Z))) | → | mark#(cons(Y, first(X, Z))) | | mark#(unquote(X)) | → | mark#(X) |
mark#(s(X)) | → | mark#(X) | | mark#(sel(X1, X2)) | → | mark#(X1) |
mark#(unquote1(X)) | → | active#(unquote1(mark(X))) | | active#(quote(s(X))) | → | mark#(s1(quote(X))) |
active#(unquote1(cons1(X, Z))) | → | mark#(fcons(unquote(X), unquote1(Z))) | | mark#(from(X)) | → | mark#(X) |
mark#(cons(X1, X2)) | → | mark#(X1) | | mark#(unquote(X)) | → | active#(unquote(mark(X))) |
mark#(sel(X1, X2)) | → | active#(sel(mark(X1), mark(X2))) | | active#(from(X)) | → | mark#(cons(X, from(s(X)))) |
active#(unquote1(cons1(X, Z))) | → | unquote1#(Z) | | active#(from(X)) | → | s#(X) |
mark#(from(X)) | → | active#(from(mark(X))) | | mark#(s1(X)) | → | active#(s1(mark(X))) |
mark#(first(X1, X2)) | → | mark#(X1) | | mark#(first1(X1, X2)) | → | active#(first1(mark(X1), mark(X2))) |
mark#(quote1(X)) | → | active#(quote1(X)) | | active#(quote1(cons(X, Z))) | → | mark#(cons1(quote(X), quote1(Z))) |
active#(first1(0, Z)) | → | mark#(nil1) | | mark#(unquote1(X)) | → | mark#(X) |
mark#(first1(X1, X2)) | → | mark#(X1) | | mark#(quote(X)) | → | active#(quote(X)) |
active#(sel(0, cons(X, Z))) | → | mark#(X) | | active#(sel(s(X), cons(Y, Z))) | → | mark#(sel(X, Z)) |
mark#(nil) | → | active#(nil) | | mark#(sel(X1, X2)) | → | mark#(X2) |
mark#(first1(X1, X2)) | → | mark#(X2) | | active#(quote(sel(X, Z))) | → | mark#(sel1(X, Z)) |
mark#(cons1(X1, X2)) | → | active#(cons1(mark(X1), mark(X2))) | | mark#(first(X1, X2)) | → | mark#(X2) |
mark#(0) | → | active#(0) | | mark#(s(X)) | → | active#(s(mark(X))) |
mark#(fcons(X1, X2)) | → | mark#(X2) | | mark#(fcons(X1, X2)) | → | mark#(X1) |
mark#(first(X1, X2)) | → | active#(first(mark(X1), mark(X2))) | | active#(quote(0)) | → | mark#(01) |
mark#(sel1(X1, X2)) | → | mark#(X2) | | mark#(cons1(X1, X2)) | → | mark#(X2) |
mark#(s1(X)) | → | mark#(X) | | active#(sel1(s(X), cons(Y, Z))) | → | mark#(sel1(X, Z)) |
active#(quote1(nil)) | → | mark#(nil1) | | active#(unquote(01)) | → | mark#(0) |
active#(first(0, Z)) | → | mark#(nil) | | mark#(sel1(X1, X2)) | → | mark#(X1) |
active#(unquote(s1(X))) | → | mark#(s(unquote(X))) | | mark#(nil1) | → | active#(nil1) |
active#(fcons(X, Z)) | → | mark#(cons(X, Z)) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, sel, first, cons, nil
Open Dependency Pair Problem 22
Dependency Pairs
mark#(cons(X1, X2)) | → | active#(cons(mark(X1), X2)) | | active#(unquote1(nil1)) | → | mark#(nil) |
mark#(fcons(X1, X2)) | → | active#(fcons(mark(X1), mark(X2))) | | active#(quote1(first(X, Z))) | → | mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) | → | active#(sel1(mark(X1), mark(X2))) | | mark#(01) | → | active#(01) |
active#(sel1(0, cons(X, Z))) | → | mark#(quote(X)) | | active#(first(s(X), cons(Y, Z))) | → | cons#(Y, first(X, Z)) |
mark#(cons1(X1, X2)) | → | mark#(X1) | | active#(first1(s(X), cons(Y, Z))) | → | mark#(cons1(quote(Y), first1(X, Z))) |
active#(first(s(X), cons(Y, Z))) | → | mark#(cons(Y, first(X, Z))) | | mark#(unquote(X)) | → | mark#(X) |
mark#(s(X)) | → | mark#(X) | | mark#(sel(X1, X2)) | → | mark#(X1) |
mark#(unquote1(X)) | → | active#(unquote1(mark(X))) | | active#(quote(s(X))) | → | mark#(s1(quote(X))) |
active#(unquote1(cons1(X, Z))) | → | mark#(fcons(unquote(X), unquote1(Z))) | | mark#(from(X)) | → | mark#(X) |
mark#(cons(X1, X2)) | → | mark#(X1) | | mark#(unquote(X)) | → | active#(unquote(mark(X))) |
active#(from(X)) | → | mark#(cons(X, from(s(X)))) | | mark#(sel(X1, X2)) | → | active#(sel(mark(X1), mark(X2))) |
active#(quote1(cons(X, Z))) | → | quote#(X) | | mark#(from(X)) | → | active#(from(mark(X))) |
mark#(s1(X)) | → | active#(s1(mark(X))) | | mark#(first(X1, X2)) | → | mark#(X1) |
mark#(first1(X1, X2)) | → | active#(first1(mark(X1), mark(X2))) | | mark#(quote1(X)) | → | active#(quote1(X)) |
active#(quote1(cons(X, Z))) | → | mark#(cons1(quote(X), quote1(Z))) | | active#(quote(s(X))) | → | s1#(quote(X)) |
active#(first1(0, Z)) | → | mark#(nil1) | | mark#(unquote1(X)) | → | mark#(X) |
mark#(first1(X1, X2)) | → | mark#(X1) | | mark#(quote(X)) | → | active#(quote(X)) |
active#(sel(0, cons(X, Z))) | → | mark#(X) | | active#(sel(s(X), cons(Y, Z))) | → | mark#(sel(X, Z)) |
mark#(nil) | → | active#(nil) | | mark#(sel(X1, X2)) | → | mark#(X2) |
mark#(first1(X1, X2)) | → | mark#(X2) | | active#(quote(sel(X, Z))) | → | mark#(sel1(X, Z)) |
mark#(cons1(X1, X2)) | → | active#(cons1(mark(X1), mark(X2))) | | mark#(0) | → | active#(0) |
mark#(first(X1, X2)) | → | mark#(X2) | | mark#(fcons(X1, X2)) | → | mark#(X2) |
mark#(s(X)) | → | active#(s(mark(X))) | | mark#(fcons(X1, X2)) | → | mark#(X1) |
mark#(first(X1, X2)) | → | active#(first(mark(X1), mark(X2))) | | active#(quote(0)) | → | mark#(01) |
mark#(sel1(X1, X2)) | → | mark#(X2) | | mark#(cons1(X1, X2)) | → | mark#(X2) |
mark#(s1(X)) | → | mark#(X) | | active#(sel1(s(X), cons(Y, Z))) | → | mark#(sel1(X, Z)) |
active#(quote1(nil)) | → | mark#(nil1) | | active#(unquote(01)) | → | mark#(0) |
active#(first(0, Z)) | → | mark#(nil) | | mark#(sel1(X1, X2)) | → | sel1#(mark(X1), mark(X2)) |
mark#(sel1(X1, X2)) | → | mark#(X1) | | active#(unquote(s1(X))) | → | mark#(s(unquote(X))) |
mark#(nil1) | → | active#(nil1) | | active#(fcons(X, Z)) | → | mark#(cons(X, Z)) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, sel, first, cons, nil
Open Dependency Pair Problem 25
Dependency Pairs
mark#(cons(X1, X2)) | → | active#(cons(mark(X1), X2)) | | active#(unquote1(nil1)) | → | mark#(nil) |
mark#(fcons(X1, X2)) | → | active#(fcons(mark(X1), mark(X2))) | | active#(quote1(first(X, Z))) | → | mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) | → | active#(sel1(mark(X1), mark(X2))) | | mark#(01) | → | active#(01) |
active#(sel1(0, cons(X, Z))) | → | mark#(quote(X)) | | mark#(cons1(X1, X2)) | → | mark#(X1) |
active#(fcons(X, Z)) | → | cons#(X, Z) | | active#(first1(s(X), cons(Y, Z))) | → | mark#(cons1(quote(Y), first1(X, Z))) |
active#(first(s(X), cons(Y, Z))) | → | mark#(cons(Y, first(X, Z))) | | mark#(unquote(X)) | → | mark#(X) |
mark#(s(X)) | → | mark#(X) | | mark#(sel(X1, X2)) | → | mark#(X1) |
mark#(unquote1(X)) | → | active#(unquote1(mark(X))) | | active#(quote(s(X))) | → | mark#(s1(quote(X))) |
active#(sel(s(X), cons(Y, Z))) | → | sel#(X, Z) | | active#(unquote1(cons1(X, Z))) | → | mark#(fcons(unquote(X), unquote1(Z))) |
mark#(from(X)) | → | mark#(X) | | mark#(cons(X1, X2)) | → | mark#(X1) |
mark#(unquote(X)) | → | active#(unquote(mark(X))) | | mark#(sel(X1, X2)) | → | active#(sel(mark(X1), mark(X2))) |
active#(from(X)) | → | mark#(cons(X, from(s(X)))) | | active#(from(X)) | → | s#(X) |
active#(quote1(cons(X, Z))) | → | quote#(X) | | mark#(from(X)) | → | active#(from(mark(X))) |
mark#(s1(X)) | → | active#(s1(mark(X))) | | mark#(first1(X1, X2)) | → | active#(first1(mark(X1), mark(X2))) |
mark#(first(X1, X2)) | → | mark#(X1) | | mark#(quote1(X)) | → | active#(quote1(X)) |
active#(quote1(cons(X, Z))) | → | mark#(cons1(quote(X), quote1(Z))) | | active#(quote(s(X))) | → | s1#(quote(X)) |
active#(first1(0, Z)) | → | mark#(nil1) | | mark#(unquote1(X)) | → | mark#(X) |
mark#(first1(X1, X2)) | → | mark#(X1) | | mark#(quote(X)) | → | active#(quote(X)) |
active#(sel(0, cons(X, Z))) | → | mark#(X) | | active#(sel(s(X), cons(Y, Z))) | → | mark#(sel(X, Z)) |
mark#(nil) | → | active#(nil) | | mark#(sel(X1, X2)) | → | mark#(X2) |
active#(from(X)) | → | cons#(X, from(s(X))) | | mark#(first1(X1, X2)) | → | mark#(X2) |
active#(quote(sel(X, Z))) | → | mark#(sel1(X, Z)) | | mark#(cons1(X1, X2)) | → | active#(cons1(mark(X1), mark(X2))) |
mark#(first(X1, X2)) | → | mark#(X2) | | mark#(0) | → | active#(0) |
mark#(s(X)) | → | active#(s(mark(X))) | | mark#(fcons(X1, X2)) | → | mark#(X2) |
mark#(fcons(X1, X2)) | → | mark#(X1) | | active#(quote(0)) | → | mark#(01) |
mark#(first(X1, X2)) | → | active#(first(mark(X1), mark(X2))) | | mark#(sel1(X1, X2)) | → | mark#(X2) |
mark#(cons1(X1, X2)) | → | mark#(X2) | | mark#(s1(X)) | → | mark#(X) |
active#(sel1(s(X), cons(Y, Z))) | → | mark#(sel1(X, Z)) | | active#(quote1(nil)) | → | mark#(nil1) |
active#(unquote(01)) | → | mark#(0) | | active#(first(0, Z)) | → | mark#(nil) |
mark#(sel1(X1, X2)) | → | mark#(X1) | | mark#(nil1) | → | active#(nil1) |
active#(unquote(s1(X))) | → | mark#(s(unquote(X))) | | active#(fcons(X, Z)) | → | mark#(cons(X, Z)) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, sel, first, cons, nil
Open Dependency Pair Problem 24
Dependency Pairs
first#(active(X1), X2) | → | first#(X1, X2) | | first#(mark(X1), X2) | → | first#(X1, X2) |
first#(X1, mark(X2)) | → | first#(X1, X2) | | first#(X1, active(X2)) | → | first#(X1, X2) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, sel, first, cons, nil
Open Dependency Pair Problem 27
Dependency Pairs
mark#(cons(X1, X2)) | → | active#(cons(mark(X1), X2)) | | active#(unquote1(nil1)) | → | mark#(nil) |
mark#(fcons(X1, X2)) | → | active#(fcons(mark(X1), mark(X2))) | | active#(quote1(first(X, Z))) | → | mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) | → | active#(sel1(mark(X1), mark(X2))) | | mark#(01) | → | active#(01) |
active#(sel1(0, cons(X, Z))) | → | mark#(quote(X)) | | mark#(cons1(X1, X2)) | → | mark#(X1) |
active#(first1(s(X), cons(Y, Z))) | → | mark#(cons1(quote(Y), first1(X, Z))) | | active#(first(s(X), cons(Y, Z))) | → | mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) | → | mark#(X) | | mark#(s(X)) | → | mark#(X) |
mark#(sel(X1, X2)) | → | mark#(X1) | | mark#(unquote1(X)) | → | active#(unquote1(mark(X))) |
active#(quote(s(X))) | → | mark#(s1(quote(X))) | | active#(sel(s(X), cons(Y, Z))) | → | sel#(X, Z) |
active#(unquote1(cons1(X, Z))) | → | mark#(fcons(unquote(X), unquote1(Z))) | | mark#(from(X)) | → | mark#(X) |
mark#(cons(X1, X2)) | → | mark#(X1) | | active#(quote(s(X))) | → | quote#(X) |
mark#(unquote(X)) | → | active#(unquote(mark(X))) | | active#(first1(s(X), cons(Y, Z))) | → | cons1#(quote(Y), first1(X, Z)) |
mark#(sel(X1, X2)) | → | active#(sel(mark(X1), mark(X2))) | | active#(from(X)) | → | mark#(cons(X, from(s(X)))) |
active#(unquote1(cons1(X, Z))) | → | unquote1#(Z) | | mark#(from(X)) | → | active#(from(mark(X))) |
mark#(s1(X)) | → | active#(s1(mark(X))) | | mark#(first1(X1, X2)) | → | active#(first1(mark(X1), mark(X2))) |
mark#(first(X1, X2)) | → | mark#(X1) | | mark#(quote1(X)) | → | active#(quote1(X)) |
active#(quote1(cons(X, Z))) | → | mark#(cons1(quote(X), quote1(Z))) | | active#(quote(s(X))) | → | s1#(quote(X)) |
active#(first1(0, Z)) | → | mark#(nil1) | | mark#(unquote1(X)) | → | mark#(X) |
mark#(first1(X1, X2)) | → | mark#(X1) | | mark#(quote(X)) | → | active#(quote(X)) |
active#(sel(0, cons(X, Z))) | → | mark#(X) | | active#(sel(s(X), cons(Y, Z))) | → | mark#(sel(X, Z)) |
mark#(nil) | → | active#(nil) | | mark#(sel(X1, X2)) | → | mark#(X2) |
active#(from(X)) | → | cons#(X, from(s(X))) | | mark#(first1(X1, X2)) | → | mark#(X2) |
active#(quote(sel(X, Z))) | → | mark#(sel1(X, Z)) | | mark#(cons1(X1, X2)) | → | active#(cons1(mark(X1), mark(X2))) |
mark#(first(X1, X2)) | → | mark#(X2) | | mark#(0) | → | active#(0) |
mark#(s(X)) | → | active#(s(mark(X))) | | mark#(fcons(X1, X2)) | → | mark#(X2) |
mark#(fcons(X1, X2)) | → | mark#(X1) | | mark#(first(X1, X2)) | → | active#(first(mark(X1), mark(X2))) |
active#(quote(0)) | → | mark#(01) | | mark#(sel1(X1, X2)) | → | mark#(X2) |
mark#(cons1(X1, X2)) | → | mark#(X2) | | mark#(s1(X)) | → | mark#(X) |
active#(sel1(s(X), cons(Y, Z))) | → | mark#(sel1(X, Z)) | | active#(quote1(nil)) | → | mark#(nil1) |
active#(unquote(01)) | → | mark#(0) | | active#(first(0, Z)) | → | mark#(nil) |
mark#(sel1(X1, X2)) | → | mark#(X1) | | mark#(nil1) | → | active#(nil1) |
active#(unquote(s1(X))) | → | mark#(s(unquote(X))) | | active#(fcons(X, Z)) | → | mark#(cons(X, Z)) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, sel, first, cons, nil
Open Dependency Pair Problem 26
Dependency Pairs
mark#(cons(X1, X2)) | → | active#(cons(mark(X1), X2)) | | active#(unquote1(nil1)) | → | mark#(nil) |
mark#(fcons(X1, X2)) | → | active#(fcons(mark(X1), mark(X2))) | | active#(quote1(first(X, Z))) | → | mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) | → | active#(sel1(mark(X1), mark(X2))) | | mark#(01) | → | active#(01) |
mark#(cons1(X1, X2)) | → | mark#(X1) | | active#(sel1(0, cons(X, Z))) | → | mark#(quote(X)) |
active#(first1(s(X), cons(Y, Z))) | → | mark#(cons1(quote(Y), first1(X, Z))) | | active#(first(s(X), cons(Y, Z))) | → | mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) | → | mark#(X) | | mark#(s(X)) | → | mark#(X) |
mark#(sel(X1, X2)) | → | mark#(X1) | | mark#(unquote1(X)) | → | active#(unquote1(mark(X))) |
active#(quote(s(X))) | → | mark#(s1(quote(X))) | | active#(unquote1(cons1(X, Z))) | → | mark#(fcons(unquote(X), unquote1(Z))) |
mark#(from(X)) | → | mark#(X) | | mark#(cons(X1, X2)) | → | mark#(X1) |
mark#(unquote(X)) | → | active#(unquote(mark(X))) | | active#(from(X)) | → | mark#(cons(X, from(s(X)))) |
mark#(sel(X1, X2)) | → | active#(sel(mark(X1), mark(X2))) | | active#(from(X)) | → | s#(X) |
mark#(from(X)) | → | active#(from(mark(X))) | | mark#(s1(X)) | → | active#(s1(mark(X))) |
mark#(first1(X1, X2)) | → | active#(first1(mark(X1), mark(X2))) | | mark#(first(X1, X2)) | → | mark#(X1) |
mark#(quote1(X)) | → | active#(quote1(X)) | | active#(quote1(cons(X, Z))) | → | mark#(cons1(quote(X), quote1(Z))) |
active#(first1(0, Z)) | → | mark#(nil1) | | mark#(unquote1(X)) | → | mark#(X) |
mark#(first1(X1, X2)) | → | mark#(X1) | | mark#(quote(X)) | → | active#(quote(X)) |
active#(sel(0, cons(X, Z))) | → | mark#(X) | | active#(sel(s(X), cons(Y, Z))) | → | mark#(sel(X, Z)) |
mark#(nil) | → | active#(nil) | | mark#(sel(X1, X2)) | → | mark#(X2) |
mark#(first1(X1, X2)) | → | mark#(X2) | | active#(quote(sel(X, Z))) | → | mark#(sel1(X, Z)) |
mark#(cons1(X1, X2)) | → | active#(cons1(mark(X1), mark(X2))) | | mark#(first(X1, X2)) | → | mark#(X2) |
mark#(0) | → | active#(0) | | mark#(s(X)) | → | active#(s(mark(X))) |
mark#(fcons(X1, X2)) | → | mark#(X2) | | mark#(fcons(X1, X2)) | → | mark#(X1) |
mark#(first(X1, X2)) | → | active#(first(mark(X1), mark(X2))) | | active#(quote(0)) | → | mark#(01) |
mark#(sel1(X1, X2)) | → | mark#(X2) | | mark#(cons1(X1, X2)) | → | mark#(X2) |
mark#(s1(X)) | → | mark#(X) | | active#(sel1(s(X), cons(Y, Z))) | → | mark#(sel1(X, Z)) |
active#(quote1(nil)) | → | mark#(nil1) | | active#(unquote(01)) | → | mark#(0) |
active#(first(0, Z)) | → | mark#(nil) | | mark#(sel1(X1, X2)) | → | mark#(X1) |
active#(unquote(s1(X))) | → | mark#(s(unquote(X))) | | mark#(nil1) | → | active#(nil1) |
active#(fcons(X, Z)) | → | mark#(cons(X, Z)) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, sel, first, cons, nil
Open Dependency Pair Problem 28
Dependency Pairs
mark#(cons(X1, X2)) | → | active#(cons(mark(X1), X2)) | | active#(unquote1(nil1)) | → | mark#(nil) |
mark#(fcons(X1, X2)) | → | active#(fcons(mark(X1), mark(X2))) | | active#(quote1(first(X, Z))) | → | mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) | → | active#(sel1(mark(X1), mark(X2))) | | mark#(01) | → | active#(01) |
mark#(cons1(X1, X2)) | → | mark#(X1) | | active#(sel1(0, cons(X, Z))) | → | mark#(quote(X)) |
active#(fcons(X, Z)) | → | cons#(X, Z) | | active#(first1(s(X), cons(Y, Z))) | → | mark#(cons1(quote(Y), first1(X, Z))) |
active#(first(s(X), cons(Y, Z))) | → | mark#(cons(Y, first(X, Z))) | | mark#(unquote(X)) | → | mark#(X) |
mark#(s(X)) | → | mark#(X) | | mark#(sel(X1, X2)) | → | mark#(X1) |
active#(quote(s(X))) | → | mark#(s1(quote(X))) | | mark#(unquote1(X)) | → | active#(unquote1(mark(X))) |
active#(sel(s(X), cons(Y, Z))) | → | sel#(X, Z) | | active#(unquote1(cons1(X, Z))) | → | mark#(fcons(unquote(X), unquote1(Z))) |
mark#(from(X)) | → | mark#(X) | | mark#(cons(X1, X2)) | → | mark#(X1) |
mark#(unquote(X)) | → | active#(unquote(mark(X))) | | mark#(sel(X1, X2)) | → | active#(sel(mark(X1), mark(X2))) |
active#(from(X)) | → | mark#(cons(X, from(s(X)))) | | active#(unquote1(cons1(X, Z))) | → | unquote1#(Z) |
active#(quote1(cons(X, Z))) | → | quote#(X) | | active#(from(X)) | → | s#(X) |
mark#(from(X)) | → | active#(from(mark(X))) | | mark#(s1(X)) | → | active#(s1(mark(X))) |
mark#(first1(X1, X2)) | → | active#(first1(mark(X1), mark(X2))) | | mark#(first(X1, X2)) | → | mark#(X1) |
mark#(quote1(X)) | → | active#(quote1(X)) | | active#(quote1(cons(X, Z))) | → | mark#(cons1(quote(X), quote1(Z))) |
active#(quote(s(X))) | → | s1#(quote(X)) | | active#(first1(0, Z)) | → | mark#(nil1) |
mark#(unquote1(X)) | → | mark#(X) | | mark#(first1(X1, X2)) | → | mark#(X1) |
mark#(quote(X)) | → | active#(quote(X)) | | active#(sel(0, cons(X, Z))) | → | mark#(X) |
active#(sel(s(X), cons(Y, Z))) | → | mark#(sel(X, Z)) | | mark#(nil) | → | active#(nil) |
mark#(sel(X1, X2)) | → | mark#(X2) | | mark#(first1(X1, X2)) | → | mark#(X2) |
active#(quote(sel(X, Z))) | → | mark#(sel1(X, Z)) | | mark#(cons1(X1, X2)) | → | active#(cons1(mark(X1), mark(X2))) |
mark#(first(X1, X2)) | → | mark#(X2) | | mark#(0) | → | active#(0) |
mark#(s(X)) | → | active#(s(mark(X))) | | mark#(fcons(X1, X2)) | → | mark#(X2) |
mark#(fcons(X1, X2)) | → | mark#(X1) | | active#(quote(0)) | → | mark#(01) |
mark#(first(X1, X2)) | → | active#(first(mark(X1), mark(X2))) | | mark#(sel1(X1, X2)) | → | mark#(X2) |
mark#(cons1(X1, X2)) | → | mark#(X2) | | mark#(s1(X)) | → | mark#(X) |
active#(sel1(s(X), cons(Y, Z))) | → | mark#(sel1(X, Z)) | | active#(quote1(nil)) | → | mark#(nil1) |
active#(unquote(01)) | → | mark#(0) | | active#(first(0, Z)) | → | mark#(nil) |
mark#(sel1(X1, X2)) | → | mark#(X1) | | mark#(nil1) | → | active#(nil1) |
active#(unquote(s1(X))) | → | mark#(s(unquote(X))) | | active#(fcons(X, Z)) | → | mark#(cons(X, Z)) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, sel, first, cons, nil
Open Dependency Pair Problem 31
Dependency Pairs
cons1#(X1, active(X2)) | → | cons1#(X1, X2) | | cons1#(mark(X1), X2) | → | cons1#(X1, X2) |
cons1#(X1, mark(X2)) | → | cons1#(X1, X2) | | cons1#(active(X1), X2) | → | cons1#(X1, X2) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, sel, first, cons, nil
Open Dependency Pair Problem 34
Dependency Pairs
mark#(cons(X1, X2)) | → | active#(cons(mark(X1), X2)) | | active#(unquote1(nil1)) | → | mark#(nil) |
mark#(fcons(X1, X2)) | → | active#(fcons(mark(X1), mark(X2))) | | active#(quote1(first(X, Z))) | → | mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) | → | active#(sel1(mark(X1), mark(X2))) | | mark#(01) | → | active#(01) |
active#(sel1(0, cons(X, Z))) | → | mark#(quote(X)) | | mark#(cons1(X1, X2)) | → | mark#(X1) |
active#(first1(s(X), cons(Y, Z))) | → | mark#(cons1(quote(Y), first1(X, Z))) | | active#(first(s(X), cons(Y, Z))) | → | mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) | → | mark#(X) | | mark#(s(X)) | → | mark#(X) |
mark#(sel(X1, X2)) | → | mark#(X1) | | mark#(unquote1(X)) | → | active#(unquote1(mark(X))) |
active#(quote(s(X))) | → | mark#(s1(quote(X))) | | active#(unquote1(cons1(X, Z))) | → | mark#(fcons(unquote(X), unquote1(Z))) |
mark#(from(X)) | → | mark#(X) | | mark#(cons(X1, X2)) | → | mark#(X1) |
mark#(unquote(X)) | → | active#(unquote(mark(X))) | | active#(from(X)) | → | mark#(cons(X, from(s(X)))) |
mark#(sel(X1, X2)) | → | active#(sel(mark(X1), mark(X2))) | | active#(quote1(cons(X, Z))) | → | quote#(X) |
mark#(from(X)) | → | active#(from(mark(X))) | | mark#(s1(X)) | → | active#(s1(mark(X))) |
mark#(first1(X1, X2)) | → | active#(first1(mark(X1), mark(X2))) | | mark#(first(X1, X2)) | → | mark#(X1) |
mark#(quote1(X)) | → | active#(quote1(X)) | | active#(quote1(cons(X, Z))) | → | mark#(cons1(quote(X), quote1(Z))) |
active#(quote(s(X))) | → | s1#(quote(X)) | | active#(first1(0, Z)) | → | mark#(nil1) |
mark#(unquote1(X)) | → | mark#(X) | | mark#(first1(X1, X2)) | → | mark#(X1) |
mark#(quote(X)) | → | active#(quote(X)) | | active#(sel(0, cons(X, Z))) | → | mark#(X) |
active#(sel(s(X), cons(Y, Z))) | → | mark#(sel(X, Z)) | | mark#(nil) | → | active#(nil) |
mark#(sel(X1, X2)) | → | mark#(X2) | | mark#(first1(X1, X2)) | → | mark#(X2) |
active#(quote(sel(X, Z))) | → | mark#(sel1(X, Z)) | | mark#(cons1(X1, X2)) | → | active#(cons1(mark(X1), mark(X2))) |
mark#(0) | → | active#(0) | | mark#(first(X1, X2)) | → | mark#(X2) |
mark#(fcons(X1, X2)) | → | mark#(X2) | | mark#(s(X)) | → | active#(s(mark(X))) |
mark#(fcons(X1, X2)) | → | mark#(X1) | | mark#(first(X1, X2)) | → | active#(first(mark(X1), mark(X2))) |
active#(quote(0)) | → | mark#(01) | | mark#(sel1(X1, X2)) | → | mark#(X2) |
mark#(cons1(X1, X2)) | → | mark#(X2) | | mark#(s1(X)) | → | mark#(X) |
active#(sel1(s(X), cons(Y, Z))) | → | mark#(sel1(X, Z)) | | active#(quote1(nil)) | → | mark#(nil1) |
active#(unquote(01)) | → | mark#(0) | | active#(first(0, Z)) | → | mark#(nil) |
mark#(sel1(X1, X2)) | → | mark#(X1) | | mark#(nil1) | → | active#(nil1) |
active#(unquote(s1(X))) | → | mark#(s(unquote(X))) | | active#(fcons(X, Z)) | → | mark#(cons(X, Z)) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, sel, first, cons, nil
Open Dependency Pair Problem 32
Dependency Pairs
mark#(cons(X1, X2)) | → | active#(cons(mark(X1), X2)) | | active#(unquote1(nil1)) | → | mark#(nil) |
mark#(fcons(X1, X2)) | → | active#(fcons(mark(X1), mark(X2))) | | active#(quote1(first(X, Z))) | → | mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) | → | active#(sel1(mark(X1), mark(X2))) | | mark#(01) | → | active#(01) |
mark#(cons1(X1, X2)) | → | mark#(X1) | | active#(sel1(0, cons(X, Z))) | → | mark#(quote(X)) |
active#(first1(s(X), cons(Y, Z))) | → | mark#(cons1(quote(Y), first1(X, Z))) | | active#(first(s(X), cons(Y, Z))) | → | mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) | → | mark#(X) | | mark#(s(X)) | → | mark#(X) |
mark#(sel(X1, X2)) | → | mark#(X1) | | active#(quote(s(X))) | → | mark#(s1(quote(X))) |
mark#(unquote1(X)) | → | active#(unquote1(mark(X))) | | active#(sel(s(X), cons(Y, Z))) | → | sel#(X, Z) |
active#(unquote1(cons1(X, Z))) | → | mark#(fcons(unquote(X), unquote1(Z))) | | mark#(from(X)) | → | mark#(X) |
mark#(cons(X1, X2)) | → | mark#(X1) | | mark#(unquote(X)) | → | active#(unquote(mark(X))) |
mark#(sel(X1, X2)) | → | active#(sel(mark(X1), mark(X2))) | | active#(from(X)) | → | mark#(cons(X, from(s(X)))) |
active#(unquote1(cons1(X, Z))) | → | unquote1#(Z) | | active#(quote1(cons(X, Z))) | → | quote#(X) |
mark#(from(X)) | → | active#(from(mark(X))) | | mark#(s1(X)) | → | active#(s1(mark(X))) |
mark#(first(X1, X2)) | → | mark#(X1) | | mark#(first1(X1, X2)) | → | active#(first1(mark(X1), mark(X2))) |
mark#(quote1(X)) | → | active#(quote1(X)) | | active#(quote1(cons(X, Z))) | → | mark#(cons1(quote(X), quote1(Z))) |
active#(quote(s(X))) | → | s1#(quote(X)) | | active#(first1(0, Z)) | → | mark#(nil1) |
mark#(unquote1(X)) | → | mark#(X) | | mark#(first1(X1, X2)) | → | mark#(X1) |
mark#(quote(X)) | → | active#(quote(X)) | | active#(sel(0, cons(X, Z))) | → | mark#(X) |
active#(sel(s(X), cons(Y, Z))) | → | mark#(sel(X, Z)) | | mark#(nil) | → | active#(nil) |
mark#(sel(X1, X2)) | → | mark#(X2) | | active#(from(X)) | → | cons#(X, from(s(X))) |
mark#(first1(X1, X2)) | → | mark#(X2) | | active#(quote(sel(X, Z))) | → | mark#(sel1(X, Z)) |
mark#(cons1(X1, X2)) | → | active#(cons1(mark(X1), mark(X2))) | | mark#(first(X1, X2)) | → | mark#(X2) |
mark#(0) | → | active#(0) | | mark#(s(X)) | → | active#(s(mark(X))) |
mark#(fcons(X1, X2)) | → | mark#(X2) | | mark#(fcons(X1, X2)) | → | mark#(X1) |
active#(quote(0)) | → | mark#(01) | | mark#(first(X1, X2)) | → | active#(first(mark(X1), mark(X2))) |
mark#(sel1(X1, X2)) | → | mark#(X2) | | mark#(cons1(X1, X2)) | → | mark#(X2) |
mark#(s1(X)) | → | mark#(X) | | active#(sel1(s(X), cons(Y, Z))) | → | mark#(sel1(X, Z)) |
active#(quote1(nil)) | → | mark#(nil1) | | active#(unquote(01)) | → | mark#(0) |
active#(first(0, Z)) | → | mark#(nil) | | mark#(sel1(X1, X2)) | → | mark#(X1) |
mark#(nil1) | → | active#(nil1) | | active#(unquote(s1(X))) | → | mark#(s(unquote(X))) |
active#(fcons(X, Z)) | → | mark#(cons(X, Z)) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, sel, first, cons, nil
Open Dependency Pair Problem 38
Dependency Pairs
mark#(cons(X1, X2)) | → | active#(cons(mark(X1), X2)) | | active#(unquote1(nil1)) | → | mark#(nil) |
mark#(fcons(X1, X2)) | → | active#(fcons(mark(X1), mark(X2))) | | active#(quote1(first(X, Z))) | → | mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) | → | active#(sel1(mark(X1), mark(X2))) | | mark#(01) | → | active#(01) |
active#(sel1(0, cons(X, Z))) | → | mark#(quote(X)) | | mark#(cons1(X1, X2)) | → | mark#(X1) |
active#(fcons(X, Z)) | → | cons#(X, Z) | | active#(first1(s(X), cons(Y, Z))) | → | mark#(cons1(quote(Y), first1(X, Z))) |
active#(first(s(X), cons(Y, Z))) | → | mark#(cons(Y, first(X, Z))) | | mark#(unquote(X)) | → | mark#(X) |
mark#(s(X)) | → | mark#(X) | | mark#(sel(X1, X2)) | → | mark#(X1) |
active#(quote(s(X))) | → | mark#(s1(quote(X))) | | mark#(unquote1(X)) | → | active#(unquote1(mark(X))) |
active#(sel(s(X), cons(Y, Z))) | → | sel#(X, Z) | | active#(unquote1(cons1(X, Z))) | → | mark#(fcons(unquote(X), unquote1(Z))) |
mark#(from(X)) | → | mark#(X) | | mark#(cons(X1, X2)) | → | mark#(X1) |
mark#(unquote(X)) | → | active#(unquote(mark(X))) | | mark#(sel(X1, X2)) | → | active#(sel(mark(X1), mark(X2))) |
active#(from(X)) | → | mark#(cons(X, from(s(X)))) | | active#(unquote1(cons1(X, Z))) | → | unquote1#(Z) |
active#(quote1(cons(X, Z))) | → | quote#(X) | | mark#(from(X)) | → | active#(from(mark(X))) |
mark#(s1(X)) | → | active#(s1(mark(X))) | | mark#(first1(X1, X2)) | → | active#(first1(mark(X1), mark(X2))) |
mark#(first(X1, X2)) | → | mark#(X1) | | mark#(quote1(X)) | → | active#(quote1(X)) |
active#(quote1(cons(X, Z))) | → | mark#(cons1(quote(X), quote1(Z))) | | active#(quote(s(X))) | → | s1#(quote(X)) |
active#(first1(0, Z)) | → | mark#(nil1) | | mark#(unquote1(X)) | → | mark#(X) |
mark#(first1(X1, X2)) | → | mark#(X1) | | mark#(quote(X)) | → | active#(quote(X)) |
active#(sel(0, cons(X, Z))) | → | mark#(X) | | active#(sel(s(X), cons(Y, Z))) | → | mark#(sel(X, Z)) |
mark#(nil) | → | active#(nil) | | mark#(sel(X1, X2)) | → | mark#(X2) |
active#(from(X)) | → | cons#(X, from(s(X))) | | mark#(first1(X1, X2)) | → | mark#(X2) |
active#(quote(sel(X, Z))) | → | mark#(sel1(X, Z)) | | mark#(cons1(X1, X2)) | → | active#(cons1(mark(X1), mark(X2))) |
mark#(0) | → | active#(0) | | mark#(first(X1, X2)) | → | mark#(X2) |
mark#(s(X)) | → | active#(s(mark(X))) | | mark#(fcons(X1, X2)) | → | mark#(X2) |
mark#(fcons(X1, X2)) | → | mark#(X1) | | active#(quote(0)) | → | mark#(01) |
mark#(first(X1, X2)) | → | active#(first(mark(X1), mark(X2))) | | mark#(sel1(X1, X2)) | → | mark#(X2) |
mark#(cons1(X1, X2)) | → | mark#(X2) | | mark#(s1(X)) | → | mark#(X) |
active#(sel1(s(X), cons(Y, Z))) | → | mark#(sel1(X, Z)) | | active#(quote1(nil)) | → | mark#(nil1) |
active#(unquote(01)) | → | mark#(0) | | active#(first(0, Z)) | → | mark#(nil) |
mark#(sel1(X1, X2)) | → | mark#(X1) | | mark#(nil1) | → | active#(nil1) |
active#(unquote(s1(X))) | → | mark#(s(unquote(X))) | | active#(fcons(X, Z)) | → | mark#(cons(X, Z)) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, sel, first, cons, nil
Open Dependency Pair Problem 36
Dependency Pairs
first1#(active(X1), X2) | → | first1#(X1, X2) | | first1#(mark(X1), X2) | → | first1#(X1, X2) |
first1#(X1, active(X2)) | → | first1#(X1, X2) | | first1#(X1, mark(X2)) | → | first1#(X1, X2) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, sel, first, cons, nil
Open Dependency Pair Problem 37
Dependency Pairs
mark#(cons(X1, X2)) | → | active#(cons(mark(X1), X2)) | | active#(unquote1(nil1)) | → | mark#(nil) |
mark#(fcons(X1, X2)) | → | active#(fcons(mark(X1), mark(X2))) | | active#(quote1(first(X, Z))) | → | mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) | → | active#(sel1(mark(X1), mark(X2))) | | mark#(01) | → | active#(01) |
active#(sel1(0, cons(X, Z))) | → | mark#(quote(X)) | | mark#(cons1(X1, X2)) | → | mark#(X1) |
active#(first1(s(X), cons(Y, Z))) | → | mark#(cons1(quote(Y), first1(X, Z))) | | active#(first(s(X), cons(Y, Z))) | → | mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) | → | mark#(X) | | mark#(s(X)) | → | mark#(X) |
mark#(sel(X1, X2)) | → | mark#(X1) | | active#(quote(s(X))) | → | mark#(s1(quote(X))) |
mark#(unquote1(X)) | → | active#(unquote1(mark(X))) | | active#(sel(s(X), cons(Y, Z))) | → | sel#(X, Z) |
active#(unquote1(cons1(X, Z))) | → | mark#(fcons(unquote(X), unquote1(Z))) | | mark#(from(X)) | → | mark#(X) |
mark#(cons(X1, X2)) | → | mark#(X1) | | mark#(unquote(X)) | → | active#(unquote(mark(X))) |
mark#(sel(X1, X2)) | → | active#(sel(mark(X1), mark(X2))) | | active#(from(X)) | → | mark#(cons(X, from(s(X)))) |
active#(unquote1(cons1(X, Z))) | → | unquote1#(Z) | | active#(from(X)) | → | s#(X) |
active#(quote1(cons(X, Z))) | → | quote#(X) | | mark#(from(X)) | → | active#(from(mark(X))) |
mark#(s1(X)) | → | active#(s1(mark(X))) | | mark#(first1(X1, X2)) | → | active#(first1(mark(X1), mark(X2))) |
mark#(first(X1, X2)) | → | mark#(X1) | | mark#(quote1(X)) | → | active#(quote1(X)) |
active#(quote1(cons(X, Z))) | → | mark#(cons1(quote(X), quote1(Z))) | | active#(quote(s(X))) | → | s1#(quote(X)) |
active#(first1(0, Z)) | → | mark#(nil1) | | mark#(unquote1(X)) | → | mark#(X) |
mark#(first1(X1, X2)) | → | mark#(X1) | | mark#(quote(X)) | → | active#(quote(X)) |
active#(sel(0, cons(X, Z))) | → | mark#(X) | | active#(sel(s(X), cons(Y, Z))) | → | mark#(sel(X, Z)) |
mark#(nil) | → | active#(nil) | | mark#(sel(X1, X2)) | → | mark#(X2) |
mark#(first1(X1, X2)) | → | mark#(X2) | | active#(from(X)) | → | cons#(X, from(s(X))) |
active#(quote(sel(X, Z))) | → | mark#(sel1(X, Z)) | | mark#(cons1(X1, X2)) | → | active#(cons1(mark(X1), mark(X2))) |
mark#(first(X1, X2)) | → | mark#(X2) | | mark#(0) | → | active#(0) |
mark#(s(X)) | → | active#(s(mark(X))) | | mark#(fcons(X1, X2)) | → | mark#(X2) |
mark#(fcons(X1, X2)) | → | mark#(X1) | | active#(quote(0)) | → | mark#(01) |
mark#(first(X1, X2)) | → | active#(first(mark(X1), mark(X2))) | | mark#(sel1(X1, X2)) | → | mark#(X2) |
mark#(cons1(X1, X2)) | → | mark#(X2) | | mark#(s1(X)) | → | mark#(X) |
active#(sel1(s(X), cons(Y, Z))) | → | mark#(sel1(X, Z)) | | active#(quote1(nil)) | → | mark#(nil1) |
active#(unquote(01)) | → | mark#(0) | | active#(first(0, Z)) | → | mark#(nil) |
mark#(sel1(X1, X2)) | → | mark#(X1) | | mark#(nil1) | → | active#(nil1) |
active#(unquote(s1(X))) | → | mark#(s(unquote(X))) | | active#(fcons(X, Z)) | → | mark#(cons(X, Z)) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, sel, first, cons, nil
Problem 1: DependencyGraph
Dependency Pair Problem
Dependency Pairs
mark#(cons1(X1, X2)) | → | cons1#(mark(X1), mark(X2)) | | cons1#(X1, active(X2)) | → | cons1#(X1, X2) |
active#(unquote(s1(X))) | → | s#(unquote(X)) | | mark#(s1(X)) | → | s1#(mark(X)) |
mark#(fcons(X1, X2)) | → | active#(fcons(mark(X1), mark(X2))) | | quote1#(active(X)) | → | quote1#(X) |
active#(quote1(first(X, Z))) | → | mark#(first1(X, Z)) | | mark#(01) | → | active#(01) |
active#(sel1(0, cons(X, Z))) | → | mark#(quote(X)) | | active#(first(s(X), cons(Y, Z))) | → | cons#(Y, first(X, Z)) |
fcons#(mark(X1), X2) | → | fcons#(X1, X2) | | active#(first1(s(X), cons(Y, Z))) | → | mark#(cons1(quote(Y), first1(X, Z))) |
mark#(unquote(X)) | → | mark#(X) | | unquote1#(active(X)) | → | unquote1#(X) |
cons1#(X1, mark(X2)) | → | cons1#(X1, X2) | | mark#(s(X)) | → | mark#(X) |
mark#(sel(X1, X2)) | → | mark#(X1) | | s1#(active(X)) | → | s1#(X) |
first1#(mark(X1), X2) | → | first1#(X1, X2) | | active#(sel(s(X), cons(Y, Z))) | → | sel#(X, Z) |
active#(unquote1(cons1(X, Z))) | → | mark#(fcons(unquote(X), unquote1(Z))) | | active#(quote(s(X))) | → | quote#(X) |
mark#(cons(X1, X2)) | → | mark#(X1) | | mark#(first1(X1, X2)) | → | first1#(mark(X1), mark(X2)) |
active#(from(X)) | → | mark#(cons(X, from(s(X)))) | | sel#(X1, mark(X2)) | → | sel#(X1, X2) |
active#(quote1(cons(X, Z))) | → | quote#(X) | | mark#(quote(X)) | → | quote#(X) |
quote#(mark(X)) | → | quote#(X) | | sel#(X1, active(X2)) | → | sel#(X1, X2) |
mark#(unquote(X)) | → | unquote#(mark(X)) | | first#(active(X1), X2) | → | first#(X1, X2) |
mark#(s1(X)) | → | active#(s1(mark(X))) | | mark#(first(X1, X2)) | → | mark#(X1) |
mark#(quote1(X)) | → | active#(quote1(X)) | | cons1#(active(X1), X2) | → | cons1#(X1, X2) |
active#(quote1(cons(X, Z))) | → | mark#(cons1(quote(X), quote1(Z))) | | active#(quote(s(X))) | → | s1#(quote(X)) |
active#(first1(0, Z)) | → | mark#(nil1) | | mark#(unquote1(X)) | → | mark#(X) |
cons#(mark(X1), X2) | → | cons#(X1, X2) | | unquote1#(mark(X)) | → | unquote1#(X) |
mark#(first1(X1, X2)) | → | mark#(X1) | | mark#(quote(X)) | → | active#(quote(X)) |
from#(mark(X)) | → | from#(X) | | active#(sel(0, cons(X, Z))) | → | mark#(X) |
sel1#(X1, mark(X2)) | → | sel1#(X1, X2) | | mark#(first1(X1, X2)) | → | mark#(X2) |
cons#(X1, mark(X2)) | → | cons#(X1, X2) | | active#(quote1(first(X, Z))) | → | first1#(X, Z) |
first#(X1, mark(X2)) | → | first#(X1, X2) | | mark#(0) | → | active#(0) |
mark#(first(X1, X2)) | → | mark#(X2) | | mark#(s(X)) | → | active#(s(mark(X))) |
mark#(fcons(X1, X2)) | → | mark#(X2) | | mark#(sel1(X1, X2)) | → | mark#(X2) |
cons#(active(X1), X2) | → | cons#(X1, X2) | | mark#(cons1(X1, X2)) | → | mark#(X2) |
mark#(s1(X)) | → | mark#(X) | | cons1#(mark(X1), X2) | → | cons1#(X1, X2) |
active#(quote1(nil)) | → | mark#(nil1) | | active#(first(0, Z)) | → | mark#(nil) |
mark#(sel1(X1, X2)) | → | sel1#(mark(X1), mark(X2)) | | quote1#(mark(X)) | → | quote1#(X) |
mark#(quote1(X)) | → | quote1#(X) | | first1#(X1, mark(X2)) | → | first1#(X1, X2) |
active#(unquote(s1(X))) | → | mark#(s(unquote(X))) | | mark#(unquote1(X)) | → | unquote1#(mark(X)) |
active#(from(X)) | → | from#(s(X)) | | mark#(cons(X1, X2)) | → | active#(cons(mark(X1), X2)) |
active#(unquote1(nil1)) | → | mark#(nil) | | quote#(active(X)) | → | quote#(X) |
mark#(sel1(X1, X2)) | → | active#(sel1(mark(X1), mark(X2))) | | sel1#(X1, active(X2)) | → | sel1#(X1, X2) |
mark#(s(X)) | → | s#(mark(X)) | | mark#(cons1(X1, X2)) | → | mark#(X1) |
first#(X1, active(X2)) | → | first#(X1, X2) | | active#(fcons(X, Z)) | → | cons#(X, Z) |
first1#(active(X1), X2) | → | first1#(X1, X2) | | active#(quote1(cons(X, Z))) | → | cons1#(quote(X), quote1(Z)) |
active#(first1(s(X), cons(Y, Z))) | → | first1#(X, Z) | | active#(first(s(X), cons(Y, Z))) | → | mark#(cons(Y, first(X, Z))) |
first#(mark(X1), X2) | → | first#(X1, X2) | | mark#(sel(X1, X2)) | → | sel#(mark(X1), mark(X2)) |
active#(quote(s(X))) | → | mark#(s1(quote(X))) | | mark#(unquote1(X)) | → | active#(unquote1(mark(X))) |
mark#(fcons(X1, X2)) | → | fcons#(mark(X1), mark(X2)) | | mark#(from(X)) | → | mark#(X) |
mark#(unquote(X)) | → | active#(unquote(mark(X))) | | active#(first1(s(X), cons(Y, Z))) | → | cons1#(quote(Y), first1(X, Z)) |
mark#(sel(X1, X2)) | → | active#(sel(mark(X1), mark(X2))) | | active#(first1(s(X), cons(Y, Z))) | → | quote#(Y) |
active#(unquote1(cons1(X, Z))) | → | unquote1#(Z) | | active#(from(X)) | → | s#(X) |
sel#(active(X1), X2) | → | sel#(X1, X2) | | cons#(X1, active(X2)) | → | cons#(X1, X2) |
mark#(from(X)) | → | from#(mark(X)) | | sel1#(mark(X1), X2) | → | sel1#(X1, X2) |
mark#(from(X)) | → | active#(from(mark(X))) | | from#(active(X)) | → | from#(X) |
mark#(first1(X1, X2)) | → | active#(first1(mark(X1), mark(X2))) | | unquote#(active(X)) | → | unquote#(X) |
sel#(mark(X1), X2) | → | sel#(X1, X2) | | first1#(X1, active(X2)) | → | first1#(X1, X2) |
active#(quote1(cons(X, Z))) | → | quote1#(Z) | | active#(first(s(X), cons(Y, Z))) | → | first#(X, Z) |
active#(sel(s(X), cons(Y, Z))) | → | mark#(sel(X, Z)) | | mark#(nil) | → | active#(nil) |
active#(sel1(s(X), cons(Y, Z))) | → | sel1#(X, Z) | | mark#(sel(X1, X2)) | → | mark#(X2) |
active#(from(X)) | → | cons#(X, from(s(X))) | | mark#(first(X1, X2)) | → | first#(mark(X1), mark(X2)) |
mark#(cons(X1, X2)) | → | cons#(mark(X1), X2) | | active#(quote(sel(X, Z))) | → | mark#(sel1(X, Z)) |
fcons#(X1, active(X2)) | → | fcons#(X1, X2) | | mark#(cons1(X1, X2)) | → | active#(cons1(mark(X1), mark(X2))) |
sel1#(active(X1), X2) | → | sel1#(X1, X2) | | unquote#(mark(X)) | → | unquote#(X) |
s1#(mark(X)) | → | s1#(X) | | mark#(fcons(X1, X2)) | → | mark#(X1) |
mark#(first(X1, X2)) | → | active#(first(mark(X1), mark(X2))) | | active#(quote(0)) | → | mark#(01) |
active#(quote(sel(X, Z))) | → | sel1#(X, Z) | | fcons#(active(X1), X2) | → | fcons#(X1, X2) |
active#(unquote1(cons1(X, Z))) | → | unquote#(X) | | s#(mark(X)) | → | s#(X) |
active#(sel1(s(X), cons(Y, Z))) | → | mark#(sel1(X, Z)) | | active#(unquote1(cons1(X, Z))) | → | fcons#(unquote(X), unquote1(Z)) |
active#(unquote(01)) | → | mark#(0) | | active#(sel1(0, cons(X, Z))) | → | quote#(X) |
active#(unquote(s1(X))) | → | unquote#(X) | | fcons#(X1, mark(X2)) | → | fcons#(X1, X2) |
s#(active(X)) | → | s#(X) | | mark#(sel1(X1, X2)) | → | mark#(X1) |
mark#(nil1) | → | active#(nil1) | | active#(fcons(X, Z)) | → | mark#(cons(X, Z)) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, first, sel, nil, cons
Strategy
The following SCCs where found
quote1#(active(X)) → quote1#(X) | quote1#(mark(X)) → quote1#(X) |
mark#(cons(X1, X2)) → active#(cons(mark(X1), X2)) | active#(unquote1(nil1)) → mark#(nil) |
mark#(fcons(X1, X2)) → active#(fcons(mark(X1), mark(X2))) | active#(quote1(first(X, Z))) → mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) → active#(sel1(mark(X1), mark(X2))) | mark#(01) → active#(01) |
mark#(cons1(X1, X2)) → mark#(X1) | active#(sel1(0, cons(X, Z))) → mark#(quote(X)) |
active#(fcons(X, Z)) → cons#(X, Z) | active#(first1(s(X), cons(Y, Z))) → mark#(cons1(quote(Y), first1(X, Z))) |
active#(first(s(X), cons(Y, Z))) → mark#(cons(Y, first(X, Z))) | mark#(unquote(X)) → mark#(X) |
mark#(s(X)) → mark#(X) | mark#(sel(X1, X2)) → mark#(X1) |
active#(quote(s(X))) → mark#(s1(quote(X))) | mark#(unquote1(X)) → active#(unquote1(mark(X))) |
active#(unquote1(cons1(X, Z))) → mark#(fcons(unquote(X), unquote1(Z))) | mark#(from(X)) → mark#(X) |
mark#(cons(X1, X2)) → mark#(X1) | mark#(unquote(X)) → active#(unquote(mark(X))) |
active#(from(X)) → mark#(cons(X, from(s(X)))) | mark#(sel(X1, X2)) → active#(sel(mark(X1), mark(X2))) |
active#(quote1(cons(X, Z))) → quote#(X) | active#(from(X)) → s#(X) |
mark#(from(X)) → active#(from(mark(X))) | mark#(s1(X)) → active#(s1(mark(X))) |
mark#(first1(X1, X2)) → active#(first1(mark(X1), mark(X2))) | mark#(first(X1, X2)) → mark#(X1) |
mark#(quote1(X)) → active#(quote1(X)) | active#(quote1(cons(X, Z))) → mark#(cons1(quote(X), quote1(Z))) |
active#(quote(s(X))) → s1#(quote(X)) | active#(first1(0, Z)) → mark#(nil1) |
mark#(unquote1(X)) → mark#(X) | mark#(quote(X)) → active#(quote(X)) |
mark#(first1(X1, X2)) → mark#(X1) | active#(sel(0, cons(X, Z))) → mark#(X) |
active#(sel(s(X), cons(Y, Z))) → mark#(sel(X, Z)) | mark#(nil) → active#(nil) |
mark#(sel(X1, X2)) → mark#(X2) | active#(from(X)) → cons#(X, from(s(X))) |
mark#(first1(X1, X2)) → mark#(X2) | active#(quote(sel(X, Z))) → mark#(sel1(X, Z)) |
mark#(cons1(X1, X2)) → active#(cons1(mark(X1), mark(X2))) | mark#(0) → active#(0) |
mark#(first(X1, X2)) → mark#(X2) | mark#(fcons(X1, X2)) → mark#(X2) |
mark#(s(X)) → active#(s(mark(X))) | mark#(fcons(X1, X2)) → mark#(X1) |
active#(quote(0)) → mark#(01) | mark#(first(X1, X2)) → active#(first(mark(X1), mark(X2))) |
mark#(sel1(X1, X2)) → mark#(X2) | mark#(cons1(X1, X2)) → mark#(X2) |
mark#(s1(X)) → mark#(X) | active#(sel1(s(X), cons(Y, Z))) → mark#(sel1(X, Z)) |
active#(quote1(nil)) → mark#(nil1) | active#(unquote(01)) → mark#(0) |
active#(first(0, Z)) → mark#(nil) | mark#(sel1(X1, X2)) → mark#(X1) |
mark#(nil1) → active#(nil1) | active#(unquote(s1(X))) → mark#(s(unquote(X))) |
active#(fcons(X, Z)) → mark#(cons(X, Z)) |
mark#(cons(X1, X2)) → active#(cons(mark(X1), X2)) | active#(unquote1(nil1)) → mark#(nil) |
mark#(fcons(X1, X2)) → active#(fcons(mark(X1), mark(X2))) | active#(quote1(first(X, Z))) → mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) → active#(sel1(mark(X1), mark(X2))) | mark#(01) → active#(01) |
active#(sel1(0, cons(X, Z))) → mark#(quote(X)) | mark#(cons1(X1, X2)) → mark#(X1) |
active#(first1(s(X), cons(Y, Z))) → mark#(cons1(quote(Y), first1(X, Z))) | active#(first(s(X), cons(Y, Z))) → mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) → mark#(X) | mark#(s(X)) → mark#(X) |
mark#(sel(X1, X2)) → mark#(X1) | mark#(unquote1(X)) → active#(unquote1(mark(X))) |
active#(quote(s(X))) → mark#(s1(quote(X))) | active#(sel(s(X), cons(Y, Z))) → sel#(X, Z) |
active#(unquote1(cons1(X, Z))) → mark#(fcons(unquote(X), unquote1(Z))) | mark#(from(X)) → mark#(X) |
mark#(cons(X1, X2)) → mark#(X1) | mark#(unquote(X)) → active#(unquote(mark(X))) |
active#(from(X)) → mark#(cons(X, from(s(X)))) | mark#(sel(X1, X2)) → active#(sel(mark(X1), mark(X2))) |
active#(unquote1(cons1(X, Z))) → unquote1#(Z) | active#(quote1(cons(X, Z))) → quote#(X) |
mark#(from(X)) → active#(from(mark(X))) | mark#(s1(X)) → active#(s1(mark(X))) |
mark#(first1(X1, X2)) → active#(first1(mark(X1), mark(X2))) | mark#(first(X1, X2)) → mark#(X1) |
mark#(quote1(X)) → active#(quote1(X)) | active#(quote1(cons(X, Z))) → mark#(cons1(quote(X), quote1(Z))) |
active#(quote(s(X))) → s1#(quote(X)) | active#(first1(0, Z)) → mark#(nil1) |
mark#(unquote1(X)) → mark#(X) | mark#(quote(X)) → active#(quote(X)) |
mark#(first1(X1, X2)) → mark#(X1) | active#(sel(0, cons(X, Z))) → mark#(X) |
active#(sel(s(X), cons(Y, Z))) → mark#(sel(X, Z)) | mark#(nil) → active#(nil) |
mark#(sel(X1, X2)) → mark#(X2) | mark#(first1(X1, X2)) → mark#(X2) |
active#(from(X)) → cons#(X, from(s(X))) | active#(quote(sel(X, Z))) → mark#(sel1(X, Z)) |
mark#(cons1(X1, X2)) → active#(cons1(mark(X1), mark(X2))) | mark#(0) → active#(0) |
mark#(first(X1, X2)) → mark#(X2) | mark#(fcons(X1, X2)) → mark#(X2) |
mark#(s(X)) → active#(s(mark(X))) | mark#(fcons(X1, X2)) → mark#(X1) |
mark#(first(X1, X2)) → active#(first(mark(X1), mark(X2))) | active#(quote(0)) → mark#(01) |
mark#(sel1(X1, X2)) → mark#(X2) | mark#(cons1(X1, X2)) → mark#(X2) |
mark#(s1(X)) → mark#(X) | active#(sel1(s(X), cons(Y, Z))) → mark#(sel1(X, Z)) |
active#(quote1(nil)) → mark#(nil1) | active#(unquote(01)) → mark#(0) |
active#(first(0, Z)) → mark#(nil) | mark#(sel1(X1, X2)) → mark#(X1) |
active#(unquote(s1(X))) → mark#(s(unquote(X))) | mark#(nil1) → active#(nil1) |
active#(fcons(X, Z)) → mark#(cons(X, Z)) |
mark#(cons(X1, X2)) → active#(cons(mark(X1), X2)) | active#(unquote1(nil1)) → mark#(nil) |
mark#(fcons(X1, X2)) → active#(fcons(mark(X1), mark(X2))) | active#(quote1(first(X, Z))) → mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) → active#(sel1(mark(X1), mark(X2))) | mark#(01) → active#(01) |
active#(sel1(0, cons(X, Z))) → mark#(quote(X)) | mark#(cons1(X1, X2)) → mark#(X1) |
active#(first1(s(X), cons(Y, Z))) → mark#(cons1(quote(Y), first1(X, Z))) | active#(first(s(X), cons(Y, Z))) → mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) → mark#(X) | mark#(s(X)) → mark#(X) |
mark#(sel(X1, X2)) → mark#(X1) | mark#(unquote1(X)) → active#(unquote1(mark(X))) |
active#(quote(s(X))) → mark#(s1(quote(X))) | active#(sel(s(X), cons(Y, Z))) → sel#(X, Z) |
active#(unquote1(cons1(X, Z))) → mark#(fcons(unquote(X), unquote1(Z))) | mark#(from(X)) → mark#(X) |
mark#(cons(X1, X2)) → mark#(X1) | mark#(unquote(X)) → active#(unquote(mark(X))) |
active#(from(X)) → mark#(cons(X, from(s(X)))) | mark#(sel(X1, X2)) → active#(sel(mark(X1), mark(X2))) |
mark#(from(X)) → active#(from(mark(X))) | mark#(s1(X)) → active#(s1(mark(X))) |
mark#(first(X1, X2)) → mark#(X1) | mark#(first1(X1, X2)) → active#(first1(mark(X1), mark(X2))) |
mark#(quote1(X)) → active#(quote1(X)) | active#(quote1(cons(X, Z))) → mark#(cons1(quote(X), quote1(Z))) |
active#(quote(s(X))) → s1#(quote(X)) | active#(first1(0, Z)) → mark#(nil1) |
mark#(unquote1(X)) → mark#(X) | mark#(quote(X)) → active#(quote(X)) |
mark#(first1(X1, X2)) → mark#(X1) | active#(sel(0, cons(X, Z))) → mark#(X) |
active#(sel(s(X), cons(Y, Z))) → mark#(sel(X, Z)) | mark#(nil) → active#(nil) |
mark#(sel(X1, X2)) → mark#(X2) | active#(from(X)) → cons#(X, from(s(X))) |
mark#(first1(X1, X2)) → mark#(X2) | active#(quote(sel(X, Z))) → mark#(sel1(X, Z)) |
mark#(cons1(X1, X2)) → active#(cons1(mark(X1), mark(X2))) | mark#(0) → active#(0) |
mark#(first(X1, X2)) → mark#(X2) | mark#(fcons(X1, X2)) → mark#(X2) |
mark#(s(X)) → active#(s(mark(X))) | mark#(fcons(X1, X2)) → mark#(X1) |
mark#(first(X1, X2)) → active#(first(mark(X1), mark(X2))) | active#(quote(0)) → mark#(01) |
mark#(sel1(X1, X2)) → mark#(X2) | mark#(cons1(X1, X2)) → mark#(X2) |
mark#(s1(X)) → mark#(X) | active#(sel1(s(X), cons(Y, Z))) → mark#(sel1(X, Z)) |
active#(quote1(nil)) → mark#(nil1) | active#(unquote(01)) → mark#(0) |
active#(first(0, Z)) → mark#(nil) | mark#(sel1(X1, X2)) → mark#(X1) |
active#(unquote(s1(X))) → mark#(s(unquote(X))) | mark#(nil1) → active#(nil1) |
active#(fcons(X, Z)) → mark#(cons(X, Z)) |
mark#(cons(X1, X2)) → active#(cons(mark(X1), X2)) | active#(unquote1(nil1)) → mark#(nil) |
mark#(fcons(X1, X2)) → active#(fcons(mark(X1), mark(X2))) | active#(quote1(first(X, Z))) → mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) → active#(sel1(mark(X1), mark(X2))) | mark#(01) → active#(01) |
mark#(cons1(X1, X2)) → mark#(X1) | active#(sel1(0, cons(X, Z))) → mark#(quote(X)) |
active#(fcons(X, Z)) → cons#(X, Z) | active#(first1(s(X), cons(Y, Z))) → mark#(cons1(quote(Y), first1(X, Z))) |
active#(first(s(X), cons(Y, Z))) → mark#(cons(Y, first(X, Z))) | mark#(unquote(X)) → mark#(X) |
mark#(s(X)) → mark#(X) | mark#(sel(X1, X2)) → mark#(X1) |
mark#(unquote1(X)) → active#(unquote1(mark(X))) | active#(quote(s(X))) → mark#(s1(quote(X))) |
active#(unquote1(cons1(X, Z))) → mark#(fcons(unquote(X), unquote1(Z))) | mark#(from(X)) → mark#(X) |
mark#(cons(X1, X2)) → mark#(X1) | mark#(unquote(X)) → active#(unquote(mark(X))) |
active#(from(X)) → mark#(cons(X, from(s(X)))) | mark#(sel(X1, X2)) → active#(sel(mark(X1), mark(X2))) |
active#(unquote1(cons1(X, Z))) → unquote1#(Z) | active#(quote1(cons(X, Z))) → quote#(X) |
active#(from(X)) → s#(X) | mark#(from(X)) → active#(from(mark(X))) |
mark#(s1(X)) → active#(s1(mark(X))) | mark#(first(X1, X2)) → mark#(X1) |
mark#(first1(X1, X2)) → active#(first1(mark(X1), mark(X2))) | mark#(quote1(X)) → active#(quote1(X)) |
active#(quote1(cons(X, Z))) → mark#(cons1(quote(X), quote1(Z))) | active#(quote(s(X))) → s1#(quote(X)) |
active#(first1(0, Z)) → mark#(nil1) | mark#(unquote1(X)) → mark#(X) |
mark#(quote(X)) → active#(quote(X)) | mark#(first1(X1, X2)) → mark#(X1) |
active#(sel(0, cons(X, Z))) → mark#(X) | active#(sel(s(X), cons(Y, Z))) → mark#(sel(X, Z)) |
mark#(nil) → active#(nil) | mark#(sel(X1, X2)) → mark#(X2) |
mark#(first1(X1, X2)) → mark#(X2) | active#(from(X)) → cons#(X, from(s(X))) |
active#(quote(sel(X, Z))) → mark#(sel1(X, Z)) | mark#(cons1(X1, X2)) → active#(cons1(mark(X1), mark(X2))) |
mark#(first(X1, X2)) → mark#(X2) | mark#(0) → active#(0) |
mark#(fcons(X1, X2)) → mark#(X2) | mark#(s(X)) → active#(s(mark(X))) |
mark#(fcons(X1, X2)) → mark#(X1) | mark#(first(X1, X2)) → active#(first(mark(X1), mark(X2))) |
active#(quote(0)) → mark#(01) | mark#(sel1(X1, X2)) → mark#(X2) |
mark#(cons1(X1, X2)) → mark#(X2) | mark#(s1(X)) → mark#(X) |
active#(sel1(s(X), cons(Y, Z))) → mark#(sel1(X, Z)) | active#(quote1(nil)) → mark#(nil1) |
active#(unquote(01)) → mark#(0) | active#(first(0, Z)) → mark#(nil) |
mark#(sel1(X1, X2)) → mark#(X1) | active#(unquote(s1(X))) → mark#(s(unquote(X))) |
mark#(nil1) → active#(nil1) | active#(fcons(X, Z)) → mark#(cons(X, Z)) |
s1#(active(X)) → s1#(X) | s1#(mark(X)) → s1#(X) |
mark#(cons(X1, X2)) → active#(cons(mark(X1), X2)) | active#(unquote1(nil1)) → mark#(nil) |
mark#(fcons(X1, X2)) → active#(fcons(mark(X1), mark(X2))) | active#(quote1(first(X, Z))) → mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) → active#(sel1(mark(X1), mark(X2))) | mark#(01) → active#(01) |
active#(sel1(0, cons(X, Z))) → mark#(quote(X)) | mark#(cons1(X1, X2)) → mark#(X1) |
active#(fcons(X, Z)) → cons#(X, Z) | active#(first1(s(X), cons(Y, Z))) → mark#(cons1(quote(Y), first1(X, Z))) |
active#(first(s(X), cons(Y, Z))) → mark#(cons(Y, first(X, Z))) | mark#(unquote(X)) → mark#(X) |
mark#(s(X)) → mark#(X) | mark#(sel(X1, X2)) → mark#(X1) |
mark#(unquote1(X)) → active#(unquote1(mark(X))) | active#(quote(s(X))) → mark#(s1(quote(X))) |
active#(sel(s(X), cons(Y, Z))) → sel#(X, Z) | active#(unquote1(cons1(X, Z))) → mark#(fcons(unquote(X), unquote1(Z))) |
mark#(from(X)) → mark#(X) | mark#(cons(X1, X2)) → mark#(X1) |
mark#(unquote(X)) → active#(unquote(mark(X))) | active#(from(X)) → mark#(cons(X, from(s(X)))) |
mark#(sel(X1, X2)) → active#(sel(mark(X1), mark(X2))) | active#(unquote1(cons1(X, Z))) → unquote1#(Z) |
active#(from(X)) → s#(X) | active#(quote1(cons(X, Z))) → quote#(X) |
mark#(from(X)) → active#(from(mark(X))) | mark#(s1(X)) → active#(s1(mark(X))) |
mark#(first(X1, X2)) → mark#(X1) | mark#(first1(X1, X2)) → active#(first1(mark(X1), mark(X2))) |
mark#(quote1(X)) → active#(quote1(X)) | active#(quote1(cons(X, Z))) → mark#(cons1(quote(X), quote1(Z))) |
active#(quote(s(X))) → s1#(quote(X)) | active#(first1(0, Z)) → mark#(nil1) |
mark#(unquote1(X)) → mark#(X) | mark#(quote(X)) → active#(quote(X)) |
mark#(first1(X1, X2)) → mark#(X1) | active#(sel(0, cons(X, Z))) → mark#(X) |
active#(sel(s(X), cons(Y, Z))) → mark#(sel(X, Z)) | mark#(nil) → active#(nil) |
mark#(sel(X1, X2)) → mark#(X2) | mark#(first1(X1, X2)) → mark#(X2) |
active#(quote(sel(X, Z))) → mark#(sel1(X, Z)) | mark#(cons1(X1, X2)) → active#(cons1(mark(X1), mark(X2))) |
mark#(0) → active#(0) | mark#(first(X1, X2)) → mark#(X2) |
mark#(fcons(X1, X2)) → mark#(X2) | mark#(s(X)) → active#(s(mark(X))) |
mark#(fcons(X1, X2)) → mark#(X1) | mark#(first(X1, X2)) → active#(first(mark(X1), mark(X2))) |
active#(quote(0)) → mark#(01) | mark#(sel1(X1, X2)) → mark#(X2) |
mark#(cons1(X1, X2)) → mark#(X2) | mark#(s1(X)) → mark#(X) |
active#(sel1(s(X), cons(Y, Z))) → mark#(sel1(X, Z)) | active#(quote1(nil)) → mark#(nil1) |
active#(unquote(01)) → mark#(0) | active#(first(0, Z)) → mark#(nil) |
mark#(sel1(X1, X2)) → mark#(X1) | active#(unquote(s1(X))) → mark#(s(unquote(X))) |
mark#(nil1) → active#(nil1) | active#(fcons(X, Z)) → mark#(cons(X, Z)) |
mark#(cons(X1, X2)) → active#(cons(mark(X1), X2)) | active#(unquote1(nil1)) → mark#(nil) |
mark#(fcons(X1, X2)) → active#(fcons(mark(X1), mark(X2))) | active#(quote1(first(X, Z))) → mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) → active#(sel1(mark(X1), mark(X2))) | mark#(01) → active#(01) |
active#(sel1(0, cons(X, Z))) → mark#(quote(X)) | mark#(cons1(X1, X2)) → mark#(X1) |
active#(first1(s(X), cons(Y, Z))) → mark#(cons1(quote(Y), first1(X, Z))) | active#(first(s(X), cons(Y, Z))) → mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) → mark#(X) | mark#(s(X)) → mark#(X) |
mark#(sel(X1, X2)) → mark#(X1) | mark#(unquote1(X)) → active#(unquote1(mark(X))) |
active#(quote(s(X))) → mark#(s1(quote(X))) | active#(sel(s(X), cons(Y, Z))) → sel#(X, Z) |
active#(unquote1(cons1(X, Z))) → mark#(fcons(unquote(X), unquote1(Z))) | mark#(from(X)) → mark#(X) |
active#(quote(s(X))) → quote#(X) | mark#(cons(X1, X2)) → mark#(X1) |
mark#(unquote(X)) → active#(unquote(mark(X))) | active#(first1(s(X), cons(Y, Z))) → cons1#(quote(Y), first1(X, Z)) |
active#(from(X)) → mark#(cons(X, from(s(X)))) | mark#(sel(X1, X2)) → active#(sel(mark(X1), mark(X2))) |
active#(unquote1(cons1(X, Z))) → unquote1#(Z) | active#(quote1(cons(X, Z))) → quote#(X) |
mark#(from(X)) → active#(from(mark(X))) | mark#(s1(X)) → active#(s1(mark(X))) |
mark#(first(X1, X2)) → mark#(X1) | mark#(first1(X1, X2)) → active#(first1(mark(X1), mark(X2))) |
mark#(quote1(X)) → active#(quote1(X)) | active#(quote1(cons(X, Z))) → mark#(cons1(quote(X), quote1(Z))) |
active#(quote(s(X))) → s1#(quote(X)) | active#(first1(0, Z)) → mark#(nil1) |
mark#(unquote1(X)) → mark#(X) | mark#(quote(X)) → active#(quote(X)) |
mark#(first1(X1, X2)) → mark#(X1) | active#(sel(0, cons(X, Z))) → mark#(X) |
active#(sel(s(X), cons(Y, Z))) → mark#(sel(X, Z)) | mark#(nil) → active#(nil) |
mark#(sel(X1, X2)) → mark#(X2) | mark#(first1(X1, X2)) → mark#(X2) |
active#(quote(sel(X, Z))) → mark#(sel1(X, Z)) | mark#(cons1(X1, X2)) → active#(cons1(mark(X1), mark(X2))) |
mark#(0) → active#(0) | mark#(first(X1, X2)) → mark#(X2) |
mark#(fcons(X1, X2)) → mark#(X2) | mark#(s(X)) → active#(s(mark(X))) |
mark#(fcons(X1, X2)) → mark#(X1) | active#(quote(0)) → mark#(01) |
mark#(first(X1, X2)) → active#(first(mark(X1), mark(X2))) | mark#(sel1(X1, X2)) → mark#(X2) |
mark#(cons1(X1, X2)) → mark#(X2) | mark#(s1(X)) → mark#(X) |
active#(sel1(s(X), cons(Y, Z))) → mark#(sel1(X, Z)) | active#(quote1(nil)) → mark#(nil1) |
active#(unquote(01)) → mark#(0) | active#(first(0, Z)) → mark#(nil) |
mark#(sel1(X1, X2)) → mark#(X1) | active#(unquote(s1(X))) → mark#(s(unquote(X))) |
mark#(nil1) → active#(nil1) | active#(fcons(X, Z)) → mark#(cons(X, Z)) |
cons#(X1, active(X2)) → cons#(X1, X2) | cons#(mark(X1), X2) → cons#(X1, X2) |
cons#(active(X1), X2) → cons#(X1, X2) | cons#(X1, mark(X2)) → cons#(X1, X2) |
first1#(active(X1), X2) → first1#(X1, X2) | first1#(mark(X1), X2) → first1#(X1, X2) |
first1#(X1, active(X2)) → first1#(X1, X2) | first1#(X1, mark(X2)) → first1#(X1, X2) |
first#(active(X1), X2) → first#(X1, X2) | first#(mark(X1), X2) → first#(X1, X2) |
first#(X1, active(X2)) → first#(X1, X2) | first#(X1, mark(X2)) → first#(X1, X2) |
mark#(cons(X1, X2)) → active#(cons(mark(X1), X2)) | active#(unquote1(nil1)) → mark#(nil) |
mark#(fcons(X1, X2)) → active#(fcons(mark(X1), mark(X2))) | active#(quote1(first(X, Z))) → mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) → active#(sel1(mark(X1), mark(X2))) | mark#(01) → active#(01) |
active#(sel1(0, cons(X, Z))) → mark#(quote(X)) | mark#(cons1(X1, X2)) → mark#(X1) |
active#(first1(s(X), cons(Y, Z))) → mark#(cons1(quote(Y), first1(X, Z))) | active#(first(s(X), cons(Y, Z))) → mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) → mark#(X) | mark#(s(X)) → mark#(X) |
mark#(sel(X1, X2)) → mark#(X1) | active#(quote(s(X))) → mark#(s1(quote(X))) |
mark#(unquote1(X)) → active#(unquote1(mark(X))) | active#(unquote1(cons1(X, Z))) → mark#(fcons(unquote(X), unquote1(Z))) |
mark#(from(X)) → mark#(X) | mark#(cons(X1, X2)) → mark#(X1) |
mark#(unquote(X)) → active#(unquote(mark(X))) | mark#(sel(X1, X2)) → active#(sel(mark(X1), mark(X2))) |
active#(from(X)) → mark#(cons(X, from(s(X)))) | active#(from(X)) → s#(X) |
mark#(from(X)) → active#(from(mark(X))) | mark#(s1(X)) → active#(s1(mark(X))) |
mark#(first(X1, X2)) → mark#(X1) | mark#(first1(X1, X2)) → active#(first1(mark(X1), mark(X2))) |
mark#(quote1(X)) → active#(quote1(X)) | active#(quote1(cons(X, Z))) → mark#(cons1(quote(X), quote1(Z))) |
active#(first1(0, Z)) → mark#(nil1) | mark#(unquote1(X)) → mark#(X) |
mark#(quote(X)) → active#(quote(X)) | mark#(first1(X1, X2)) → mark#(X1) |
active#(sel(0, cons(X, Z))) → mark#(X) | active#(sel(s(X), cons(Y, Z))) → mark#(sel(X, Z)) |
mark#(nil) → active#(nil) | mark#(sel(X1, X2)) → mark#(X2) |
mark#(first1(X1, X2)) → mark#(X2) | active#(quote(sel(X, Z))) → mark#(sel1(X, Z)) |
mark#(cons1(X1, X2)) → active#(cons1(mark(X1), mark(X2))) | mark#(0) → active#(0) |
mark#(first(X1, X2)) → mark#(X2) | mark#(fcons(X1, X2)) → mark#(X2) |
mark#(s(X)) → active#(s(mark(X))) | mark#(fcons(X1, X2)) → mark#(X1) |
active#(quote(0)) → mark#(01) | mark#(first(X1, X2)) → active#(first(mark(X1), mark(X2))) |
mark#(sel1(X1, X2)) → mark#(X2) | mark#(cons1(X1, X2)) → mark#(X2) |
mark#(s1(X)) → mark#(X) | active#(sel1(s(X), cons(Y, Z))) → mark#(sel1(X, Z)) |
active#(quote1(nil)) → mark#(nil1) | active#(unquote(01)) → mark#(0) |
active#(first(0, Z)) → mark#(nil) | mark#(sel1(X1, X2)) → mark#(X1) |
mark#(nil1) → active#(nil1) | active#(unquote(s1(X))) → mark#(s(unquote(X))) |
active#(fcons(X, Z)) → mark#(cons(X, Z)) |
mark#(cons(X1, X2)) → active#(cons(mark(X1), X2)) | active#(unquote1(nil1)) → mark#(nil) |
mark#(fcons(X1, X2)) → active#(fcons(mark(X1), mark(X2))) | active#(quote1(first(X, Z))) → mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) → active#(sel1(mark(X1), mark(X2))) | mark#(01) → active#(01) |
active#(sel1(0, cons(X, Z))) → mark#(quote(X)) | mark#(cons1(X1, X2)) → mark#(X1) |
active#(first1(s(X), cons(Y, Z))) → mark#(cons1(quote(Y), first1(X, Z))) | active#(first(s(X), cons(Y, Z))) → mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) → mark#(X) | mark#(s(X)) → mark#(X) |
mark#(sel(X1, X2)) → mark#(X1) | mark#(unquote1(X)) → active#(unquote1(mark(X))) |
active#(quote(s(X))) → mark#(s1(quote(X))) | active#(unquote1(cons1(X, Z))) → mark#(fcons(unquote(X), unquote1(Z))) |
mark#(from(X)) → mark#(X) | mark#(cons(X1, X2)) → mark#(X1) |
mark#(unquote(X)) → active#(unquote(mark(X))) | mark#(sel(X1, X2)) → active#(sel(mark(X1), mark(X2))) |
active#(from(X)) → mark#(cons(X, from(s(X)))) | active#(unquote1(cons1(X, Z))) → unquote1#(Z) |
active#(from(X)) → s#(X) | active#(quote1(cons(X, Z))) → quote#(X) |
mark#(from(X)) → active#(from(mark(X))) | mark#(s1(X)) → active#(s1(mark(X))) |
mark#(first(X1, X2)) → mark#(X1) | mark#(first1(X1, X2)) → active#(first1(mark(X1), mark(X2))) |
mark#(quote1(X)) → active#(quote1(X)) | active#(quote1(cons(X, Z))) → mark#(cons1(quote(X), quote1(Z))) |
active#(quote(s(X))) → s1#(quote(X)) | active#(first1(0, Z)) → mark#(nil1) |
mark#(unquote1(X)) → mark#(X) | mark#(quote(X)) → active#(quote(X)) |
mark#(first1(X1, X2)) → mark#(X1) | active#(sel(0, cons(X, Z))) → mark#(X) |
active#(sel(s(X), cons(Y, Z))) → mark#(sel(X, Z)) | mark#(nil) → active#(nil) |
mark#(sel(X1, X2)) → mark#(X2) | mark#(first1(X1, X2)) → mark#(X2) |
active#(from(X)) → cons#(X, from(s(X))) | active#(quote(sel(X, Z))) → mark#(sel1(X, Z)) |
mark#(cons1(X1, X2)) → active#(cons1(mark(X1), mark(X2))) | mark#(first(X1, X2)) → mark#(X2) |
mark#(0) → active#(0) | mark#(fcons(X1, X2)) → mark#(X2) |
mark#(s(X)) → active#(s(mark(X))) | mark#(fcons(X1, X2)) → mark#(X1) |
active#(quote(0)) → mark#(01) | mark#(first(X1, X2)) → active#(first(mark(X1), mark(X2))) |
mark#(sel1(X1, X2)) → mark#(X2) | mark#(cons1(X1, X2)) → mark#(X2) |
mark#(s1(X)) → mark#(X) | active#(sel1(s(X), cons(Y, Z))) → mark#(sel1(X, Z)) |
active#(quote1(nil)) → mark#(nil1) | active#(unquote(01)) → mark#(0) |
active#(first(0, Z)) → mark#(nil) | mark#(sel1(X1, X2)) → mark#(X1) |
active#(unquote(s1(X))) → mark#(s(unquote(X))) | mark#(nil1) → active#(nil1) |
active#(fcons(X, Z)) → mark#(cons(X, Z)) |
mark#(cons1(X1, X2)) → cons1#(mark(X1), mark(X2)) | mark#(cons(X1, X2)) → active#(cons(mark(X1), X2)) |
active#(unquote1(nil1)) → mark#(nil) | mark#(fcons(X1, X2)) → active#(fcons(mark(X1), mark(X2))) |
active#(quote1(first(X, Z))) → mark#(first1(X, Z)) | mark#(sel1(X1, X2)) → active#(sel1(mark(X1), mark(X2))) |
mark#(01) → active#(01) | active#(sel1(0, cons(X, Z))) → mark#(quote(X)) |
mark#(cons1(X1, X2)) → mark#(X1) | active#(first1(s(X), cons(Y, Z))) → mark#(cons1(quote(Y), first1(X, Z))) |
active#(first(s(X), cons(Y, Z))) → mark#(cons(Y, first(X, Z))) | mark#(unquote(X)) → mark#(X) |
mark#(s(X)) → mark#(X) | mark#(sel(X1, X2)) → mark#(X1) |
active#(quote(s(X))) → mark#(s1(quote(X))) | mark#(unquote1(X)) → active#(unquote1(mark(X))) |
active#(unquote1(cons1(X, Z))) → mark#(fcons(unquote(X), unquote1(Z))) | mark#(from(X)) → mark#(X) |
mark#(cons(X1, X2)) → mark#(X1) | mark#(unquote(X)) → active#(unquote(mark(X))) |
active#(from(X)) → mark#(cons(X, from(s(X)))) | mark#(sel(X1, X2)) → active#(sel(mark(X1), mark(X2))) |
active#(quote1(cons(X, Z))) → quote#(X) | mark#(from(X)) → active#(from(mark(X))) |
mark#(s1(X)) → active#(s1(mark(X))) | mark#(first1(X1, X2)) → active#(first1(mark(X1), mark(X2))) |
mark#(first(X1, X2)) → mark#(X1) | mark#(quote1(X)) → active#(quote1(X)) |
active#(quote1(cons(X, Z))) → mark#(cons1(quote(X), quote1(Z))) | active#(quote(s(X))) → s1#(quote(X)) |
active#(first1(0, Z)) → mark#(nil1) | mark#(unquote1(X)) → mark#(X) |
mark#(first1(X1, X2)) → mark#(X1) | mark#(quote(X)) → active#(quote(X)) |
active#(sel(0, cons(X, Z))) → mark#(X) | active#(sel(s(X), cons(Y, Z))) → mark#(sel(X, Z)) |
mark#(nil) → active#(nil) | mark#(sel(X1, X2)) → mark#(X2) |
mark#(first1(X1, X2)) → mark#(X2) | active#(quote(sel(X, Z))) → mark#(sel1(X, Z)) |
mark#(cons1(X1, X2)) → active#(cons1(mark(X1), mark(X2))) | mark#(first(X1, X2)) → mark#(X2) |
mark#(0) → active#(0) | mark#(s(X)) → active#(s(mark(X))) |
mark#(fcons(X1, X2)) → mark#(X2) | mark#(fcons(X1, X2)) → mark#(X1) |
active#(quote(0)) → mark#(01) | mark#(first(X1, X2)) → active#(first(mark(X1), mark(X2))) |
mark#(sel1(X1, X2)) → mark#(X2) | mark#(cons1(X1, X2)) → mark#(X2) |
mark#(s1(X)) → mark#(X) | active#(sel1(s(X), cons(Y, Z))) → mark#(sel1(X, Z)) |
active#(quote1(nil)) → mark#(nil1) | active#(unquote(01)) → mark#(0) |
active#(first(0, Z)) → mark#(nil) | mark#(sel1(X1, X2)) → mark#(X1) |
mark#(nil1) → active#(nil1) | active#(unquote(s1(X))) → mark#(s(unquote(X))) |
active#(fcons(X, Z)) → mark#(cons(X, Z)) |
fcons#(active(X1), X2) → fcons#(X1, X2) | fcons#(X1, mark(X2)) → fcons#(X1, X2) |
fcons#(X1, active(X2)) → fcons#(X1, X2) | fcons#(mark(X1), X2) → fcons#(X1, X2) |
cons1#(X1, active(X2)) → cons1#(X1, X2) | cons1#(mark(X1), X2) → cons1#(X1, X2) |
cons1#(X1, mark(X2)) → cons1#(X1, X2) | cons1#(active(X1), X2) → cons1#(X1, X2) |
mark#(cons(X1, X2)) → active#(cons(mark(X1), X2)) | active#(unquote1(nil1)) → mark#(nil) |
mark#(fcons(X1, X2)) → active#(fcons(mark(X1), mark(X2))) | active#(quote1(first(X, Z))) → mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) → active#(sel1(mark(X1), mark(X2))) | mark#(01) → active#(01) |
mark#(cons1(X1, X2)) → mark#(X1) | active#(sel1(0, cons(X, Z))) → mark#(quote(X)) |
active#(fcons(X, Z)) → cons#(X, Z) | active#(first1(s(X), cons(Y, Z))) → mark#(cons1(quote(Y), first1(X, Z))) |
active#(first(s(X), cons(Y, Z))) → mark#(cons(Y, first(X, Z))) | mark#(unquote(X)) → mark#(X) |
mark#(s(X)) → mark#(X) | mark#(sel(X1, X2)) → mark#(X1) |
mark#(unquote1(X)) → active#(unquote1(mark(X))) | active#(quote(s(X))) → mark#(s1(quote(X))) |
active#(sel(s(X), cons(Y, Z))) → sel#(X, Z) | active#(unquote1(cons1(X, Z))) → mark#(fcons(unquote(X), unquote1(Z))) |
mark#(from(X)) → mark#(X) | mark#(cons(X1, X2)) → mark#(X1) |
mark#(unquote(X)) → active#(unquote(mark(X))) | active#(from(X)) → mark#(cons(X, from(s(X)))) |
mark#(sel(X1, X2)) → active#(sel(mark(X1), mark(X2))) | active#(unquote1(cons1(X, Z))) → unquote1#(Z) |
active#(quote1(cons(X, Z))) → quote#(X) | mark#(from(X)) → active#(from(mark(X))) |
mark#(s1(X)) → active#(s1(mark(X))) | mark#(first(X1, X2)) → mark#(X1) |
mark#(first1(X1, X2)) → active#(first1(mark(X1), mark(X2))) | mark#(quote1(X)) → active#(quote1(X)) |
active#(quote1(cons(X, Z))) → mark#(cons1(quote(X), quote1(Z))) | active#(quote(s(X))) → s1#(quote(X)) |
active#(first1(0, Z)) → mark#(nil1) | mark#(unquote1(X)) → mark#(X) |
mark#(quote(X)) → active#(quote(X)) | mark#(first1(X1, X2)) → mark#(X1) |
active#(sel(0, cons(X, Z))) → mark#(X) | active#(sel(s(X), cons(Y, Z))) → mark#(sel(X, Z)) |
mark#(nil) → active#(nil) | mark#(sel(X1, X2)) → mark#(X2) |
mark#(first1(X1, X2)) → mark#(X2) | active#(from(X)) → cons#(X, from(s(X))) |
active#(quote(sel(X, Z))) → mark#(sel1(X, Z)) | mark#(cons1(X1, X2)) → active#(cons1(mark(X1), mark(X2))) |
mark#(first(X1, X2)) → mark#(X2) | mark#(0) → active#(0) |
mark#(fcons(X1, X2)) → mark#(X2) | mark#(s(X)) → active#(s(mark(X))) |
mark#(fcons(X1, X2)) → mark#(X1) | mark#(first(X1, X2)) → active#(first(mark(X1), mark(X2))) |
active#(quote(0)) → mark#(01) | mark#(sel1(X1, X2)) → mark#(X2) |
mark#(cons1(X1, X2)) → mark#(X2) | mark#(s1(X)) → mark#(X) |
active#(sel1(s(X), cons(Y, Z))) → mark#(sel1(X, Z)) | active#(quote1(nil)) → mark#(nil1) |
active#(unquote(01)) → mark#(0) | active#(first(0, Z)) → mark#(nil) |
mark#(sel1(X1, X2)) → mark#(X1) | active#(unquote(s1(X))) → mark#(s(unquote(X))) |
mark#(nil1) → active#(nil1) | active#(fcons(X, Z)) → mark#(cons(X, Z)) |
from#(active(X)) → from#(X) | from#(mark(X)) → from#(X) |
mark#(cons(X1, X2)) → active#(cons(mark(X1), X2)) | active#(unquote1(nil1)) → mark#(nil) |
mark#(fcons(X1, X2)) → active#(fcons(mark(X1), mark(X2))) | active#(quote1(first(X, Z))) → mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) → active#(sel1(mark(X1), mark(X2))) | mark#(01) → active#(01) |
active#(sel1(0, cons(X, Z))) → mark#(quote(X)) | mark#(cons1(X1, X2)) → mark#(X1) |
active#(first1(s(X), cons(Y, Z))) → mark#(cons1(quote(Y), first1(X, Z))) | active#(first(s(X), cons(Y, Z))) → mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) → mark#(X) | mark#(s(X)) → mark#(X) |
mark#(sel(X1, X2)) → mark#(X1) | active#(quote(s(X))) → mark#(s1(quote(X))) |
mark#(sel(X1, X2)) → sel#(mark(X1), mark(X2)) | mark#(unquote1(X)) → active#(unquote1(mark(X))) |
active#(unquote1(cons1(X, Z))) → mark#(fcons(unquote(X), unquote1(Z))) | mark#(from(X)) → mark#(X) |
mark#(cons(X1, X2)) → mark#(X1) | mark#(unquote(X)) → active#(unquote(mark(X))) |
active#(from(X)) → mark#(cons(X, from(s(X)))) | mark#(sel(X1, X2)) → active#(sel(mark(X1), mark(X2))) |
active#(quote1(cons(X, Z))) → quote#(X) | active#(from(X)) → s#(X) |
mark#(from(X)) → active#(from(mark(X))) | mark#(s1(X)) → active#(s1(mark(X))) |
mark#(first(X1, X2)) → mark#(X1) | mark#(first1(X1, X2)) → active#(first1(mark(X1), mark(X2))) |
mark#(quote1(X)) → active#(quote1(X)) | active#(quote1(cons(X, Z))) → mark#(cons1(quote(X), quote1(Z))) |
active#(quote(s(X))) → s1#(quote(X)) | active#(first1(0, Z)) → mark#(nil1) |
mark#(unquote1(X)) → mark#(X) | mark#(quote(X)) → active#(quote(X)) |
mark#(first1(X1, X2)) → mark#(X1) | active#(sel(0, cons(X, Z))) → mark#(X) |
active#(sel(s(X), cons(Y, Z))) → mark#(sel(X, Z)) | mark#(nil) → active#(nil) |
mark#(sel(X1, X2)) → mark#(X2) | mark#(first1(X1, X2)) → mark#(X2) |
active#(from(X)) → cons#(X, from(s(X))) | active#(quote(sel(X, Z))) → mark#(sel1(X, Z)) |
mark#(cons1(X1, X2)) → active#(cons1(mark(X1), mark(X2))) | mark#(first(X1, X2)) → mark#(X2) |
mark#(0) → active#(0) | mark#(s(X)) → active#(s(mark(X))) |
mark#(fcons(X1, X2)) → mark#(X2) | mark#(fcons(X1, X2)) → mark#(X1) |
mark#(first(X1, X2)) → active#(first(mark(X1), mark(X2))) | active#(quote(0)) → mark#(01) |
mark#(sel1(X1, X2)) → mark#(X2) | mark#(cons1(X1, X2)) → mark#(X2) |
mark#(s1(X)) → mark#(X) | active#(sel1(s(X), cons(Y, Z))) → mark#(sel1(X, Z)) |
active#(quote1(nil)) → mark#(nil1) | active#(unquote(01)) → mark#(0) |
active#(first(0, Z)) → mark#(nil) | mark#(sel1(X1, X2)) → mark#(X1) |
active#(unquote(s1(X))) → mark#(s(unquote(X))) | mark#(nil1) → active#(nil1) |
active#(fcons(X, Z)) → mark#(cons(X, Z)) |
sel#(active(X1), X2) → sel#(X1, X2) | sel#(mark(X1), X2) → sel#(X1, X2) |
sel#(X1, active(X2)) → sel#(X1, X2) | sel#(X1, mark(X2)) → sel#(X1, X2) |
mark#(cons(X1, X2)) → active#(cons(mark(X1), X2)) | active#(unquote1(nil1)) → mark#(nil) |
mark#(fcons(X1, X2)) → active#(fcons(mark(X1), mark(X2))) | active#(quote1(first(X, Z))) → mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) → active#(sel1(mark(X1), mark(X2))) | mark#(01) → active#(01) |
mark#(cons1(X1, X2)) → mark#(X1) | active#(sel1(0, cons(X, Z))) → mark#(quote(X)) |
active#(first1(s(X), cons(Y, Z))) → mark#(cons1(quote(Y), first1(X, Z))) | active#(first(s(X), cons(Y, Z))) → mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) → mark#(X) | mark#(s(X)) → mark#(X) |
mark#(sel(X1, X2)) → mark#(X1) | mark#(unquote1(X)) → active#(unquote1(mark(X))) |
active#(quote(s(X))) → mark#(s1(quote(X))) | active#(sel(s(X), cons(Y, Z))) → sel#(X, Z) |
active#(unquote1(cons1(X, Z))) → mark#(fcons(unquote(X), unquote1(Z))) | mark#(from(X)) → mark#(X) |
mark#(cons(X1, X2)) → mark#(X1) | mark#(unquote(X)) → active#(unquote(mark(X))) |
active#(from(X)) → mark#(cons(X, from(s(X)))) | mark#(sel(X1, X2)) → active#(sel(mark(X1), mark(X2))) |
active#(unquote1(cons1(X, Z))) → unquote1#(Z) | active#(quote1(cons(X, Z))) → quote#(X) |
active#(from(X)) → s#(X) | mark#(from(X)) → active#(from(mark(X))) |
mark#(s1(X)) → active#(s1(mark(X))) | mark#(first(X1, X2)) → mark#(X1) |
mark#(first1(X1, X2)) → active#(first1(mark(X1), mark(X2))) | mark#(quote1(X)) → active#(quote1(X)) |
active#(quote1(cons(X, Z))) → mark#(cons1(quote(X), quote1(Z))) | active#(quote(s(X))) → s1#(quote(X)) |
active#(first1(0, Z)) → mark#(nil1) | mark#(unquote1(X)) → mark#(X) |
mark#(quote(X)) → active#(quote(X)) | mark#(first1(X1, X2)) → mark#(X1) |
active#(sel(0, cons(X, Z))) → mark#(X) | active#(sel(s(X), cons(Y, Z))) → mark#(sel(X, Z)) |
mark#(nil) → active#(nil) | mark#(sel(X1, X2)) → mark#(X2) |
active#(from(X)) → cons#(X, from(s(X))) | mark#(first1(X1, X2)) → mark#(X2) |
active#(quote(sel(X, Z))) → mark#(sel1(X, Z)) | mark#(cons1(X1, X2)) → active#(cons1(mark(X1), mark(X2))) |
mark#(0) → active#(0) | mark#(first(X1, X2)) → mark#(X2) |
mark#(fcons(X1, X2)) → mark#(X2) | mark#(s(X)) → active#(s(mark(X))) |
mark#(fcons(X1, X2)) → mark#(X1) | mark#(first(X1, X2)) → active#(first(mark(X1), mark(X2))) |
active#(quote(0)) → mark#(01) | mark#(sel1(X1, X2)) → mark#(X2) |
mark#(cons1(X1, X2)) → mark#(X2) | mark#(s1(X)) → mark#(X) |
active#(sel1(s(X), cons(Y, Z))) → mark#(sel1(X, Z)) | active#(quote1(nil)) → mark#(nil1) |
active#(unquote(01)) → mark#(0) | active#(first(0, Z)) → mark#(nil) |
mark#(sel1(X1, X2)) → mark#(X1) | active#(unquote(s1(X))) → mark#(s(unquote(X))) |
mark#(nil1) → active#(nil1) | active#(fcons(X, Z)) → mark#(cons(X, Z)) |
mark#(cons(X1, X2)) → active#(cons(mark(X1), X2)) | active#(unquote1(nil1)) → mark#(nil) |
mark#(fcons(X1, X2)) → active#(fcons(mark(X1), mark(X2))) | active#(quote1(first(X, Z))) → mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) → active#(sel1(mark(X1), mark(X2))) | mark#(01) → active#(01) |
mark#(cons1(X1, X2)) → mark#(X1) | active#(sel1(0, cons(X, Z))) → mark#(quote(X)) |
active#(first1(s(X), cons(Y, Z))) → mark#(cons1(quote(Y), first1(X, Z))) | active#(first(s(X), cons(Y, Z))) → mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) → mark#(X) | mark#(s(X)) → mark#(X) |
mark#(sel(X1, X2)) → mark#(X1) | active#(quote(s(X))) → mark#(s1(quote(X))) |
mark#(unquote1(X)) → active#(unquote1(mark(X))) | active#(unquote1(cons1(X, Z))) → mark#(fcons(unquote(X), unquote1(Z))) |
mark#(from(X)) → mark#(X) | mark#(cons(X1, X2)) → mark#(X1) |
mark#(unquote(X)) → active#(unquote(mark(X))) | mark#(sel(X1, X2)) → active#(sel(mark(X1), mark(X2))) |
active#(from(X)) → mark#(cons(X, from(s(X)))) | active#(quote1(cons(X, Z))) → quote#(X) |
active#(from(X)) → s#(X) | mark#(from(X)) → active#(from(mark(X))) |
mark#(s1(X)) → active#(s1(mark(X))) | mark#(first1(X1, X2)) → active#(first1(mark(X1), mark(X2))) |
mark#(first(X1, X2)) → mark#(X1) | mark#(quote1(X)) → active#(quote1(X)) |
active#(quote1(cons(X, Z))) → mark#(cons1(quote(X), quote1(Z))) | active#(quote(s(X))) → s1#(quote(X)) |
active#(first1(0, Z)) → mark#(nil1) | mark#(unquote1(X)) → mark#(X) |
mark#(quote(X)) → active#(quote(X)) | mark#(first1(X1, X2)) → mark#(X1) |
active#(sel(0, cons(X, Z))) → mark#(X) | active#(sel(s(X), cons(Y, Z))) → mark#(sel(X, Z)) |
mark#(nil) → active#(nil) | mark#(sel(X1, X2)) → mark#(X2) |
mark#(first1(X1, X2)) → mark#(X2) | active#(quote(sel(X, Z))) → mark#(sel1(X, Z)) |
mark#(cons1(X1, X2)) → active#(cons1(mark(X1), mark(X2))) | mark#(first(X1, X2)) → mark#(X2) |
mark#(0) → active#(0) | mark#(fcons(X1, X2)) → mark#(X2) |
mark#(s(X)) → active#(s(mark(X))) | mark#(fcons(X1, X2)) → mark#(X1) |
mark#(first(X1, X2)) → active#(first(mark(X1), mark(X2))) | active#(quote(0)) → mark#(01) |
mark#(sel1(X1, X2)) → mark#(X2) | mark#(cons1(X1, X2)) → mark#(X2) |
mark#(s1(X)) → mark#(X) | active#(sel1(s(X), cons(Y, Z))) → mark#(sel1(X, Z)) |
active#(quote1(nil)) → mark#(nil1) | active#(unquote(01)) → mark#(0) |
active#(first(0, Z)) → mark#(nil) | mark#(sel1(X1, X2)) → mark#(X1) |
active#(unquote(s1(X))) → mark#(s(unquote(X))) | mark#(nil1) → active#(nil1) |
active#(fcons(X, Z)) → mark#(cons(X, Z)) |
mark#(cons(X1, X2)) → active#(cons(mark(X1), X2)) | active#(unquote1(nil1)) → mark#(nil) |
mark#(fcons(X1, X2)) → active#(fcons(mark(X1), mark(X2))) | active#(quote1(first(X, Z))) → mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) → active#(sel1(mark(X1), mark(X2))) | mark#(01) → active#(01) |
mark#(cons1(X1, X2)) → mark#(X1) | active#(sel1(0, cons(X, Z))) → mark#(quote(X)) |
active#(first1(s(X), cons(Y, Z))) → mark#(cons1(quote(Y), first1(X, Z))) | active#(first(s(X), cons(Y, Z))) → mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) → mark#(X) | mark#(s(X)) → mark#(X) |
mark#(sel(X1, X2)) → mark#(X1) | active#(quote(s(X))) → mark#(s1(quote(X))) |
mark#(unquote1(X)) → active#(unquote1(mark(X))) | active#(unquote1(cons1(X, Z))) → mark#(fcons(unquote(X), unquote1(Z))) |
mark#(from(X)) → mark#(X) | mark#(cons(X1, X2)) → mark#(X1) |
mark#(unquote(X)) → active#(unquote(mark(X))) | mark#(sel(X1, X2)) → active#(sel(mark(X1), mark(X2))) |
active#(from(X)) → mark#(cons(X, from(s(X)))) | active#(quote1(cons(X, Z))) → quote#(X) |
mark#(from(X)) → active#(from(mark(X))) | mark#(s1(X)) → active#(s1(mark(X))) |
mark#(first(X1, X2)) → mark#(X1) | mark#(first1(X1, X2)) → active#(first1(mark(X1), mark(X2))) |
mark#(quote1(X)) → active#(quote1(X)) | active#(quote1(cons(X, Z))) → mark#(cons1(quote(X), quote1(Z))) |
active#(quote(s(X))) → s1#(quote(X)) | active#(first1(0, Z)) → mark#(nil1) |
mark#(unquote1(X)) → mark#(X) | mark#(quote(X)) → active#(quote(X)) |
mark#(first1(X1, X2)) → mark#(X1) | active#(sel(0, cons(X, Z))) → mark#(X) |
active#(sel(s(X), cons(Y, Z))) → mark#(sel(X, Z)) | mark#(nil) → active#(nil) |
mark#(sel(X1, X2)) → mark#(X2) | mark#(first1(X1, X2)) → mark#(X2) |
active#(quote(sel(X, Z))) → mark#(sel1(X, Z)) | mark#(cons1(X1, X2)) → active#(cons1(mark(X1), mark(X2))) |
mark#(first(X1, X2)) → mark#(X2) | mark#(0) → active#(0) |
mark#(s(X)) → active#(s(mark(X))) | mark#(fcons(X1, X2)) → mark#(X2) |
mark#(fcons(X1, X2)) → mark#(X1) | active#(quote(0)) → mark#(01) |
mark#(first(X1, X2)) → active#(first(mark(X1), mark(X2))) | mark#(sel1(X1, X2)) → mark#(X2) |
mark#(cons1(X1, X2)) → mark#(X2) | mark#(s1(X)) → mark#(X) |
active#(sel1(s(X), cons(Y, Z))) → mark#(sel1(X, Z)) | active#(quote1(nil)) → mark#(nil1) |
active#(unquote(01)) → mark#(0) | active#(first(0, Z)) → mark#(nil) |
mark#(sel1(X1, X2)) → mark#(X1) | active#(unquote(s1(X))) → mark#(s(unquote(X))) |
mark#(nil1) → active#(nil1) | active#(fcons(X, Z)) → mark#(cons(X, Z)) |
mark#(cons(X1, X2)) → active#(cons(mark(X1), X2)) | active#(unquote1(nil1)) → mark#(nil) |
mark#(fcons(X1, X2)) → active#(fcons(mark(X1), mark(X2))) | active#(quote1(first(X, Z))) → mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) → active#(sel1(mark(X1), mark(X2))) | mark#(01) → active#(01) |
mark#(cons1(X1, X2)) → mark#(X1) | active#(first(s(X), cons(Y, Z))) → cons#(Y, first(X, Z)) |
active#(sel1(0, cons(X, Z))) → mark#(quote(X)) | active#(first1(s(X), cons(Y, Z))) → mark#(cons1(quote(Y), first1(X, Z))) |
active#(first(s(X), cons(Y, Z))) → mark#(cons(Y, first(X, Z))) | mark#(unquote(X)) → mark#(X) |
mark#(s(X)) → mark#(X) | mark#(sel(X1, X2)) → mark#(X1) |
active#(quote(s(X))) → mark#(s1(quote(X))) | mark#(unquote1(X)) → active#(unquote1(mark(X))) |
active#(unquote1(cons1(X, Z))) → mark#(fcons(unquote(X), unquote1(Z))) | mark#(from(X)) → mark#(X) |
mark#(cons(X1, X2)) → mark#(X1) | mark#(unquote(X)) → active#(unquote(mark(X))) |
mark#(sel(X1, X2)) → active#(sel(mark(X1), mark(X2))) | active#(from(X)) → mark#(cons(X, from(s(X)))) |
active#(quote1(cons(X, Z))) → quote#(X) | mark#(from(X)) → active#(from(mark(X))) |
mark#(s1(X)) → active#(s1(mark(X))) | mark#(first1(X1, X2)) → active#(first1(mark(X1), mark(X2))) |
mark#(first(X1, X2)) → mark#(X1) | mark#(quote1(X)) → active#(quote1(X)) |
active#(quote1(cons(X, Z))) → mark#(cons1(quote(X), quote1(Z))) | active#(quote(s(X))) → s1#(quote(X)) |
active#(first1(0, Z)) → mark#(nil1) | mark#(unquote1(X)) → mark#(X) |
mark#(quote(X)) → active#(quote(X)) | mark#(first1(X1, X2)) → mark#(X1) |
active#(sel(0, cons(X, Z))) → mark#(X) | active#(sel(s(X), cons(Y, Z))) → mark#(sel(X, Z)) |
mark#(nil) → active#(nil) | mark#(sel(X1, X2)) → mark#(X2) |
mark#(first1(X1, X2)) → mark#(X2) | active#(quote(sel(X, Z))) → mark#(sel1(X, Z)) |
mark#(cons1(X1, X2)) → active#(cons1(mark(X1), mark(X2))) | mark#(first(X1, X2)) → mark#(X2) |
mark#(0) → active#(0) | mark#(s(X)) → active#(s(mark(X))) |
mark#(fcons(X1, X2)) → mark#(X2) | mark#(fcons(X1, X2)) → mark#(X1) |
active#(quote(0)) → mark#(01) | mark#(first(X1, X2)) → active#(first(mark(X1), mark(X2))) |
mark#(sel1(X1, X2)) → mark#(X2) | mark#(cons1(X1, X2)) → mark#(X2) |
mark#(s1(X)) → mark#(X) | active#(sel1(s(X), cons(Y, Z))) → mark#(sel1(X, Z)) |
active#(quote1(nil)) → mark#(nil1) | active#(unquote(01)) → mark#(0) |
mark#(sel1(X1, X2)) → sel1#(mark(X1), mark(X2)) | active#(first(0, Z)) → mark#(nil) |
mark#(sel1(X1, X2)) → mark#(X1) | mark#(nil1) → active#(nil1) |
active#(unquote(s1(X))) → mark#(s(unquote(X))) | active#(fcons(X, Z)) → mark#(cons(X, Z)) |
unquote1#(mark(X)) → unquote1#(X) | unquote1#(active(X)) → unquote1#(X) |
mark#(cons(X1, X2)) → active#(cons(mark(X1), X2)) | active#(unquote1(nil1)) → mark#(nil) |
mark#(fcons(X1, X2)) → active#(fcons(mark(X1), mark(X2))) | active#(quote1(first(X, Z))) → mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) → active#(sel1(mark(X1), mark(X2))) | mark#(01) → active#(01) |
mark#(cons1(X1, X2)) → mark#(X1) | active#(sel1(0, cons(X, Z))) → mark#(quote(X)) |
active#(fcons(X, Z)) → cons#(X, Z) | active#(first1(s(X), cons(Y, Z))) → mark#(cons1(quote(Y), first1(X, Z))) |
active#(first(s(X), cons(Y, Z))) → mark#(cons(Y, first(X, Z))) | mark#(unquote(X)) → mark#(X) |
mark#(s(X)) → mark#(X) | mark#(sel(X1, X2)) → mark#(X1) |
active#(quote(s(X))) → mark#(s1(quote(X))) | mark#(unquote1(X)) → active#(unquote1(mark(X))) |
active#(sel(s(X), cons(Y, Z))) → sel#(X, Z) | active#(unquote1(cons1(X, Z))) → mark#(fcons(unquote(X), unquote1(Z))) |
mark#(from(X)) → mark#(X) | mark#(cons(X1, X2)) → mark#(X1) |
mark#(unquote(X)) → active#(unquote(mark(X))) | active#(from(X)) → mark#(cons(X, from(s(X)))) |
mark#(sel(X1, X2)) → active#(sel(mark(X1), mark(X2))) | active#(quote1(cons(X, Z))) → quote#(X) |
active#(from(X)) → s#(X) | mark#(from(X)) → active#(from(mark(X))) |
mark#(s1(X)) → active#(s1(mark(X))) | mark#(first(X1, X2)) → mark#(X1) |
mark#(first1(X1, X2)) → active#(first1(mark(X1), mark(X2))) | mark#(quote1(X)) → active#(quote1(X)) |
active#(quote1(cons(X, Z))) → mark#(cons1(quote(X), quote1(Z))) | active#(quote(s(X))) → s1#(quote(X)) |
active#(first1(0, Z)) → mark#(nil1) | mark#(unquote1(X)) → mark#(X) |
mark#(quote(X)) → active#(quote(X)) | mark#(first1(X1, X2)) → mark#(X1) |
active#(sel(0, cons(X, Z))) → mark#(X) | active#(sel(s(X), cons(Y, Z))) → mark#(sel(X, Z)) |
mark#(nil) → active#(nil) | mark#(sel(X1, X2)) → mark#(X2) |
mark#(first1(X1, X2)) → mark#(X2) | active#(from(X)) → cons#(X, from(s(X))) |
active#(quote(sel(X, Z))) → mark#(sel1(X, Z)) | mark#(cons1(X1, X2)) → active#(cons1(mark(X1), mark(X2))) |
mark#(0) → active#(0) | mark#(first(X1, X2)) → mark#(X2) |
mark#(fcons(X1, X2)) → mark#(X2) | mark#(s(X)) → active#(s(mark(X))) |
mark#(fcons(X1, X2)) → mark#(X1) | mark#(first(X1, X2)) → active#(first(mark(X1), mark(X2))) |
active#(quote(0)) → mark#(01) | mark#(sel1(X1, X2)) → mark#(X2) |
mark#(cons1(X1, X2)) → mark#(X2) | mark#(s1(X)) → mark#(X) |
active#(sel1(s(X), cons(Y, Z))) → mark#(sel1(X, Z)) | active#(quote1(nil)) → mark#(nil1) |
active#(unquote(01)) → mark#(0) | active#(first(0, Z)) → mark#(nil) |
mark#(sel1(X1, X2)) → mark#(X1) | active#(unquote(s1(X))) → mark#(s(unquote(X))) |
mark#(nil1) → active#(nil1) | active#(fcons(X, Z)) → mark#(cons(X, Z)) |
mark#(cons(X1, X2)) → active#(cons(mark(X1), X2)) | active#(unquote1(nil1)) → mark#(nil) |
mark#(fcons(X1, X2)) → active#(fcons(mark(X1), mark(X2))) | active#(quote1(first(X, Z))) → mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) → active#(sel1(mark(X1), mark(X2))) | mark#(01) → active#(01) |
mark#(cons1(X1, X2)) → mark#(X1) | active#(sel1(0, cons(X, Z))) → mark#(quote(X)) |
active#(first1(s(X), cons(Y, Z))) → mark#(cons1(quote(Y), first1(X, Z))) | active#(first(s(X), cons(Y, Z))) → mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) → mark#(X) | mark#(s(X)) → mark#(X) |
mark#(sel(X1, X2)) → mark#(X1) | mark#(unquote1(X)) → active#(unquote1(mark(X))) |
active#(quote(s(X))) → mark#(s1(quote(X))) | active#(unquote1(cons1(X, Z))) → mark#(fcons(unquote(X), unquote1(Z))) |
mark#(from(X)) → mark#(X) | mark#(cons(X1, X2)) → mark#(X1) |
mark#(unquote(X)) → active#(unquote(mark(X))) | active#(from(X)) → mark#(cons(X, from(s(X)))) |
mark#(sel(X1, X2)) → active#(sel(mark(X1), mark(X2))) | active#(unquote1(cons1(X, Z))) → unquote1#(Z) |
active#(quote1(cons(X, Z))) → quote#(X) | active#(from(X)) → s#(X) |
mark#(from(X)) → active#(from(mark(X))) | mark#(s1(X)) → active#(s1(mark(X))) |
mark#(first(X1, X2)) → mark#(X1) | mark#(first1(X1, X2)) → active#(first1(mark(X1), mark(X2))) |
mark#(quote1(X)) → active#(quote1(X)) | active#(quote1(cons(X, Z))) → mark#(cons1(quote(X), quote1(Z))) |
active#(quote(s(X))) → s1#(quote(X)) | active#(first1(0, Z)) → mark#(nil1) |
mark#(unquote1(X)) → mark#(X) | mark#(quote(X)) → active#(quote(X)) |
mark#(first1(X1, X2)) → mark#(X1) | active#(sel(0, cons(X, Z))) → mark#(X) |
active#(sel(s(X), cons(Y, Z))) → mark#(sel(X, Z)) | mark#(nil) → active#(nil) |
mark#(sel(X1, X2)) → mark#(X2) | mark#(first1(X1, X2)) → mark#(X2) |
active#(from(X)) → cons#(X, from(s(X))) | active#(quote(sel(X, Z))) → mark#(sel1(X, Z)) |
mark#(cons1(X1, X2)) → active#(cons1(mark(X1), mark(X2))) | active#(quote1(first(X, Z))) → first1#(X, Z) |
mark#(first(X1, X2)) → mark#(X2) | mark#(0) → active#(0) |
mark#(s(X)) → active#(s(mark(X))) | mark#(fcons(X1, X2)) → mark#(X2) |
mark#(fcons(X1, X2)) → mark#(X1) | mark#(first(X1, X2)) → active#(first(mark(X1), mark(X2))) |
active#(quote(0)) → mark#(01) | mark#(sel1(X1, X2)) → mark#(X2) |
mark#(cons1(X1, X2)) → mark#(X2) | mark#(s1(X)) → mark#(X) |
active#(sel1(s(X), cons(Y, Z))) → mark#(sel1(X, Z)) | active#(quote1(nil)) → mark#(nil1) |
active#(unquote(01)) → mark#(0) | active#(first(0, Z)) → mark#(nil) |
mark#(sel1(X1, X2)) → mark#(X1) | mark#(nil1) → active#(nil1) |
active#(unquote(s1(X))) → mark#(s(unquote(X))) | active#(fcons(X, Z)) → mark#(cons(X, Z)) |
quote#(mark(X)) → quote#(X) | quote#(active(X)) → quote#(X) |
mark#(cons(X1, X2)) → active#(cons(mark(X1), X2)) | active#(unquote1(nil1)) → mark#(nil) |
mark#(fcons(X1, X2)) → active#(fcons(mark(X1), mark(X2))) | active#(quote1(first(X, Z))) → mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) → active#(sel1(mark(X1), mark(X2))) | mark#(01) → active#(01) |
mark#(cons1(X1, X2)) → mark#(X1) | active#(sel1(0, cons(X, Z))) → mark#(quote(X)) |
active#(first1(s(X), cons(Y, Z))) → mark#(cons1(quote(Y), first1(X, Z))) | active#(first(s(X), cons(Y, Z))) → mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) → mark#(X) | mark#(s(X)) → mark#(X) |
mark#(sel(X1, X2)) → mark#(X1) | mark#(unquote1(X)) → active#(unquote1(mark(X))) |
active#(quote(s(X))) → mark#(s1(quote(X))) | active#(sel(s(X), cons(Y, Z))) → sel#(X, Z) |
active#(unquote1(cons1(X, Z))) → mark#(fcons(unquote(X), unquote1(Z))) | mark#(from(X)) → mark#(X) |
mark#(cons(X1, X2)) → mark#(X1) | mark#(unquote(X)) → active#(unquote(mark(X))) |
mark#(sel(X1, X2)) → active#(sel(mark(X1), mark(X2))) | active#(from(X)) → mark#(cons(X, from(s(X)))) |
active#(unquote1(cons1(X, Z))) → unquote1#(Z) | active#(from(X)) → s#(X) |
mark#(from(X)) → active#(from(mark(X))) | mark#(s1(X)) → active#(s1(mark(X))) |
mark#(first(X1, X2)) → mark#(X1) | mark#(first1(X1, X2)) → active#(first1(mark(X1), mark(X2))) |
mark#(quote1(X)) → active#(quote1(X)) | active#(quote1(cons(X, Z))) → mark#(cons1(quote(X), quote1(Z))) |
active#(quote(s(X))) → s1#(quote(X)) | active#(first1(0, Z)) → mark#(nil1) |
mark#(unquote1(X)) → mark#(X) | mark#(quote(X)) → active#(quote(X)) |
mark#(first1(X1, X2)) → mark#(X1) | active#(sel(0, cons(X, Z))) → mark#(X) |
active#(sel(s(X), cons(Y, Z))) → mark#(sel(X, Z)) | mark#(nil) → active#(nil) |
mark#(sel(X1, X2)) → mark#(X2) | active#(from(X)) → cons#(X, from(s(X))) |
mark#(first1(X1, X2)) → mark#(X2) | active#(quote(sel(X, Z))) → mark#(sel1(X, Z)) |
mark#(cons1(X1, X2)) → active#(cons1(mark(X1), mark(X2))) | mark#(first(X1, X2)) → mark#(X2) |
mark#(0) → active#(0) | mark#(fcons(X1, X2)) → mark#(X2) |
mark#(s(X)) → active#(s(mark(X))) | mark#(fcons(X1, X2)) → mark#(X1) |
active#(quote(0)) → mark#(01) | mark#(first(X1, X2)) → active#(first(mark(X1), mark(X2))) |
mark#(sel1(X1, X2)) → mark#(X2) | mark#(cons1(X1, X2)) → mark#(X2) |
mark#(s1(X)) → mark#(X) | active#(sel1(s(X), cons(Y, Z))) → mark#(sel1(X, Z)) |
active#(quote1(nil)) → mark#(nil1) | active#(unquote(01)) → mark#(0) |
active#(first(0, Z)) → mark#(nil) | mark#(sel1(X1, X2)) → mark#(X1) |
active#(unquote(s1(X))) → mark#(s(unquote(X))) | mark#(nil1) → active#(nil1) |
active#(fcons(X, Z)) → mark#(cons(X, Z)) |
mark#(cons(X1, X2)) → active#(cons(mark(X1), X2)) | active#(unquote1(nil1)) → mark#(nil) |
mark#(fcons(X1, X2)) → active#(fcons(mark(X1), mark(X2))) | active#(quote1(first(X, Z))) → mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) → active#(sel1(mark(X1), mark(X2))) | mark#(01) → active#(01) |
active#(sel1(0, cons(X, Z))) → mark#(quote(X)) | mark#(cons1(X1, X2)) → mark#(X1) |
active#(first1(s(X), cons(Y, Z))) → mark#(cons1(quote(Y), first1(X, Z))) | active#(first(s(X), cons(Y, Z))) → mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) → mark#(X) | mark#(s(X)) → mark#(X) |
mark#(sel(X1, X2)) → mark#(X1) | active#(quote(s(X))) → mark#(s1(quote(X))) |
mark#(unquote1(X)) → active#(unquote1(mark(X))) | active#(unquote1(cons1(X, Z))) → mark#(fcons(unquote(X), unquote1(Z))) |
mark#(from(X)) → mark#(X) | mark#(cons(X1, X2)) → mark#(X1) |
mark#(unquote(X)) → active#(unquote(mark(X))) | mark#(sel(X1, X2)) → active#(sel(mark(X1), mark(X2))) |
active#(from(X)) → mark#(cons(X, from(s(X)))) | active#(quote1(cons(X, Z))) → quote#(X) |
active#(from(X)) → s#(X) | mark#(from(X)) → active#(from(mark(X))) |
mark#(s1(X)) → active#(s1(mark(X))) | mark#(first1(X1, X2)) → active#(first1(mark(X1), mark(X2))) |
mark#(first(X1, X2)) → mark#(X1) | mark#(quote1(X)) → active#(quote1(X)) |
active#(quote1(cons(X, Z))) → mark#(cons1(quote(X), quote1(Z))) | active#(quote(s(X))) → s1#(quote(X)) |
active#(first1(0, Z)) → mark#(nil1) | mark#(unquote1(X)) → mark#(X) |
mark#(quote(X)) → active#(quote(X)) | mark#(first1(X1, X2)) → mark#(X1) |
active#(sel(0, cons(X, Z))) → mark#(X) | active#(sel(s(X), cons(Y, Z))) → mark#(sel(X, Z)) |
mark#(nil) → active#(nil) | mark#(sel(X1, X2)) → mark#(X2) |
active#(from(X)) → cons#(X, from(s(X))) | mark#(first1(X1, X2)) → mark#(X2) |
active#(quote(sel(X, Z))) → mark#(sel1(X, Z)) | mark#(cons1(X1, X2)) → active#(cons1(mark(X1), mark(X2))) |
mark#(0) → active#(0) | mark#(first(X1, X2)) → mark#(X2) |
mark#(fcons(X1, X2)) → mark#(X2) | mark#(s(X)) → active#(s(mark(X))) |
mark#(fcons(X1, X2)) → mark#(X1) | active#(quote(0)) → mark#(01) |
mark#(first(X1, X2)) → active#(first(mark(X1), mark(X2))) | mark#(sel1(X1, X2)) → mark#(X2) |
mark#(cons1(X1, X2)) → mark#(X2) | mark#(s1(X)) → mark#(X) |
active#(sel1(s(X), cons(Y, Z))) → mark#(sel1(X, Z)) | active#(quote1(nil)) → mark#(nil1) |
active#(unquote(01)) → mark#(0) | active#(first(0, Z)) → mark#(nil) |
mark#(sel1(X1, X2)) → mark#(X1) | active#(unquote(s1(X))) → mark#(s(unquote(X))) |
mark#(nil1) → active#(nil1) | active#(fcons(X, Z)) → mark#(cons(X, Z)) |
s#(mark(X)) → s#(X) | s#(active(X)) → s#(X) |
mark#(cons(X1, X2)) → active#(cons(mark(X1), X2)) | active#(unquote1(nil1)) → mark#(nil) |
mark#(fcons(X1, X2)) → active#(fcons(mark(X1), mark(X2))) | active#(quote1(first(X, Z))) → mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) → active#(sel1(mark(X1), mark(X2))) | mark#(01) → active#(01) |
mark#(cons1(X1, X2)) → mark#(X1) | active#(sel1(0, cons(X, Z))) → mark#(quote(X)) |
active#(first1(s(X), cons(Y, Z))) → mark#(cons1(quote(Y), first1(X, Z))) | active#(first(s(X), cons(Y, Z))) → mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) → mark#(X) | mark#(s(X)) → mark#(X) |
mark#(sel(X1, X2)) → mark#(X1) | active#(quote(s(X))) → mark#(s1(quote(X))) |
mark#(unquote1(X)) → active#(unquote1(mark(X))) | active#(sel(s(X), cons(Y, Z))) → sel#(X, Z) |
active#(unquote1(cons1(X, Z))) → mark#(fcons(unquote(X), unquote1(Z))) | mark#(from(X)) → mark#(X) |
active#(quote(s(X))) → quote#(X) | mark#(cons(X1, X2)) → mark#(X1) |
mark#(unquote(X)) → active#(unquote(mark(X))) | active#(first1(s(X), cons(Y, Z))) → cons1#(quote(Y), first1(X, Z)) |
active#(from(X)) → mark#(cons(X, from(s(X)))) | mark#(sel(X1, X2)) → active#(sel(mark(X1), mark(X2))) |
active#(unquote1(cons1(X, Z))) → unquote1#(Z) | mark#(from(X)) → active#(from(mark(X))) |
mark#(s1(X)) → active#(s1(mark(X))) | mark#(first(X1, X2)) → mark#(X1) |
mark#(first1(X1, X2)) → active#(first1(mark(X1), mark(X2))) | mark#(quote1(X)) → active#(quote1(X)) |
active#(quote1(cons(X, Z))) → mark#(cons1(quote(X), quote1(Z))) | active#(quote(s(X))) → s1#(quote(X)) |
active#(first1(0, Z)) → mark#(nil1) | mark#(unquote1(X)) → mark#(X) |
mark#(quote(X)) → active#(quote(X)) | mark#(first1(X1, X2)) → mark#(X1) |
active#(sel(0, cons(X, Z))) → mark#(X) | active#(sel(s(X), cons(Y, Z))) → mark#(sel(X, Z)) |
mark#(nil) → active#(nil) | mark#(sel(X1, X2)) → mark#(X2) |
mark#(first1(X1, X2)) → mark#(X2) | active#(from(X)) → cons#(X, from(s(X))) |
active#(quote(sel(X, Z))) → mark#(sel1(X, Z)) | mark#(cons1(X1, X2)) → active#(cons1(mark(X1), mark(X2))) |
mark#(0) → active#(0) | mark#(first(X1, X2)) → mark#(X2) |
mark#(fcons(X1, X2)) → mark#(X2) | mark#(s(X)) → active#(s(mark(X))) |
mark#(fcons(X1, X2)) → mark#(X1) | active#(quote(0)) → mark#(01) |
mark#(first(X1, X2)) → active#(first(mark(X1), mark(X2))) | mark#(sel1(X1, X2)) → mark#(X2) |
mark#(cons1(X1, X2)) → mark#(X2) | mark#(s1(X)) → mark#(X) |
active#(sel1(s(X), cons(Y, Z))) → mark#(sel1(X, Z)) | active#(quote1(nil)) → mark#(nil1) |
active#(unquote(01)) → mark#(0) | active#(first(0, Z)) → mark#(nil) |
mark#(sel1(X1, X2)) → mark#(X1) | active#(unquote(s1(X))) → mark#(s(unquote(X))) |
mark#(nil1) → active#(nil1) | active#(fcons(X, Z)) → mark#(cons(X, Z)) |
unquote#(mark(X)) → unquote#(X) | unquote#(active(X)) → unquote#(X) |
mark#(cons(X1, X2)) → active#(cons(mark(X1), X2)) | active#(unquote1(nil1)) → mark#(nil) |
mark#(fcons(X1, X2)) → active#(fcons(mark(X1), mark(X2))) | active#(quote1(first(X, Z))) → mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) → active#(sel1(mark(X1), mark(X2))) | mark#(01) → active#(01) |
active#(sel1(0, cons(X, Z))) → mark#(quote(X)) | mark#(cons1(X1, X2)) → mark#(X1) |
active#(fcons(X, Z)) → cons#(X, Z) | active#(first1(s(X), cons(Y, Z))) → mark#(cons1(quote(Y), first1(X, Z))) |
active#(first(s(X), cons(Y, Z))) → mark#(cons(Y, first(X, Z))) | mark#(unquote(X)) → mark#(X) |
mark#(s(X)) → mark#(X) | mark#(sel(X1, X2)) → mark#(X1) |
active#(quote(s(X))) → mark#(s1(quote(X))) | mark#(unquote1(X)) → active#(unquote1(mark(X))) |
active#(unquote1(cons1(X, Z))) → mark#(fcons(unquote(X), unquote1(Z))) | mark#(from(X)) → mark#(X) |
mark#(cons(X1, X2)) → mark#(X1) | mark#(unquote(X)) → active#(unquote(mark(X))) |
active#(from(X)) → mark#(cons(X, from(s(X)))) | mark#(sel(X1, X2)) → active#(sel(mark(X1), mark(X2))) |
active#(unquote1(cons1(X, Z))) → unquote1#(Z) | active#(from(X)) → s#(X) |
mark#(from(X)) → active#(from(mark(X))) | mark#(s1(X)) → active#(s1(mark(X))) |
mark#(first1(X1, X2)) → active#(first1(mark(X1), mark(X2))) | mark#(first(X1, X2)) → mark#(X1) |
mark#(quote1(X)) → active#(quote1(X)) | active#(quote1(cons(X, Z))) → mark#(cons1(quote(X), quote1(Z))) |
active#(first1(0, Z)) → mark#(nil1) | mark#(unquote1(X)) → mark#(X) |
mark#(quote(X)) → active#(quote(X)) | mark#(first1(X1, X2)) → mark#(X1) |
active#(sel(0, cons(X, Z))) → mark#(X) | active#(sel(s(X), cons(Y, Z))) → mark#(sel(X, Z)) |
mark#(nil) → active#(nil) | mark#(sel(X1, X2)) → mark#(X2) |
mark#(first1(X1, X2)) → mark#(X2) | active#(quote(sel(X, Z))) → mark#(sel1(X, Z)) |
mark#(cons1(X1, X2)) → active#(cons1(mark(X1), mark(X2))) | mark#(0) → active#(0) |
mark#(first(X1, X2)) → mark#(X2) | mark#(fcons(X1, X2)) → mark#(X2) |
mark#(s(X)) → active#(s(mark(X))) | mark#(fcons(X1, X2)) → mark#(X1) |
active#(quote(0)) → mark#(01) | mark#(first(X1, X2)) → active#(first(mark(X1), mark(X2))) |
mark#(sel1(X1, X2)) → mark#(X2) | mark#(cons1(X1, X2)) → mark#(X2) |
mark#(s1(X)) → mark#(X) | active#(sel1(s(X), cons(Y, Z))) → mark#(sel1(X, Z)) |
active#(quote1(nil)) → mark#(nil1) | active#(unquote(01)) → mark#(0) |
active#(first(0, Z)) → mark#(nil) | mark#(sel1(X1, X2)) → mark#(X1) |
mark#(nil1) → active#(nil1) | active#(unquote(s1(X))) → mark#(s(unquote(X))) |
active#(fcons(X, Z)) → mark#(cons(X, Z)) |
mark#(cons(X1, X2)) → active#(cons(mark(X1), X2)) | active#(unquote1(nil1)) → mark#(nil) |
mark#(fcons(X1, X2)) → active#(fcons(mark(X1), mark(X2))) | active#(quote1(first(X, Z))) → mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) → active#(sel1(mark(X1), mark(X2))) | mark#(01) → active#(01) |
mark#(cons1(X1, X2)) → mark#(X1) | active#(sel1(0, cons(X, Z))) → mark#(quote(X)) |
active#(first1(s(X), cons(Y, Z))) → mark#(cons1(quote(Y), first1(X, Z))) | active#(first(s(X), cons(Y, Z))) → mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) → mark#(X) | mark#(s(X)) → mark#(X) |
mark#(sel(X1, X2)) → mark#(X1) | mark#(unquote1(X)) → active#(unquote1(mark(X))) |
active#(quote(s(X))) → mark#(s1(quote(X))) | active#(sel(s(X), cons(Y, Z))) → sel#(X, Z) |
active#(unquote1(cons1(X, Z))) → mark#(fcons(unquote(X), unquote1(Z))) | mark#(from(X)) → mark#(X) |
mark#(cons(X1, X2)) → mark#(X1) | mark#(unquote(X)) → active#(unquote(mark(X))) |
mark#(sel(X1, X2)) → active#(sel(mark(X1), mark(X2))) | active#(from(X)) → mark#(cons(X, from(s(X)))) |
active#(unquote1(cons1(X, Z))) → unquote1#(Z) | active#(quote1(cons(X, Z))) → quote#(X) |
mark#(from(X)) → active#(from(mark(X))) | mark#(s1(X)) → active#(s1(mark(X))) |
mark#(first(X1, X2)) → mark#(X1) | mark#(first1(X1, X2)) → active#(first1(mark(X1), mark(X2))) |
mark#(quote1(X)) → active#(quote1(X)) | active#(quote1(cons(X, Z))) → mark#(cons1(quote(X), quote1(Z))) |
active#(quote(s(X))) → s1#(quote(X)) | active#(first1(0, Z)) → mark#(nil1) |
mark#(unquote1(X)) → mark#(X) | mark#(quote(X)) → active#(quote(X)) |
mark#(first1(X1, X2)) → mark#(X1) | active#(sel(0, cons(X, Z))) → mark#(X) |
active#(sel(s(X), cons(Y, Z))) → mark#(sel(X, Z)) | mark#(nil) → active#(nil) |
mark#(sel(X1, X2)) → mark#(X2) | active#(from(X)) → cons#(X, from(s(X))) |
mark#(first1(X1, X2)) → mark#(X2) | active#(quote(sel(X, Z))) → mark#(sel1(X, Z)) |
active#(quote1(first(X, Z))) → first1#(X, Z) | mark#(cons1(X1, X2)) → active#(cons1(mark(X1), mark(X2))) |
mark#(first(X1, X2)) → mark#(X2) | mark#(0) → active#(0) |
mark#(s(X)) → active#(s(mark(X))) | mark#(fcons(X1, X2)) → mark#(X2) |
mark#(fcons(X1, X2)) → mark#(X1) | active#(quote(0)) → mark#(01) |
mark#(first(X1, X2)) → active#(first(mark(X1), mark(X2))) | mark#(sel1(X1, X2)) → mark#(X2) |
mark#(cons1(X1, X2)) → mark#(X2) | mark#(s1(X)) → mark#(X) |
active#(sel1(s(X), cons(Y, Z))) → mark#(sel1(X, Z)) | active#(quote1(nil)) → mark#(nil1) |
active#(unquote(01)) → mark#(0) | active#(first(0, Z)) → mark#(nil) |
mark#(sel1(X1, X2)) → mark#(X1) | mark#(nil1) → active#(nil1) |
active#(unquote(s1(X))) → mark#(s(unquote(X))) | active#(fcons(X, Z)) → mark#(cons(X, Z)) |
mark#(cons(X1, X2)) → active#(cons(mark(X1), X2)) | active#(unquote1(nil1)) → mark#(nil) |
mark#(fcons(X1, X2)) → active#(fcons(mark(X1), mark(X2))) | active#(quote1(first(X, Z))) → mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) → active#(sel1(mark(X1), mark(X2))) | mark#(01) → active#(01) |
mark#(cons1(X1, X2)) → mark#(X1) | active#(sel1(0, cons(X, Z))) → mark#(quote(X)) |
active#(fcons(X, Z)) → cons#(X, Z) | active#(first1(s(X), cons(Y, Z))) → mark#(cons1(quote(Y), first1(X, Z))) |
active#(first(s(X), cons(Y, Z))) → mark#(cons(Y, first(X, Z))) | mark#(unquote(X)) → mark#(X) |
mark#(s(X)) → mark#(X) | mark#(sel(X1, X2)) → mark#(X1) |
active#(quote(s(X))) → mark#(s1(quote(X))) | mark#(unquote1(X)) → active#(unquote1(mark(X))) |
active#(unquote1(cons1(X, Z))) → mark#(fcons(unquote(X), unquote1(Z))) | mark#(from(X)) → mark#(X) |
mark#(cons(X1, X2)) → mark#(X1) | mark#(unquote(X)) → active#(unquote(mark(X))) |
active#(from(X)) → mark#(cons(X, from(s(X)))) | mark#(sel(X1, X2)) → active#(sel(mark(X1), mark(X2))) |
active#(from(X)) → s#(X) | mark#(from(X)) → active#(from(mark(X))) |
mark#(s1(X)) → active#(s1(mark(X))) | mark#(first(X1, X2)) → mark#(X1) |
mark#(first1(X1, X2)) → active#(first1(mark(X1), mark(X2))) | mark#(quote1(X)) → active#(quote1(X)) |
active#(quote1(cons(X, Z))) → mark#(cons1(quote(X), quote1(Z))) | active#(first1(0, Z)) → mark#(nil1) |
mark#(unquote1(X)) → mark#(X) | mark#(first1(X1, X2)) → mark#(X1) |
mark#(quote(X)) → active#(quote(X)) | active#(sel(0, cons(X, Z))) → mark#(X) |
active#(sel(s(X), cons(Y, Z))) → mark#(sel(X, Z)) | mark#(nil) → active#(nil) |
mark#(sel(X1, X2)) → mark#(X2) | mark#(first1(X1, X2)) → mark#(X2) |
active#(quote(sel(X, Z))) → mark#(sel1(X, Z)) | mark#(cons1(X1, X2)) → active#(cons1(mark(X1), mark(X2))) |
mark#(first(X1, X2)) → mark#(X2) | mark#(0) → active#(0) |
mark#(s(X)) → active#(s(mark(X))) | mark#(fcons(X1, X2)) → mark#(X2) |
mark#(fcons(X1, X2)) → mark#(X1) | mark#(first(X1, X2)) → active#(first(mark(X1), mark(X2))) |
active#(quote(0)) → mark#(01) | mark#(sel1(X1, X2)) → mark#(X2) |
mark#(cons1(X1, X2)) → mark#(X2) | mark#(s1(X)) → mark#(X) |
active#(sel1(s(X), cons(Y, Z))) → mark#(sel1(X, Z)) | active#(quote1(nil)) → mark#(nil1) |
active#(unquote(01)) → mark#(0) | active#(first(0, Z)) → mark#(nil) |
mark#(sel1(X1, X2)) → mark#(X1) | mark#(nil1) → active#(nil1) |
active#(unquote(s1(X))) → mark#(s(unquote(X))) | active#(fcons(X, Z)) → mark#(cons(X, Z)) |
sel1#(X1, mark(X2)) → sel1#(X1, X2) | sel1#(mark(X1), X2) → sel1#(X1, X2) |
sel1#(X1, active(X2)) → sel1#(X1, X2) | sel1#(active(X1), X2) → sel1#(X1, X2) |
Problem 2: DependencyGraph
Dependency Pair Problem
Dependency Pairs
mark#(cons(X1, X2)) | → | active#(cons(mark(X1), X2)) | | active#(unquote1(nil1)) | → | mark#(nil) |
mark#(fcons(X1, X2)) | → | active#(fcons(mark(X1), mark(X2))) | | active#(quote1(first(X, Z))) | → | mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) | → | active#(sel1(mark(X1), mark(X2))) | | mark#(01) | → | active#(01) |
active#(sel1(0, cons(X, Z))) | → | mark#(quote(X)) | | mark#(cons1(X1, X2)) | → | mark#(X1) |
active#(first1(s(X), cons(Y, Z))) | → | mark#(cons1(quote(Y), first1(X, Z))) | | active#(first(s(X), cons(Y, Z))) | → | mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) | → | mark#(X) | | mark#(s(X)) | → | mark#(X) |
mark#(sel(X1, X2)) | → | mark#(X1) | | mark#(unquote1(X)) | → | active#(unquote1(mark(X))) |
active#(quote(s(X))) | → | mark#(s1(quote(X))) | | active#(sel(s(X), cons(Y, Z))) | → | sel#(X, Z) |
active#(unquote1(cons1(X, Z))) | → | mark#(fcons(unquote(X), unquote1(Z))) | | mark#(from(X)) | → | mark#(X) |
mark#(cons(X1, X2)) | → | mark#(X1) | | mark#(unquote(X)) | → | active#(unquote(mark(X))) |
mark#(sel(X1, X2)) | → | active#(sel(mark(X1), mark(X2))) | | active#(from(X)) | → | mark#(cons(X, from(s(X)))) |
active#(unquote1(cons1(X, Z))) | → | unquote1#(Z) | | active#(quote1(cons(X, Z))) | → | quote#(X) |
mark#(from(X)) | → | active#(from(mark(X))) | | mark#(s1(X)) | → | active#(s1(mark(X))) |
mark#(first1(X1, X2)) | → | active#(first1(mark(X1), mark(X2))) | | mark#(first(X1, X2)) | → | mark#(X1) |
mark#(quote1(X)) | → | active#(quote1(X)) | | active#(quote1(cons(X, Z))) | → | mark#(cons1(quote(X), quote1(Z))) |
active#(quote(s(X))) | → | s1#(quote(X)) | | active#(first1(0, Z)) | → | mark#(nil1) |
mark#(unquote1(X)) | → | mark#(X) | | mark#(first1(X1, X2)) | → | mark#(X1) |
mark#(quote(X)) | → | active#(quote(X)) | | active#(sel(0, cons(X, Z))) | → | mark#(X) |
active#(sel(s(X), cons(Y, Z))) | → | mark#(sel(X, Z)) | | mark#(nil) | → | active#(nil) |
mark#(sel(X1, X2)) | → | mark#(X2) | | mark#(first1(X1, X2)) | → | mark#(X2) |
active#(from(X)) | → | cons#(X, from(s(X))) | | active#(quote(sel(X, Z))) | → | mark#(sel1(X, Z)) |
mark#(cons1(X1, X2)) | → | active#(cons1(mark(X1), mark(X2))) | | active#(quote1(first(X, Z))) | → | first1#(X, Z) |
mark#(0) | → | active#(0) | | mark#(first(X1, X2)) | → | mark#(X2) |
mark#(fcons(X1, X2)) | → | mark#(X2) | | mark#(s(X)) | → | active#(s(mark(X))) |
mark#(fcons(X1, X2)) | → | mark#(X1) | | active#(quote(0)) | → | mark#(01) |
mark#(first(X1, X2)) | → | active#(first(mark(X1), mark(X2))) | | mark#(sel1(X1, X2)) | → | mark#(X2) |
mark#(cons1(X1, X2)) | → | mark#(X2) | | mark#(s1(X)) | → | mark#(X) |
active#(sel1(s(X), cons(Y, Z))) | → | mark#(sel1(X, Z)) | | active#(quote1(nil)) | → | mark#(nil1) |
active#(unquote(01)) | → | mark#(0) | | active#(first(0, Z)) | → | mark#(nil) |
mark#(sel1(X1, X2)) | → | mark#(X1) | | mark#(nil1) | → | active#(nil1) |
active#(unquote(s1(X))) | → | mark#(s(unquote(X))) | | active#(fcons(X, Z)) | → | mark#(cons(X, Z)) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, first, sel, nil, cons
Strategy
The following SCCs where found
mark#(cons(X1, X2)) → active#(cons(mark(X1), X2)) | active#(unquote1(nil1)) → mark#(nil) |
mark#(fcons(X1, X2)) → active#(fcons(mark(X1), mark(X2))) | active#(quote1(first(X, Z))) → mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) → active#(sel1(mark(X1), mark(X2))) | mark#(01) → active#(01) |
active#(sel1(0, cons(X, Z))) → mark#(quote(X)) | mark#(cons1(X1, X2)) → mark#(X1) |
active#(first1(s(X), cons(Y, Z))) → mark#(cons1(quote(Y), first1(X, Z))) | active#(first(s(X), cons(Y, Z))) → mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) → mark#(X) | mark#(s(X)) → mark#(X) |
mark#(sel(X1, X2)) → mark#(X1) | active#(quote(s(X))) → mark#(s1(quote(X))) |
mark#(unquote1(X)) → active#(unquote1(mark(X))) | active#(unquote1(cons1(X, Z))) → mark#(fcons(unquote(X), unquote1(Z))) |
mark#(from(X)) → mark#(X) | mark#(cons(X1, X2)) → mark#(X1) |
mark#(unquote(X)) → active#(unquote(mark(X))) | mark#(sel(X1, X2)) → active#(sel(mark(X1), mark(X2))) |
active#(from(X)) → mark#(cons(X, from(s(X)))) | mark#(from(X)) → active#(from(mark(X))) |
mark#(s1(X)) → active#(s1(mark(X))) | mark#(first1(X1, X2)) → active#(first1(mark(X1), mark(X2))) |
mark#(first(X1, X2)) → mark#(X1) | mark#(quote1(X)) → active#(quote1(X)) |
active#(quote1(cons(X, Z))) → mark#(cons1(quote(X), quote1(Z))) | active#(first1(0, Z)) → mark#(nil1) |
mark#(unquote1(X)) → mark#(X) | mark#(quote(X)) → active#(quote(X)) |
mark#(first1(X1, X2)) → mark#(X1) | active#(sel(0, cons(X, Z))) → mark#(X) |
active#(sel(s(X), cons(Y, Z))) → mark#(sel(X, Z)) | mark#(nil) → active#(nil) |
mark#(sel(X1, X2)) → mark#(X2) | mark#(first1(X1, X2)) → mark#(X2) |
active#(quote(sel(X, Z))) → mark#(sel1(X, Z)) | mark#(cons1(X1, X2)) → active#(cons1(mark(X1), mark(X2))) |
mark#(0) → active#(0) | mark#(first(X1, X2)) → mark#(X2) |
mark#(fcons(X1, X2)) → mark#(X2) | mark#(s(X)) → active#(s(mark(X))) |
mark#(fcons(X1, X2)) → mark#(X1) | active#(quote(0)) → mark#(01) |
mark#(first(X1, X2)) → active#(first(mark(X1), mark(X2))) | mark#(sel1(X1, X2)) → mark#(X2) |
mark#(cons1(X1, X2)) → mark#(X2) | mark#(s1(X)) → mark#(X) |
active#(sel1(s(X), cons(Y, Z))) → mark#(sel1(X, Z)) | active#(quote1(nil)) → mark#(nil1) |
active#(unquote(01)) → mark#(0) | active#(first(0, Z)) → mark#(nil) |
mark#(sel1(X1, X2)) → mark#(X1) | mark#(nil1) → active#(nil1) |
active#(unquote(s1(X))) → mark#(s(unquote(X))) | active#(fcons(X, Z)) → mark#(cons(X, Z)) |
Problem 3: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
cons#(X1, active(X2)) | → | cons#(X1, X2) | | cons#(mark(X1), X2) | → | cons#(X1, X2) |
cons#(active(X1), X2) | → | cons#(X1, X2) | | cons#(X1, mark(X2)) | → | cons#(X1, X2) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, first, sel, nil, cons
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
cons#(mark(X1), X2) | → | cons#(X1, X2) | | cons#(active(X1), X2) | → | cons#(X1, X2) |
Problem 4: DependencyGraph
Dependency Pair Problem
Dependency Pairs
mark#(cons(X1, X2)) | → | active#(cons(mark(X1), X2)) | | active#(unquote1(nil1)) | → | mark#(nil) |
mark#(fcons(X1, X2)) | → | active#(fcons(mark(X1), mark(X2))) | | active#(quote1(first(X, Z))) | → | mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) | → | active#(sel1(mark(X1), mark(X2))) | | mark#(01) | → | active#(01) |
active#(sel1(0, cons(X, Z))) | → | mark#(quote(X)) | | mark#(cons1(X1, X2)) | → | mark#(X1) |
active#(fcons(X, Z)) | → | cons#(X, Z) | | active#(first1(s(X), cons(Y, Z))) | → | mark#(cons1(quote(Y), first1(X, Z))) |
active#(first(s(X), cons(Y, Z))) | → | mark#(cons(Y, first(X, Z))) | | mark#(unquote(X)) | → | mark#(X) |
mark#(s(X)) | → | mark#(X) | | mark#(sel(X1, X2)) | → | mark#(X1) |
active#(quote(s(X))) | → | mark#(s1(quote(X))) | | mark#(unquote1(X)) | → | active#(unquote1(mark(X))) |
active#(unquote1(cons1(X, Z))) | → | mark#(fcons(unquote(X), unquote1(Z))) | | mark#(from(X)) | → | mark#(X) |
mark#(cons(X1, X2)) | → | mark#(X1) | | mark#(unquote(X)) | → | active#(unquote(mark(X))) |
active#(from(X)) | → | mark#(cons(X, from(s(X)))) | | mark#(sel(X1, X2)) | → | active#(sel(mark(X1), mark(X2))) |
active#(quote1(cons(X, Z))) | → | quote#(X) | | active#(from(X)) | → | s#(X) |
mark#(from(X)) | → | active#(from(mark(X))) | | mark#(s1(X)) | → | active#(s1(mark(X))) |
mark#(first(X1, X2)) | → | mark#(X1) | | mark#(first1(X1, X2)) | → | active#(first1(mark(X1), mark(X2))) |
mark#(quote1(X)) | → | active#(quote1(X)) | | active#(quote1(cons(X, Z))) | → | mark#(cons1(quote(X), quote1(Z))) |
active#(quote(s(X))) | → | s1#(quote(X)) | | active#(first1(0, Z)) | → | mark#(nil1) |
mark#(unquote1(X)) | → | mark#(X) | | mark#(first1(X1, X2)) | → | mark#(X1) |
mark#(quote(X)) | → | active#(quote(X)) | | active#(sel(0, cons(X, Z))) | → | mark#(X) |
active#(sel(s(X), cons(Y, Z))) | → | mark#(sel(X, Z)) | | mark#(nil) | → | active#(nil) |
mark#(sel(X1, X2)) | → | mark#(X2) | | mark#(first1(X1, X2)) | → | mark#(X2) |
active#(from(X)) | → | cons#(X, from(s(X))) | | active#(quote(sel(X, Z))) | → | mark#(sel1(X, Z)) |
mark#(cons1(X1, X2)) | → | active#(cons1(mark(X1), mark(X2))) | | mark#(first(X1, X2)) | → | mark#(X2) |
mark#(0) | → | active#(0) | | mark#(s(X)) | → | active#(s(mark(X))) |
mark#(fcons(X1, X2)) | → | mark#(X2) | | mark#(fcons(X1, X2)) | → | mark#(X1) |
active#(quote(0)) | → | mark#(01) | | mark#(first(X1, X2)) | → | active#(first(mark(X1), mark(X2))) |
mark#(sel1(X1, X2)) | → | mark#(X2) | | mark#(cons1(X1, X2)) | → | mark#(X2) |
mark#(s1(X)) | → | mark#(X) | | active#(sel1(s(X), cons(Y, Z))) | → | mark#(sel1(X, Z)) |
active#(quote1(nil)) | → | mark#(nil1) | | active#(unquote(01)) | → | mark#(0) |
active#(first(0, Z)) | → | mark#(nil) | | mark#(sel1(X1, X2)) | → | mark#(X1) |
mark#(nil1) | → | active#(nil1) | | active#(unquote(s1(X))) | → | mark#(s(unquote(X))) |
active#(fcons(X, Z)) | → | mark#(cons(X, Z)) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, first, sel, nil, cons
Strategy
The following SCCs where found
mark#(cons(X1, X2)) → active#(cons(mark(X1), X2)) | active#(unquote1(nil1)) → mark#(nil) |
mark#(fcons(X1, X2)) → active#(fcons(mark(X1), mark(X2))) | active#(quote1(first(X, Z))) → mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) → active#(sel1(mark(X1), mark(X2))) | mark#(01) → active#(01) |
active#(sel1(0, cons(X, Z))) → mark#(quote(X)) | mark#(cons1(X1, X2)) → mark#(X1) |
active#(first1(s(X), cons(Y, Z))) → mark#(cons1(quote(Y), first1(X, Z))) | active#(first(s(X), cons(Y, Z))) → mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) → mark#(X) | mark#(s(X)) → mark#(X) |
mark#(sel(X1, X2)) → mark#(X1) | active#(quote(s(X))) → mark#(s1(quote(X))) |
mark#(unquote1(X)) → active#(unquote1(mark(X))) | active#(unquote1(cons1(X, Z))) → mark#(fcons(unquote(X), unquote1(Z))) |
mark#(from(X)) → mark#(X) | mark#(cons(X1, X2)) → mark#(X1) |
mark#(unquote(X)) → active#(unquote(mark(X))) | mark#(sel(X1, X2)) → active#(sel(mark(X1), mark(X2))) |
active#(from(X)) → mark#(cons(X, from(s(X)))) | mark#(from(X)) → active#(from(mark(X))) |
mark#(s1(X)) → active#(s1(mark(X))) | mark#(first1(X1, X2)) → active#(first1(mark(X1), mark(X2))) |
mark#(first(X1, X2)) → mark#(X1) | mark#(quote1(X)) → active#(quote1(X)) |
active#(quote1(cons(X, Z))) → mark#(cons1(quote(X), quote1(Z))) | active#(first1(0, Z)) → mark#(nil1) |
mark#(unquote1(X)) → mark#(X) | mark#(quote(X)) → active#(quote(X)) |
mark#(first1(X1, X2)) → mark#(X1) | active#(sel(0, cons(X, Z))) → mark#(X) |
active#(sel(s(X), cons(Y, Z))) → mark#(sel(X, Z)) | mark#(nil) → active#(nil) |
mark#(sel(X1, X2)) → mark#(X2) | mark#(first1(X1, X2)) → mark#(X2) |
active#(quote(sel(X, Z))) → mark#(sel1(X, Z)) | mark#(cons1(X1, X2)) → active#(cons1(mark(X1), mark(X2))) |
mark#(0) → active#(0) | mark#(first(X1, X2)) → mark#(X2) |
mark#(fcons(X1, X2)) → mark#(X2) | mark#(s(X)) → active#(s(mark(X))) |
mark#(fcons(X1, X2)) → mark#(X1) | active#(quote(0)) → mark#(01) |
mark#(first(X1, X2)) → active#(first(mark(X1), mark(X2))) | mark#(sel1(X1, X2)) → mark#(X2) |
mark#(cons1(X1, X2)) → mark#(X2) | mark#(s1(X)) → mark#(X) |
active#(sel1(s(X), cons(Y, Z))) → mark#(sel1(X, Z)) | active#(quote1(nil)) → mark#(nil1) |
active#(unquote(01)) → mark#(0) | active#(first(0, Z)) → mark#(nil) |
mark#(sel1(X1, X2)) → mark#(X1) | mark#(nil1) → active#(nil1) |
active#(unquote(s1(X))) → mark#(s(unquote(X))) | active#(fcons(X, Z)) → mark#(cons(X, Z)) |
Problem 5: DependencyGraph
Dependency Pair Problem
Dependency Pairs
mark#(cons(X1, X2)) | → | active#(cons(mark(X1), X2)) | | active#(unquote1(nil1)) | → | mark#(nil) |
mark#(fcons(X1, X2)) | → | active#(fcons(mark(X1), mark(X2))) | | active#(quote1(first(X, Z))) | → | mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) | → | active#(sel1(mark(X1), mark(X2))) | | mark#(01) | → | active#(01) |
active#(sel1(0, cons(X, Z))) | → | mark#(quote(X)) | | mark#(cons1(X1, X2)) | → | mark#(X1) |
active#(first1(s(X), cons(Y, Z))) | → | mark#(cons1(quote(Y), first1(X, Z))) | | active#(first(s(X), cons(Y, Z))) | → | mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) | → | mark#(X) | | mark#(s(X)) | → | mark#(X) |
mark#(sel(X1, X2)) | → | mark#(X1) | | active#(quote(s(X))) | → | mark#(s1(quote(X))) |
mark#(unquote1(X)) | → | active#(unquote1(mark(X))) | | active#(unquote1(cons1(X, Z))) | → | mark#(fcons(unquote(X), unquote1(Z))) |
mark#(from(X)) | → | mark#(X) | | mark#(cons(X1, X2)) | → | mark#(X1) |
mark#(unquote(X)) | → | active#(unquote(mark(X))) | | mark#(sel(X1, X2)) | → | active#(sel(mark(X1), mark(X2))) |
active#(from(X)) | → | mark#(cons(X, from(s(X)))) | | active#(quote1(cons(X, Z))) | → | quote#(X) |
active#(from(X)) | → | s#(X) | | mark#(from(X)) | → | active#(from(mark(X))) |
mark#(s1(X)) | → | active#(s1(mark(X))) | | mark#(first(X1, X2)) | → | mark#(X1) |
mark#(first1(X1, X2)) | → | active#(first1(mark(X1), mark(X2))) | | mark#(quote1(X)) | → | active#(quote1(X)) |
active#(quote1(cons(X, Z))) | → | mark#(cons1(quote(X), quote1(Z))) | | active#(quote(s(X))) | → | s1#(quote(X)) |
active#(first1(0, Z)) | → | mark#(nil1) | | mark#(unquote1(X)) | → | mark#(X) |
mark#(first1(X1, X2)) | → | mark#(X1) | | mark#(quote(X)) | → | active#(quote(X)) |
active#(sel(0, cons(X, Z))) | → | mark#(X) | | active#(sel(s(X), cons(Y, Z))) | → | mark#(sel(X, Z)) |
mark#(nil) | → | active#(nil) | | mark#(sel(X1, X2)) | → | mark#(X2) |
mark#(first1(X1, X2)) | → | mark#(X2) | | active#(quote(sel(X, Z))) | → | mark#(sel1(X, Z)) |
mark#(cons1(X1, X2)) | → | active#(cons1(mark(X1), mark(X2))) | | mark#(0) | → | active#(0) |
mark#(first(X1, X2)) | → | mark#(X2) | | mark#(s(X)) | → | active#(s(mark(X))) |
mark#(fcons(X1, X2)) | → | mark#(X2) | | mark#(fcons(X1, X2)) | → | mark#(X1) |
active#(quote(0)) | → | mark#(01) | | mark#(first(X1, X2)) | → | active#(first(mark(X1), mark(X2))) |
mark#(sel1(X1, X2)) | → | mark#(X2) | | mark#(cons1(X1, X2)) | → | mark#(X2) |
mark#(s1(X)) | → | mark#(X) | | active#(sel1(s(X), cons(Y, Z))) | → | mark#(sel1(X, Z)) |
active#(quote1(nil)) | → | mark#(nil1) | | active#(unquote(01)) | → | mark#(0) |
active#(first(0, Z)) | → | mark#(nil) | | mark#(sel1(X1, X2)) | → | mark#(X1) |
active#(unquote(s1(X))) | → | mark#(s(unquote(X))) | | mark#(nil1) | → | active#(nil1) |
active#(fcons(X, Z)) | → | mark#(cons(X, Z)) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, first, sel, nil, cons
Strategy
The following SCCs where found
mark#(cons(X1, X2)) → active#(cons(mark(X1), X2)) | active#(unquote1(nil1)) → mark#(nil) |
mark#(fcons(X1, X2)) → active#(fcons(mark(X1), mark(X2))) | active#(quote1(first(X, Z))) → mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) → active#(sel1(mark(X1), mark(X2))) | mark#(01) → active#(01) |
active#(sel1(0, cons(X, Z))) → mark#(quote(X)) | mark#(cons1(X1, X2)) → mark#(X1) |
active#(first1(s(X), cons(Y, Z))) → mark#(cons1(quote(Y), first1(X, Z))) | active#(first(s(X), cons(Y, Z))) → mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) → mark#(X) | mark#(s(X)) → mark#(X) |
mark#(sel(X1, X2)) → mark#(X1) | active#(quote(s(X))) → mark#(s1(quote(X))) |
mark#(unquote1(X)) → active#(unquote1(mark(X))) | active#(unquote1(cons1(X, Z))) → mark#(fcons(unquote(X), unquote1(Z))) |
mark#(from(X)) → mark#(X) | mark#(cons(X1, X2)) → mark#(X1) |
mark#(unquote(X)) → active#(unquote(mark(X))) | mark#(sel(X1, X2)) → active#(sel(mark(X1), mark(X2))) |
active#(from(X)) → mark#(cons(X, from(s(X)))) | mark#(from(X)) → active#(from(mark(X))) |
mark#(s1(X)) → active#(s1(mark(X))) | mark#(first1(X1, X2)) → active#(first1(mark(X1), mark(X2))) |
mark#(first(X1, X2)) → mark#(X1) | mark#(quote1(X)) → active#(quote1(X)) |
active#(quote1(cons(X, Z))) → mark#(cons1(quote(X), quote1(Z))) | active#(first1(0, Z)) → mark#(nil1) |
mark#(unquote1(X)) → mark#(X) | mark#(quote(X)) → active#(quote(X)) |
mark#(first1(X1, X2)) → mark#(X1) | active#(sel(0, cons(X, Z))) → mark#(X) |
active#(sel(s(X), cons(Y, Z))) → mark#(sel(X, Z)) | mark#(nil) → active#(nil) |
mark#(sel(X1, X2)) → mark#(X2) | mark#(first1(X1, X2)) → mark#(X2) |
active#(quote(sel(X, Z))) → mark#(sel1(X, Z)) | mark#(cons1(X1, X2)) → active#(cons1(mark(X1), mark(X2))) |
mark#(0) → active#(0) | mark#(first(X1, X2)) → mark#(X2) |
mark#(fcons(X1, X2)) → mark#(X2) | mark#(s(X)) → active#(s(mark(X))) |
mark#(fcons(X1, X2)) → mark#(X1) | active#(quote(0)) → mark#(01) |
mark#(first(X1, X2)) → active#(first(mark(X1), mark(X2))) | mark#(sel1(X1, X2)) → mark#(X2) |
mark#(cons1(X1, X2)) → mark#(X2) | mark#(s1(X)) → mark#(X) |
active#(sel1(s(X), cons(Y, Z))) → mark#(sel1(X, Z)) | active#(quote1(nil)) → mark#(nil1) |
active#(unquote(01)) → mark#(0) | active#(first(0, Z)) → mark#(nil) |
mark#(sel1(X1, X2)) → mark#(X1) | mark#(nil1) → active#(nil1) |
active#(unquote(s1(X))) → mark#(s(unquote(X))) | active#(fcons(X, Z)) → mark#(cons(X, Z)) |
Problem 6: DependencyGraph
Dependency Pair Problem
Dependency Pairs
mark#(cons(X1, X2)) | → | active#(cons(mark(X1), X2)) | | active#(unquote1(nil1)) | → | mark#(nil) |
mark#(fcons(X1, X2)) | → | active#(fcons(mark(X1), mark(X2))) | | active#(quote1(first(X, Z))) | → | mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) | → | active#(sel1(mark(X1), mark(X2))) | | mark#(01) | → | active#(01) |
mark#(cons1(X1, X2)) | → | mark#(X1) | | active#(sel1(0, cons(X, Z))) | → | mark#(quote(X)) |
active#(first1(s(X), cons(Y, Z))) | → | mark#(cons1(quote(Y), first1(X, Z))) | | active#(first(s(X), cons(Y, Z))) | → | mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) | → | mark#(X) | | mark#(s(X)) | → | mark#(X) |
mark#(sel(X1, X2)) | → | mark#(X1) | | mark#(unquote1(X)) | → | active#(unquote1(mark(X))) |
active#(quote(s(X))) | → | mark#(s1(quote(X))) | | active#(sel(s(X), cons(Y, Z))) | → | sel#(X, Z) |
active#(unquote1(cons1(X, Z))) | → | mark#(fcons(unquote(X), unquote1(Z))) | | mark#(from(X)) | → | mark#(X) |
active#(quote(s(X))) | → | quote#(X) | | mark#(cons(X1, X2)) | → | mark#(X1) |
mark#(unquote(X)) | → | active#(unquote(mark(X))) | | active#(first1(s(X), cons(Y, Z))) | → | cons1#(quote(Y), first1(X, Z)) |
active#(from(X)) | → | mark#(cons(X, from(s(X)))) | | mark#(sel(X1, X2)) | → | active#(sel(mark(X1), mark(X2))) |
active#(unquote1(cons1(X, Z))) | → | unquote1#(Z) | | active#(quote1(cons(X, Z))) | → | quote#(X) |
mark#(from(X)) | → | active#(from(mark(X))) | | mark#(s1(X)) | → | active#(s1(mark(X))) |
mark#(first1(X1, X2)) | → | active#(first1(mark(X1), mark(X2))) | | mark#(first(X1, X2)) | → | mark#(X1) |
mark#(quote1(X)) | → | active#(quote1(X)) | | active#(quote1(cons(X, Z))) | → | mark#(cons1(quote(X), quote1(Z))) |
active#(quote(s(X))) | → | s1#(quote(X)) | | active#(first1(0, Z)) | → | mark#(nil1) |
mark#(unquote1(X)) | → | mark#(X) | | mark#(first1(X1, X2)) | → | mark#(X1) |
mark#(quote(X)) | → | active#(quote(X)) | | active#(sel(0, cons(X, Z))) | → | mark#(X) |
active#(sel(s(X), cons(Y, Z))) | → | mark#(sel(X, Z)) | | mark#(nil) | → | active#(nil) |
mark#(sel(X1, X2)) | → | mark#(X2) | | mark#(first1(X1, X2)) | → | mark#(X2) |
active#(quote(sel(X, Z))) | → | mark#(sel1(X, Z)) | | mark#(cons1(X1, X2)) | → | active#(cons1(mark(X1), mark(X2))) |
mark#(first(X1, X2)) | → | mark#(X2) | | mark#(0) | → | active#(0) |
mark#(s(X)) | → | active#(s(mark(X))) | | mark#(fcons(X1, X2)) | → | mark#(X2) |
mark#(fcons(X1, X2)) | → | mark#(X1) | | active#(quote(0)) | → | mark#(01) |
mark#(first(X1, X2)) | → | active#(first(mark(X1), mark(X2))) | | mark#(sel1(X1, X2)) | → | mark#(X2) |
mark#(cons1(X1, X2)) | → | mark#(X2) | | mark#(s1(X)) | → | mark#(X) |
active#(sel1(s(X), cons(Y, Z))) | → | mark#(sel1(X, Z)) | | active#(quote1(nil)) | → | mark#(nil1) |
active#(unquote(01)) | → | mark#(0) | | active#(first(0, Z)) | → | mark#(nil) |
mark#(sel1(X1, X2)) | → | mark#(X1) | | active#(unquote(s1(X))) | → | mark#(s(unquote(X))) |
mark#(nil1) | → | active#(nil1) | | active#(fcons(X, Z)) | → | mark#(cons(X, Z)) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, first, sel, nil, cons
Strategy
The following SCCs where found
mark#(cons(X1, X2)) → active#(cons(mark(X1), X2)) | active#(unquote1(nil1)) → mark#(nil) |
mark#(fcons(X1, X2)) → active#(fcons(mark(X1), mark(X2))) | active#(quote1(first(X, Z))) → mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) → active#(sel1(mark(X1), mark(X2))) | mark#(01) → active#(01) |
active#(sel1(0, cons(X, Z))) → mark#(quote(X)) | mark#(cons1(X1, X2)) → mark#(X1) |
active#(first1(s(X), cons(Y, Z))) → mark#(cons1(quote(Y), first1(X, Z))) | active#(first(s(X), cons(Y, Z))) → mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) → mark#(X) | mark#(s(X)) → mark#(X) |
mark#(sel(X1, X2)) → mark#(X1) | active#(quote(s(X))) → mark#(s1(quote(X))) |
mark#(unquote1(X)) → active#(unquote1(mark(X))) | active#(unquote1(cons1(X, Z))) → mark#(fcons(unquote(X), unquote1(Z))) |
mark#(from(X)) → mark#(X) | mark#(cons(X1, X2)) → mark#(X1) |
mark#(unquote(X)) → active#(unquote(mark(X))) | mark#(sel(X1, X2)) → active#(sel(mark(X1), mark(X2))) |
active#(from(X)) → mark#(cons(X, from(s(X)))) | mark#(from(X)) → active#(from(mark(X))) |
mark#(s1(X)) → active#(s1(mark(X))) | mark#(first1(X1, X2)) → active#(first1(mark(X1), mark(X2))) |
mark#(first(X1, X2)) → mark#(X1) | mark#(quote1(X)) → active#(quote1(X)) |
active#(quote1(cons(X, Z))) → mark#(cons1(quote(X), quote1(Z))) | active#(first1(0, Z)) → mark#(nil1) |
mark#(unquote1(X)) → mark#(X) | mark#(quote(X)) → active#(quote(X)) |
mark#(first1(X1, X2)) → mark#(X1) | active#(sel(0, cons(X, Z))) → mark#(X) |
active#(sel(s(X), cons(Y, Z))) → mark#(sel(X, Z)) | mark#(nil) → active#(nil) |
mark#(sel(X1, X2)) → mark#(X2) | mark#(first1(X1, X2)) → mark#(X2) |
active#(quote(sel(X, Z))) → mark#(sel1(X, Z)) | mark#(cons1(X1, X2)) → active#(cons1(mark(X1), mark(X2))) |
mark#(0) → active#(0) | mark#(first(X1, X2)) → mark#(X2) |
mark#(fcons(X1, X2)) → mark#(X2) | mark#(s(X)) → active#(s(mark(X))) |
mark#(fcons(X1, X2)) → mark#(X1) | active#(quote(0)) → mark#(01) |
mark#(first(X1, X2)) → active#(first(mark(X1), mark(X2))) | mark#(sel1(X1, X2)) → mark#(X2) |
mark#(cons1(X1, X2)) → mark#(X2) | mark#(s1(X)) → mark#(X) |
active#(sel1(s(X), cons(Y, Z))) → mark#(sel1(X, Z)) | active#(quote1(nil)) → mark#(nil1) |
active#(unquote(01)) → mark#(0) | active#(first(0, Z)) → mark#(nil) |
mark#(sel1(X1, X2)) → mark#(X1) | mark#(nil1) → active#(nil1) |
active#(unquote(s1(X))) → mark#(s(unquote(X))) | active#(fcons(X, Z)) → mark#(cons(X, Z)) |
Problem 7: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
sel1#(X1, mark(X2)) | → | sel1#(X1, X2) | | sel1#(mark(X1), X2) | → | sel1#(X1, X2) |
sel1#(X1, active(X2)) | → | sel1#(X1, X2) | | sel1#(active(X1), X2) | → | sel1#(X1, X2) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, first, sel, nil, cons
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
sel1#(mark(X1), X2) | → | sel1#(X1, X2) | | sel1#(active(X1), X2) | → | sel1#(X1, X2) |
Problem 8: DependencyGraph
Dependency Pair Problem
Dependency Pairs
mark#(cons1(X1, X2)) | → | cons1#(mark(X1), mark(X2)) | | mark#(cons(X1, X2)) | → | active#(cons(mark(X1), X2)) |
active#(unquote1(nil1)) | → | mark#(nil) | | mark#(fcons(X1, X2)) | → | active#(fcons(mark(X1), mark(X2))) |
active#(quote1(first(X, Z))) | → | mark#(first1(X, Z)) | | mark#(sel1(X1, X2)) | → | active#(sel1(mark(X1), mark(X2))) |
mark#(01) | → | active#(01) | | mark#(cons1(X1, X2)) | → | mark#(X1) |
active#(sel1(0, cons(X, Z))) | → | mark#(quote(X)) | | active#(first1(s(X), cons(Y, Z))) | → | mark#(cons1(quote(Y), first1(X, Z))) |
active#(first(s(X), cons(Y, Z))) | → | mark#(cons(Y, first(X, Z))) | | mark#(unquote(X)) | → | mark#(X) |
mark#(s(X)) | → | mark#(X) | | mark#(sel(X1, X2)) | → | mark#(X1) |
active#(quote(s(X))) | → | mark#(s1(quote(X))) | | mark#(unquote1(X)) | → | active#(unquote1(mark(X))) |
active#(unquote1(cons1(X, Z))) | → | mark#(fcons(unquote(X), unquote1(Z))) | | mark#(from(X)) | → | mark#(X) |
mark#(cons(X1, X2)) | → | mark#(X1) | | mark#(unquote(X)) | → | active#(unquote(mark(X))) |
active#(from(X)) | → | mark#(cons(X, from(s(X)))) | | mark#(sel(X1, X2)) | → | active#(sel(mark(X1), mark(X2))) |
active#(quote1(cons(X, Z))) | → | quote#(X) | | mark#(from(X)) | → | active#(from(mark(X))) |
mark#(s1(X)) | → | active#(s1(mark(X))) | | mark#(first(X1, X2)) | → | mark#(X1) |
mark#(first1(X1, X2)) | → | active#(first1(mark(X1), mark(X2))) | | mark#(quote1(X)) | → | active#(quote1(X)) |
active#(quote1(cons(X, Z))) | → | mark#(cons1(quote(X), quote1(Z))) | | active#(quote(s(X))) | → | s1#(quote(X)) |
active#(first1(0, Z)) | → | mark#(nil1) | | mark#(unquote1(X)) | → | mark#(X) |
mark#(quote(X)) | → | active#(quote(X)) | | mark#(first1(X1, X2)) | → | mark#(X1) |
active#(sel(0, cons(X, Z))) | → | mark#(X) | | active#(sel(s(X), cons(Y, Z))) | → | mark#(sel(X, Z)) |
mark#(nil) | → | active#(nil) | | mark#(sel(X1, X2)) | → | mark#(X2) |
mark#(first1(X1, X2)) | → | mark#(X2) | | active#(quote(sel(X, Z))) | → | mark#(sel1(X, Z)) |
mark#(cons1(X1, X2)) | → | active#(cons1(mark(X1), mark(X2))) | | mark#(0) | → | active#(0) |
mark#(first(X1, X2)) | → | mark#(X2) | | mark#(fcons(X1, X2)) | → | mark#(X2) |
mark#(s(X)) | → | active#(s(mark(X))) | | mark#(fcons(X1, X2)) | → | mark#(X1) |
mark#(first(X1, X2)) | → | active#(first(mark(X1), mark(X2))) | | active#(quote(0)) | → | mark#(01) |
mark#(sel1(X1, X2)) | → | mark#(X2) | | mark#(cons1(X1, X2)) | → | mark#(X2) |
mark#(s1(X)) | → | mark#(X) | | active#(sel1(s(X), cons(Y, Z))) | → | mark#(sel1(X, Z)) |
active#(quote1(nil)) | → | mark#(nil1) | | active#(unquote(01)) | → | mark#(0) |
active#(first(0, Z)) | → | mark#(nil) | | mark#(sel1(X1, X2)) | → | mark#(X1) |
mark#(nil1) | → | active#(nil1) | | active#(unquote(s1(X))) | → | mark#(s(unquote(X))) |
active#(fcons(X, Z)) | → | mark#(cons(X, Z)) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, first, sel, nil, cons
Strategy
The following SCCs where found
mark#(cons(X1, X2)) → active#(cons(mark(X1), X2)) | active#(unquote1(nil1)) → mark#(nil) |
mark#(fcons(X1, X2)) → active#(fcons(mark(X1), mark(X2))) | active#(quote1(first(X, Z))) → mark#(first1(X, Z)) |
mark#(sel1(X1, X2)) → active#(sel1(mark(X1), mark(X2))) | mark#(01) → active#(01) |
active#(sel1(0, cons(X, Z))) → mark#(quote(X)) | mark#(cons1(X1, X2)) → mark#(X1) |
active#(first1(s(X), cons(Y, Z))) → mark#(cons1(quote(Y), first1(X, Z))) | active#(first(s(X), cons(Y, Z))) → mark#(cons(Y, first(X, Z))) |
mark#(unquote(X)) → mark#(X) | mark#(s(X)) → mark#(X) |
mark#(sel(X1, X2)) → mark#(X1) | active#(quote(s(X))) → mark#(s1(quote(X))) |
mark#(unquote1(X)) → active#(unquote1(mark(X))) | active#(unquote1(cons1(X, Z))) → mark#(fcons(unquote(X), unquote1(Z))) |
mark#(from(X)) → mark#(X) | mark#(cons(X1, X2)) → mark#(X1) |
mark#(unquote(X)) → active#(unquote(mark(X))) | mark#(sel(X1, X2)) → active#(sel(mark(X1), mark(X2))) |
active#(from(X)) → mark#(cons(X, from(s(X)))) | mark#(from(X)) → active#(from(mark(X))) |
mark#(s1(X)) → active#(s1(mark(X))) | mark#(first1(X1, X2)) → active#(first1(mark(X1), mark(X2))) |
mark#(first(X1, X2)) → mark#(X1) | mark#(quote1(X)) → active#(quote1(X)) |
active#(quote1(cons(X, Z))) → mark#(cons1(quote(X), quote1(Z))) | active#(first1(0, Z)) → mark#(nil1) |
mark#(unquote1(X)) → mark#(X) | mark#(quote(X)) → active#(quote(X)) |
mark#(first1(X1, X2)) → mark#(X1) | active#(sel(0, cons(X, Z))) → mark#(X) |
active#(sel(s(X), cons(Y, Z))) → mark#(sel(X, Z)) | mark#(nil) → active#(nil) |
mark#(sel(X1, X2)) → mark#(X2) | mark#(first1(X1, X2)) → mark#(X2) |
active#(quote(sel(X, Z))) → mark#(sel1(X, Z)) | mark#(cons1(X1, X2)) → active#(cons1(mark(X1), mark(X2))) |
mark#(0) → active#(0) | mark#(first(X1, X2)) → mark#(X2) |
mark#(fcons(X1, X2)) → mark#(X2) | mark#(s(X)) → active#(s(mark(X))) |
mark#(fcons(X1, X2)) → mark#(X1) | active#(quote(0)) → mark#(01) |
mark#(first(X1, X2)) → active#(first(mark(X1), mark(X2))) | mark#(sel1(X1, X2)) → mark#(X2) |
mark#(cons1(X1, X2)) → mark#(X2) | mark#(s1(X)) → mark#(X) |
active#(sel1(s(X), cons(Y, Z))) → mark#(sel1(X, Z)) | active#(quote1(nil)) → mark#(nil1) |
active#(unquote(01)) → mark#(0) | active#(first(0, Z)) → mark#(nil) |
mark#(sel1(X1, X2)) → mark#(X1) | mark#(nil1) → active#(nil1) |
active#(unquote(s1(X))) → mark#(s(unquote(X))) | active#(fcons(X, Z)) → mark#(cons(X, Z)) |
Problem 9: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
unquote1#(mark(X)) | → | unquote1#(X) | | unquote1#(active(X)) | → | unquote1#(X) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, first, sel, nil, cons
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
unquote1#(mark(X)) | → | unquote1#(X) | | unquote1#(active(X)) | → | unquote1#(X) |
Problem 11: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
fcons#(active(X1), X2) | → | fcons#(X1, X2) | | fcons#(X1, mark(X2)) | → | fcons#(X1, X2) |
fcons#(X1, active(X2)) | → | fcons#(X1, X2) | | fcons#(mark(X1), X2) | → | fcons#(X1, X2) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, first, sel, nil, cons
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
fcons#(active(X1), X2) | → | fcons#(X1, X2) | | fcons#(mark(X1), X2) | → | fcons#(X1, X2) |
Problem 13: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
quote#(mark(X)) | → | quote#(X) | | quote#(active(X)) | → | quote#(X) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, first, sel, nil, cons
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
quote#(mark(X)) | → | quote#(X) | | quote#(active(X)) | → | quote#(X) |
Problem 14: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
unquote#(mark(X)) | → | unquote#(X) | | unquote#(active(X)) | → | unquote#(X) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, first, sel, nil, cons
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
unquote#(mark(X)) | → | unquote#(X) | | unquote#(active(X)) | → | unquote#(X) |
Problem 21: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
sel#(active(X1), X2) | → | sel#(X1, X2) | | sel#(mark(X1), X2) | → | sel#(X1, X2) |
sel#(X1, active(X2)) | → | sel#(X1, X2) | | sel#(X1, mark(X2)) | → | sel#(X1, X2) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, first, sel, nil, cons
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
sel#(mark(X1), X2) | → | sel#(X1, X2) | | sel#(active(X1), X2) | → | sel#(X1, X2) |
Problem 24: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
first#(active(X1), X2) | → | first#(X1, X2) | | first#(mark(X1), X2) | → | first#(X1, X2) |
first#(X1, active(X2)) | → | first#(X1, X2) | | first#(X1, mark(X2)) | → | first#(X1, X2) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, first, sel, nil, cons
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
first#(active(X1), X2) | → | first#(X1, X2) | | first#(mark(X1), X2) | → | first#(X1, X2) |
Problem 29: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
quote1#(active(X)) | → | quote1#(X) | | quote1#(mark(X)) | → | quote1#(X) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, first, sel, nil, cons
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
quote1#(active(X)) | → | quote1#(X) | | quote1#(mark(X)) | → | quote1#(X) |
Problem 30: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
s#(mark(X)) | → | s#(X) | | s#(active(X)) | → | s#(X) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, first, sel, nil, cons
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
s#(mark(X)) | → | s#(X) | | s#(active(X)) | → | s#(X) |
Problem 31: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
cons1#(X1, active(X2)) | → | cons1#(X1, X2) | | cons1#(mark(X1), X2) | → | cons1#(X1, X2) |
cons1#(X1, mark(X2)) | → | cons1#(X1, X2) | | cons1#(active(X1), X2) | → | cons1#(X1, X2) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, first, sel, nil, cons
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
cons1#(mark(X1), X2) | → | cons1#(X1, X2) | | cons1#(active(X1), X2) | → | cons1#(X1, X2) |
Problem 33: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
from#(active(X)) | → | from#(X) | | from#(mark(X)) | → | from#(X) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, first, sel, nil, cons
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
from#(active(X)) | → | from#(X) | | from#(mark(X)) | → | from#(X) |
Problem 35: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
s1#(active(X)) | → | s1#(X) | | s1#(mark(X)) | → | s1#(X) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, first, sel, nil, cons
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
s1#(active(X)) | → | s1#(X) | | s1#(mark(X)) | → | s1#(X) |
Problem 36: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
first1#(active(X1), X2) | → | first1#(X1, X2) | | first1#(mark(X1), X2) | → | first1#(X1, X2) |
first1#(X1, active(X2)) | → | first1#(X1, X2) | | first1#(X1, mark(X2)) | → | first1#(X1, X2) |
Rewrite Rules
active(sel(s(X), cons(Y, Z))) | → | mark(sel(X, Z)) | | active(sel(0, cons(X, Z))) | → | mark(X) |
active(first(0, Z)) | → | mark(nil) | | active(first(s(X), cons(Y, Z))) | → | mark(cons(Y, first(X, Z))) |
active(from(X)) | → | mark(cons(X, from(s(X)))) | | active(sel1(s(X), cons(Y, Z))) | → | mark(sel1(X, Z)) |
active(sel1(0, cons(X, Z))) | → | mark(quote(X)) | | active(first1(0, Z)) | → | mark(nil1) |
active(first1(s(X), cons(Y, Z))) | → | mark(cons1(quote(Y), first1(X, Z))) | | active(quote(0)) | → | mark(01) |
active(quote1(cons(X, Z))) | → | mark(cons1(quote(X), quote1(Z))) | | active(quote1(nil)) | → | mark(nil1) |
active(quote(s(X))) | → | mark(s1(quote(X))) | | active(quote(sel(X, Z))) | → | mark(sel1(X, Z)) |
active(quote1(first(X, Z))) | → | mark(first1(X, Z)) | | active(unquote(01)) | → | mark(0) |
active(unquote(s1(X))) | → | mark(s(unquote(X))) | | active(unquote1(nil1)) | → | mark(nil) |
active(unquote1(cons1(X, Z))) | → | mark(fcons(unquote(X), unquote1(Z))) | | active(fcons(X, Z)) | → | mark(cons(X, Z)) |
mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) | | mark(s(X)) | → | active(s(mark(X))) |
mark(cons(X1, X2)) | → | active(cons(mark(X1), X2)) | | mark(0) | → | active(0) |
mark(first(X1, X2)) | → | active(first(mark(X1), mark(X2))) | | mark(nil) | → | active(nil) |
mark(from(X)) | → | active(from(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
mark(quote(X)) | → | active(quote(X)) | | mark(first1(X1, X2)) | → | active(first1(mark(X1), mark(X2))) |
mark(nil1) | → | active(nil1) | | mark(cons1(X1, X2)) | → | active(cons1(mark(X1), mark(X2))) |
mark(01) | → | active(01) | | mark(quote1(X)) | → | active(quote1(X)) |
mark(s1(X)) | → | active(s1(mark(X))) | | mark(unquote(X)) | → | active(unquote(mark(X))) |
mark(unquote1(X)) | → | active(unquote1(mark(X))) | | mark(fcons(X1, X2)) | → | active(fcons(mark(X1), mark(X2))) |
sel(mark(X1), X2) | → | sel(X1, X2) | | sel(X1, mark(X2)) | → | sel(X1, X2) |
sel(active(X1), X2) | → | sel(X1, X2) | | sel(X1, active(X2)) | → | sel(X1, X2) |
s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
cons(mark(X1), X2) | → | cons(X1, X2) | | cons(X1, mark(X2)) | → | cons(X1, X2) |
cons(active(X1), X2) | → | cons(X1, X2) | | cons(X1, active(X2)) | → | cons(X1, X2) |
first(mark(X1), X2) | → | first(X1, X2) | | first(X1, mark(X2)) | → | first(X1, X2) |
first(active(X1), X2) | → | first(X1, X2) | | first(X1, active(X2)) | → | first(X1, X2) |
from(mark(X)) | → | from(X) | | from(active(X)) | → | from(X) |
sel1(mark(X1), X2) | → | sel1(X1, X2) | | sel1(X1, mark(X2)) | → | sel1(X1, X2) |
sel1(active(X1), X2) | → | sel1(X1, X2) | | sel1(X1, active(X2)) | → | sel1(X1, X2) |
quote(mark(X)) | → | quote(X) | | quote(active(X)) | → | quote(X) |
first1(mark(X1), X2) | → | first1(X1, X2) | | first1(X1, mark(X2)) | → | first1(X1, X2) |
first1(active(X1), X2) | → | first1(X1, X2) | | first1(X1, active(X2)) | → | first1(X1, X2) |
cons1(mark(X1), X2) | → | cons1(X1, X2) | | cons1(X1, mark(X2)) | → | cons1(X1, X2) |
cons1(active(X1), X2) | → | cons1(X1, X2) | | cons1(X1, active(X2)) | → | cons1(X1, X2) |
quote1(mark(X)) | → | quote1(X) | | quote1(active(X)) | → | quote1(X) |
s1(mark(X)) | → | s1(X) | | s1(active(X)) | → | s1(X) |
unquote(mark(X)) | → | unquote(X) | | unquote(active(X)) | → | unquote(X) |
unquote1(mark(X)) | → | unquote1(X) | | unquote1(active(X)) | → | unquote1(X) |
fcons(mark(X1), X2) | → | fcons(X1, X2) | | fcons(X1, mark(X2)) | → | fcons(X1, X2) |
fcons(active(X1), X2) | → | fcons(X1, X2) | | fcons(X1, active(X2)) | → | fcons(X1, X2) |
Original Signature
Termination of terms over the following signature is verified: s1, cons1, mark, fcons, from, 01, first1, quote1, unquote, 0, s, sel1, unquote1, quote, active, nil1, first, sel, nil, cons
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
first1#(active(X1), X2) | → | first1#(X1, X2) | | first1#(mark(X1), X2) | → | first1#(X1, X2) |