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)