TIMEOUT

The TRS could not be proven terminating. The proof attempt took 60001 ms.

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (7901ms).
 | – Problem 2 was processed with processor SubtermCriterion (2ms).
 | – Problem 3 remains open; application of the following processors failed [SubtermCriterion (0ms), DependencyGraph (4ms), PolynomialLinearRange4iUR (3333ms), DependencyGraph (6ms), PolynomialLinearRange4iUR (7549ms), DependencyGraph (4ms), PolynomialLinearRange8NegiUR (30000ms), ReductionPairSAT (7887ms), DependencyGraph (20ms), SizeChangePrinciple (timeout)].
 | – Problem 4 was processed with processor SubtermCriterion (1ms).
 | – Problem 5 was processed with processor SubtermCriterion (3ms).
 | – Problem 6 was processed with processor SubtermCriterion (1ms).
 | – Problem 7 was processed with processor SubtermCriterion (1ms).
 | – Problem 8 was processed with processor SubtermCriterion (1ms).
 | – Problem 9 was processed with processor SubtermCriterion (3ms).
 |    | – Problem 16 was processed with processor PolynomialLinearRange4iUR (77ms).
 | – Problem 10 was processed with processor SubtermCriterion (2ms).
 | – Problem 11 was processed with processor SubtermCriterion (2ms).
 | – Problem 12 was processed with processor SubtermCriterion (3ms).
 | – Problem 13 was processed with processor SubtermCriterion (1ms).
 |    | – Problem 17 was processed with processor PolynomialLinearRange4iUR (57ms).
 | – Problem 14 was processed with processor SubtermCriterion (2ms).
 | – Problem 15 was processed with processor SubtermCriterion (1ms).

The following open problems remain:



Open Dependency Pair Problem 3

Dependency Pairs

top#(mark(X)) → top#(proper(X))top#(ok(X)) → top#(active(X))

Rewrite Rules

active(dbl(0)) → mark(0)active(dbl(s(X))) → mark(s(s(dbl(X))))
active(dbls(nil)) → mark(nil)active(dbls(cons(X, Y))) → mark(cons(dbl(X), dbls(Y)))
active(sel(0, cons(X, Y))) → mark(X)active(sel(s(X), cons(Y, Z))) → mark(sel(X, Z))
active(indx(nil, X)) → mark(nil)active(indx(cons(X, Y), Z)) → mark(cons(sel(X, Z), indx(Y, Z)))
active(from(X)) → mark(cons(X, from(s(X))))active(dbl1(0)) → mark(01)
active(dbl1(s(X))) → mark(s1(s1(dbl1(X))))active(sel1(0, cons(X, Y))) → mark(X)
active(sel1(s(X), cons(Y, Z))) → mark(sel1(X, Z))active(quote(0)) → mark(01)
active(quote(s(X))) → mark(s1(quote(X)))active(quote(dbl(X))) → mark(dbl1(X))
active(quote(sel(X, Y))) → mark(sel1(X, Y))active(dbl(X)) → dbl(active(X))
active(dbls(X)) → dbls(active(X))active(sel(X1, X2)) → sel(active(X1), X2)
active(sel(X1, X2)) → sel(X1, active(X2))active(indx(X1, X2)) → indx(active(X1), X2)
active(dbl1(X)) → dbl1(active(X))active(s1(X)) → s1(active(X))
active(sel1(X1, X2)) → sel1(active(X1), X2)active(sel1(X1, X2)) → sel1(X1, active(X2))
active(quote(X)) → quote(active(X))dbl(mark(X)) → mark(dbl(X))
dbls(mark(X)) → mark(dbls(X))sel(mark(X1), X2) → mark(sel(X1, X2))
sel(X1, mark(X2)) → mark(sel(X1, X2))indx(mark(X1), X2) → mark(indx(X1, X2))
dbl1(mark(X)) → mark(dbl1(X))s1(mark(X)) → mark(s1(X))
sel1(mark(X1), X2) → mark(sel1(X1, X2))sel1(X1, mark(X2)) → mark(sel1(X1, X2))
quote(mark(X)) → mark(quote(X))proper(dbl(X)) → dbl(proper(X))
proper(0) → ok(0)proper(s(X)) → s(proper(X))
proper(dbls(X)) → dbls(proper(X))proper(nil) → ok(nil)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))proper(sel(X1, X2)) → sel(proper(X1), proper(X2))
proper(indx(X1, X2)) → indx(proper(X1), proper(X2))proper(from(X)) → from(proper(X))
proper(dbl1(X)) → dbl1(proper(X))proper(01) → ok(01)
proper(s1(X)) → s1(proper(X))proper(sel1(X1, X2)) → sel1(proper(X1), proper(X2))
proper(quote(X)) → quote(proper(X))dbl(ok(X)) → ok(dbl(X))
s(ok(X)) → ok(s(X))dbls(ok(X)) → ok(dbls(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))sel(ok(X1), ok(X2)) → ok(sel(X1, X2))
indx(ok(X1), ok(X2)) → ok(indx(X1, X2))from(ok(X)) → ok(from(X))
dbl1(ok(X)) → ok(dbl1(X))s1(ok(X)) → ok(s1(X))
sel1(ok(X1), ok(X2)) → ok(sel1(X1, X2))quote(ok(X)) → ok(quote(X))
top(mark(X)) → top(proper(X))top(ok(X)) → top(active(X))

Original Signature

Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, ok, proper, sel, top, nil, cons


Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

proper#(sel1(X1, X2)) → proper#(X1)proper#(cons(X1, X2)) → proper#(X1)
top#(ok(X)) → top#(active(X))dbls#(ok(X)) → dbls#(X)
active#(sel1(X1, X2)) → active#(X2)proper#(s1(X)) → proper#(X)
active#(dbl(s(X))) → s#(dbl(X))active#(sel1(X1, X2)) → active#(X1)
cons#(ok(X1), ok(X2)) → cons#(X1, X2)active#(dbls(cons(X, Y))) → cons#(dbl(X), dbls(Y))
dbls#(mark(X)) → dbls#(X)from#(ok(X)) → from#(X)
active#(s1(X)) → active#(X)active#(sel(X1, X2)) → active#(X2)
indx#(ok(X1), ok(X2)) → indx#(X1, X2)proper#(quote(X)) → quote#(proper(X))
active#(s1(X)) → s1#(active(X))sel1#(ok(X1), ok(X2)) → sel1#(X1, X2)
active#(dbl(s(X))) → dbl#(X)proper#(indx(X1, X2)) → proper#(X1)
top#(mark(X)) → proper#(X)indx#(mark(X1), X2) → indx#(X1, X2)
proper#(from(X)) → proper#(X)active#(quote(X)) → quote#(active(X))
top#(mark(X)) → top#(proper(X))active#(sel(s(X), cons(Y, Z))) → sel#(X, Z)
proper#(cons(X1, X2)) → proper#(X2)active#(dbl(s(X))) → s#(s(dbl(X)))
s1#(ok(X)) → s1#(X)active#(quote(s(X))) → quote#(X)
sel#(X1, mark(X2)) → sel#(X1, X2)dbl1#(mark(X)) → dbl1#(X)
active#(indx(cons(X, Y), Z)) → cons#(sel(X, Z), indx(Y, Z))dbl1#(ok(X)) → dbl1#(X)
active#(from(X)) → s#(X)proper#(s(X)) → proper#(X)
quote#(mark(X)) → quote#(X)active#(dbl1(s(X))) → s1#(dbl1(X))
active#(dbl1(X)) → active#(X)sel1#(mark(X1), X2) → sel1#(X1, X2)
proper#(sel1(X1, X2)) → proper#(X2)sel#(ok(X1), ok(X2)) → sel#(X1, X2)
active#(dbls(X)) → active#(X)proper#(quote(X)) → proper#(X)
active#(dbls(X)) → dbls#(active(X))active#(quote(s(X))) → s1#(quote(X))
sel#(mark(X1), X2) → sel#(X1, X2)active#(dbl1(s(X))) → s1#(s1(dbl1(X)))
active#(dbls(cons(X, Y))) → dbls#(Y)proper#(indx(X1, X2)) → proper#(X2)
active#(sel1(X1, X2)) → sel1#(X1, active(X2))active#(dbl1(s(X))) → dbl1#(X)
active#(indx(cons(X, Y), Z)) → indx#(Y, Z)top#(ok(X)) → active#(X)
proper#(sel(X1, X2)) → sel#(proper(X1), proper(X2))active#(dbl1(X)) → dbl1#(active(X))
sel1#(X1, mark(X2)) → sel1#(X1, X2)quote#(ok(X)) → quote#(X)
active#(sel1(s(X), cons(Y, Z))) → sel1#(X, Z)active#(quote(sel(X, Y))) → sel1#(X, Y)
active#(sel(X1, X2)) → active#(X1)active#(indx(cons(X, Y), Z)) → sel#(X, Z)
proper#(s1(X)) → s1#(proper(X))active#(from(X)) → cons#(X, from(s(X)))
active#(dbl(X)) → active#(X)proper#(from(X)) → from#(proper(X))
proper#(sel(X1, X2)) → proper#(X2)active#(dbls(cons(X, Y))) → dbl#(X)
proper#(indx(X1, X2)) → indx#(proper(X1), proper(X2))proper#(dbls(X)) → dbls#(proper(X))
active#(sel1(X1, X2)) → sel1#(active(X1), X2)active#(sel(X1, X2)) → sel#(X1, active(X2))
active#(sel(X1, X2)) → sel#(active(X1), X2)s1#(mark(X)) → s1#(X)
active#(indx(X1, X2)) → active#(X1)proper#(dbl(X)) → proper#(X)
dbl#(mark(X)) → dbl#(X)active#(dbl(X)) → dbl#(active(X))
s#(ok(X)) → s#(X)proper#(sel1(X1, X2)) → sel1#(proper(X1), proper(X2))
proper#(sel(X1, X2)) → proper#(X1)dbl#(ok(X)) → dbl#(X)
proper#(cons(X1, X2)) → cons#(proper(X1), proper(X2))proper#(dbl(X)) → dbl#(proper(X))
proper#(dbl1(X)) → proper#(X)active#(quote(dbl(X))) → dbl1#(X)
proper#(s(X)) → s#(proper(X))proper#(dbls(X)) → proper#(X)
active#(quote(X)) → active#(X)proper#(dbl1(X)) → dbl1#(proper(X))
active#(indx(X1, X2)) → indx#(active(X1), X2)active#(from(X)) → from#(s(X))

Rewrite Rules

active(dbl(0)) → mark(0)active(dbl(s(X))) → mark(s(s(dbl(X))))
active(dbls(nil)) → mark(nil)active(dbls(cons(X, Y))) → mark(cons(dbl(X), dbls(Y)))
active(sel(0, cons(X, Y))) → mark(X)active(sel(s(X), cons(Y, Z))) → mark(sel(X, Z))
active(indx(nil, X)) → mark(nil)active(indx(cons(X, Y), Z)) → mark(cons(sel(X, Z), indx(Y, Z)))
active(from(X)) → mark(cons(X, from(s(X))))active(dbl1(0)) → mark(01)
active(dbl1(s(X))) → mark(s1(s1(dbl1(X))))active(sel1(0, cons(X, Y))) → mark(X)
active(sel1(s(X), cons(Y, Z))) → mark(sel1(X, Z))active(quote(0)) → mark(01)
active(quote(s(X))) → mark(s1(quote(X)))active(quote(dbl(X))) → mark(dbl1(X))
active(quote(sel(X, Y))) → mark(sel1(X, Y))active(dbl(X)) → dbl(active(X))
active(dbls(X)) → dbls(active(X))active(sel(X1, X2)) → sel(active(X1), X2)
active(sel(X1, X2)) → sel(X1, active(X2))active(indx(X1, X2)) → indx(active(X1), X2)
active(dbl1(X)) → dbl1(active(X))active(s1(X)) → s1(active(X))
active(sel1(X1, X2)) → sel1(active(X1), X2)active(sel1(X1, X2)) → sel1(X1, active(X2))
active(quote(X)) → quote(active(X))dbl(mark(X)) → mark(dbl(X))
dbls(mark(X)) → mark(dbls(X))sel(mark(X1), X2) → mark(sel(X1, X2))
sel(X1, mark(X2)) → mark(sel(X1, X2))indx(mark(X1), X2) → mark(indx(X1, X2))
dbl1(mark(X)) → mark(dbl1(X))s1(mark(X)) → mark(s1(X))
sel1(mark(X1), X2) → mark(sel1(X1, X2))sel1(X1, mark(X2)) → mark(sel1(X1, X2))
quote(mark(X)) → mark(quote(X))proper(dbl(X)) → dbl(proper(X))
proper(0) → ok(0)proper(s(X)) → s(proper(X))
proper(dbls(X)) → dbls(proper(X))proper(nil) → ok(nil)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))proper(sel(X1, X2)) → sel(proper(X1), proper(X2))
proper(indx(X1, X2)) → indx(proper(X1), proper(X2))proper(from(X)) → from(proper(X))
proper(dbl1(X)) → dbl1(proper(X))proper(01) → ok(01)
proper(s1(X)) → s1(proper(X))proper(sel1(X1, X2)) → sel1(proper(X1), proper(X2))
proper(quote(X)) → quote(proper(X))dbl(ok(X)) → ok(dbl(X))
s(ok(X)) → ok(s(X))dbls(ok(X)) → ok(dbls(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))sel(ok(X1), ok(X2)) → ok(sel(X1, X2))
indx(ok(X1), ok(X2)) → ok(indx(X1, X2))from(ok(X)) → ok(from(X))
dbl1(ok(X)) → ok(dbl1(X))s1(ok(X)) → ok(s1(X))
sel1(ok(X1), ok(X2)) → ok(sel1(X1, X2))quote(ok(X)) → ok(quote(X))
top(mark(X)) → top(proper(X))top(ok(X)) → top(active(X))

Original Signature

Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, ok, proper, sel, cons, nil, top

Strategy


The following SCCs where found

sel#(mark(X1), X2) → sel#(X1, X2)sel#(ok(X1), ok(X2)) → sel#(X1, X2)
sel#(X1, mark(X2)) → sel#(X1, X2)

dbl#(ok(X)) → dbl#(X)dbl#(mark(X)) → dbl#(X)

dbl1#(ok(X)) → dbl1#(X)dbl1#(mark(X)) → dbl1#(X)

sel1#(X1, mark(X2)) → sel1#(X1, X2)sel1#(mark(X1), X2) → sel1#(X1, X2)
sel1#(ok(X1), ok(X2)) → sel1#(X1, X2)

proper#(sel1(X1, X2)) → proper#(X1)proper#(cons(X1, X2)) → proper#(X1)
proper#(cons(X1, X2)) → proper#(X2)proper#(s1(X)) → proper#(X)
proper#(dbl(X)) → proper#(X)proper#(indx(X1, X2)) → proper#(X2)
proper#(sel(X1, X2)) → proper#(X1)proper#(s(X)) → proper#(X)
proper#(dbl1(X)) → proper#(X)proper#(sel1(X1, X2)) → proper#(X2)
proper#(dbls(X)) → proper#(X)proper#(quote(X)) → proper#(X)
proper#(sel(X1, X2)) → proper#(X2)proper#(indx(X1, X2)) → proper#(X1)
proper#(from(X)) → proper#(X)

cons#(ok(X1), ok(X2)) → cons#(X1, X2)

dbls#(ok(X)) → dbls#(X)dbls#(mark(X)) → dbls#(X)

active#(dbl1(X)) → active#(X)active#(sel(X1, X2)) → active#(X2)
active#(s1(X)) → active#(X)active#(sel1(X1, X2)) → active#(X2)
active#(indx(X1, X2)) → active#(X1)active#(sel(X1, X2)) → active#(X1)
active#(dbl(X)) → active#(X)active#(dbls(X)) → active#(X)
active#(sel1(X1, X2)) → active#(X1)active#(quote(X)) → active#(X)

indx#(ok(X1), ok(X2)) → indx#(X1, X2)indx#(mark(X1), X2) → indx#(X1, X2)

from#(ok(X)) → from#(X)

s#(ok(X)) → s#(X)

s1#(mark(X)) → s1#(X)s1#(ok(X)) → s1#(X)

quote#(ok(X)) → quote#(X)quote#(mark(X)) → quote#(X)

top#(mark(X)) → top#(proper(X))top#(ok(X)) → top#(active(X))

Problem 2: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

dbl1#(ok(X)) → dbl1#(X)dbl1#(mark(X)) → dbl1#(X)

Rewrite Rules

active(dbl(0)) → mark(0)active(dbl(s(X))) → mark(s(s(dbl(X))))
active(dbls(nil)) → mark(nil)active(dbls(cons(X, Y))) → mark(cons(dbl(X), dbls(Y)))
active(sel(0, cons(X, Y))) → mark(X)active(sel(s(X), cons(Y, Z))) → mark(sel(X, Z))
active(indx(nil, X)) → mark(nil)active(indx(cons(X, Y), Z)) → mark(cons(sel(X, Z), indx(Y, Z)))
active(from(X)) → mark(cons(X, from(s(X))))active(dbl1(0)) → mark(01)
active(dbl1(s(X))) → mark(s1(s1(dbl1(X))))active(sel1(0, cons(X, Y))) → mark(X)
active(sel1(s(X), cons(Y, Z))) → mark(sel1(X, Z))active(quote(0)) → mark(01)
active(quote(s(X))) → mark(s1(quote(X)))active(quote(dbl(X))) → mark(dbl1(X))
active(quote(sel(X, Y))) → mark(sel1(X, Y))active(dbl(X)) → dbl(active(X))
active(dbls(X)) → dbls(active(X))active(sel(X1, X2)) → sel(active(X1), X2)
active(sel(X1, X2)) → sel(X1, active(X2))active(indx(X1, X2)) → indx(active(X1), X2)
active(dbl1(X)) → dbl1(active(X))active(s1(X)) → s1(active(X))
active(sel1(X1, X2)) → sel1(active(X1), X2)active(sel1(X1, X2)) → sel1(X1, active(X2))
active(quote(X)) → quote(active(X))dbl(mark(X)) → mark(dbl(X))
dbls(mark(X)) → mark(dbls(X))sel(mark(X1), X2) → mark(sel(X1, X2))
sel(X1, mark(X2)) → mark(sel(X1, X2))indx(mark(X1), X2) → mark(indx(X1, X2))
dbl1(mark(X)) → mark(dbl1(X))s1(mark(X)) → mark(s1(X))
sel1(mark(X1), X2) → mark(sel1(X1, X2))sel1(X1, mark(X2)) → mark(sel1(X1, X2))
quote(mark(X)) → mark(quote(X))proper(dbl(X)) → dbl(proper(X))
proper(0) → ok(0)proper(s(X)) → s(proper(X))
proper(dbls(X)) → dbls(proper(X))proper(nil) → ok(nil)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))proper(sel(X1, X2)) → sel(proper(X1), proper(X2))
proper(indx(X1, X2)) → indx(proper(X1), proper(X2))proper(from(X)) → from(proper(X))
proper(dbl1(X)) → dbl1(proper(X))proper(01) → ok(01)
proper(s1(X)) → s1(proper(X))proper(sel1(X1, X2)) → sel1(proper(X1), proper(X2))
proper(quote(X)) → quote(proper(X))dbl(ok(X)) → ok(dbl(X))
s(ok(X)) → ok(s(X))dbls(ok(X)) → ok(dbls(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))sel(ok(X1), ok(X2)) → ok(sel(X1, X2))
indx(ok(X1), ok(X2)) → ok(indx(X1, X2))from(ok(X)) → ok(from(X))
dbl1(ok(X)) → ok(dbl1(X))s1(ok(X)) → ok(s1(X))
sel1(ok(X1), ok(X2)) → ok(sel1(X1, X2))quote(ok(X)) → ok(quote(X))
top(mark(X)) → top(proper(X))top(ok(X)) → top(active(X))

Original Signature

Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, ok, proper, sel, cons, nil, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

dbl1#(ok(X)) → dbl1#(X)dbl1#(mark(X)) → dbl1#(X)

Problem 4: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

indx#(ok(X1), ok(X2)) → indx#(X1, X2)indx#(mark(X1), X2) → indx#(X1, X2)

Rewrite Rules

active(dbl(0)) → mark(0)active(dbl(s(X))) → mark(s(s(dbl(X))))
active(dbls(nil)) → mark(nil)active(dbls(cons(X, Y))) → mark(cons(dbl(X), dbls(Y)))
active(sel(0, cons(X, Y))) → mark(X)active(sel(s(X), cons(Y, Z))) → mark(sel(X, Z))
active(indx(nil, X)) → mark(nil)active(indx(cons(X, Y), Z)) → mark(cons(sel(X, Z), indx(Y, Z)))
active(from(X)) → mark(cons(X, from(s(X))))active(dbl1(0)) → mark(01)
active(dbl1(s(X))) → mark(s1(s1(dbl1(X))))active(sel1(0, cons(X, Y))) → mark(X)
active(sel1(s(X), cons(Y, Z))) → mark(sel1(X, Z))active(quote(0)) → mark(01)
active(quote(s(X))) → mark(s1(quote(X)))active(quote(dbl(X))) → mark(dbl1(X))
active(quote(sel(X, Y))) → mark(sel1(X, Y))active(dbl(X)) → dbl(active(X))
active(dbls(X)) → dbls(active(X))active(sel(X1, X2)) → sel(active(X1), X2)
active(sel(X1, X2)) → sel(X1, active(X2))active(indx(X1, X2)) → indx(active(X1), X2)
active(dbl1(X)) → dbl1(active(X))active(s1(X)) → s1(active(X))
active(sel1(X1, X2)) → sel1(active(X1), X2)active(sel1(X1, X2)) → sel1(X1, active(X2))
active(quote(X)) → quote(active(X))dbl(mark(X)) → mark(dbl(X))
dbls(mark(X)) → mark(dbls(X))sel(mark(X1), X2) → mark(sel(X1, X2))
sel(X1, mark(X2)) → mark(sel(X1, X2))indx(mark(X1), X2) → mark(indx(X1, X2))
dbl1(mark(X)) → mark(dbl1(X))s1(mark(X)) → mark(s1(X))
sel1(mark(X1), X2) → mark(sel1(X1, X2))sel1(X1, mark(X2)) → mark(sel1(X1, X2))
quote(mark(X)) → mark(quote(X))proper(dbl(X)) → dbl(proper(X))
proper(0) → ok(0)proper(s(X)) → s(proper(X))
proper(dbls(X)) → dbls(proper(X))proper(nil) → ok(nil)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))proper(sel(X1, X2)) → sel(proper(X1), proper(X2))
proper(indx(X1, X2)) → indx(proper(X1), proper(X2))proper(from(X)) → from(proper(X))
proper(dbl1(X)) → dbl1(proper(X))proper(01) → ok(01)
proper(s1(X)) → s1(proper(X))proper(sel1(X1, X2)) → sel1(proper(X1), proper(X2))
proper(quote(X)) → quote(proper(X))dbl(ok(X)) → ok(dbl(X))
s(ok(X)) → ok(s(X))dbls(ok(X)) → ok(dbls(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))sel(ok(X1), ok(X2)) → ok(sel(X1, X2))
indx(ok(X1), ok(X2)) → ok(indx(X1, X2))from(ok(X)) → ok(from(X))
dbl1(ok(X)) → ok(dbl1(X))s1(ok(X)) → ok(s1(X))
sel1(ok(X1), ok(X2)) → ok(sel1(X1, X2))quote(ok(X)) → ok(quote(X))
top(mark(X)) → top(proper(X))top(ok(X)) → top(active(X))

Original Signature

Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, ok, proper, sel, cons, nil, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

indx#(ok(X1), ok(X2)) → indx#(X1, X2)indx#(mark(X1), X2) → indx#(X1, X2)

Problem 5: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

s1#(mark(X)) → s1#(X)s1#(ok(X)) → s1#(X)

Rewrite Rules

active(dbl(0)) → mark(0)active(dbl(s(X))) → mark(s(s(dbl(X))))
active(dbls(nil)) → mark(nil)active(dbls(cons(X, Y))) → mark(cons(dbl(X), dbls(Y)))
active(sel(0, cons(X, Y))) → mark(X)active(sel(s(X), cons(Y, Z))) → mark(sel(X, Z))
active(indx(nil, X)) → mark(nil)active(indx(cons(X, Y), Z)) → mark(cons(sel(X, Z), indx(Y, Z)))
active(from(X)) → mark(cons(X, from(s(X))))active(dbl1(0)) → mark(01)
active(dbl1(s(X))) → mark(s1(s1(dbl1(X))))active(sel1(0, cons(X, Y))) → mark(X)
active(sel1(s(X), cons(Y, Z))) → mark(sel1(X, Z))active(quote(0)) → mark(01)
active(quote(s(X))) → mark(s1(quote(X)))active(quote(dbl(X))) → mark(dbl1(X))
active(quote(sel(X, Y))) → mark(sel1(X, Y))active(dbl(X)) → dbl(active(X))
active(dbls(X)) → dbls(active(X))active(sel(X1, X2)) → sel(active(X1), X2)
active(sel(X1, X2)) → sel(X1, active(X2))active(indx(X1, X2)) → indx(active(X1), X2)
active(dbl1(X)) → dbl1(active(X))active(s1(X)) → s1(active(X))
active(sel1(X1, X2)) → sel1(active(X1), X2)active(sel1(X1, X2)) → sel1(X1, active(X2))
active(quote(X)) → quote(active(X))dbl(mark(X)) → mark(dbl(X))
dbls(mark(X)) → mark(dbls(X))sel(mark(X1), X2) → mark(sel(X1, X2))
sel(X1, mark(X2)) → mark(sel(X1, X2))indx(mark(X1), X2) → mark(indx(X1, X2))
dbl1(mark(X)) → mark(dbl1(X))s1(mark(X)) → mark(s1(X))
sel1(mark(X1), X2) → mark(sel1(X1, X2))sel1(X1, mark(X2)) → mark(sel1(X1, X2))
quote(mark(X)) → mark(quote(X))proper(dbl(X)) → dbl(proper(X))
proper(0) → ok(0)proper(s(X)) → s(proper(X))
proper(dbls(X)) → dbls(proper(X))proper(nil) → ok(nil)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))proper(sel(X1, X2)) → sel(proper(X1), proper(X2))
proper(indx(X1, X2)) → indx(proper(X1), proper(X2))proper(from(X)) → from(proper(X))
proper(dbl1(X)) → dbl1(proper(X))proper(01) → ok(01)
proper(s1(X)) → s1(proper(X))proper(sel1(X1, X2)) → sel1(proper(X1), proper(X2))
proper(quote(X)) → quote(proper(X))dbl(ok(X)) → ok(dbl(X))
s(ok(X)) → ok(s(X))dbls(ok(X)) → ok(dbls(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))sel(ok(X1), ok(X2)) → ok(sel(X1, X2))
indx(ok(X1), ok(X2)) → ok(indx(X1, X2))from(ok(X)) → ok(from(X))
dbl1(ok(X)) → ok(dbl1(X))s1(ok(X)) → ok(s1(X))
sel1(ok(X1), ok(X2)) → ok(sel1(X1, X2))quote(ok(X)) → ok(quote(X))
top(mark(X)) → top(proper(X))top(ok(X)) → top(active(X))

Original Signature

Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, ok, proper, sel, cons, nil, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

s1#(mark(X)) → s1#(X)s1#(ok(X)) → s1#(X)

Problem 6: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

cons#(ok(X1), ok(X2)) → cons#(X1, X2)

Rewrite Rules

active(dbl(0)) → mark(0)active(dbl(s(X))) → mark(s(s(dbl(X))))
active(dbls(nil)) → mark(nil)active(dbls(cons(X, Y))) → mark(cons(dbl(X), dbls(Y)))
active(sel(0, cons(X, Y))) → mark(X)active(sel(s(X), cons(Y, Z))) → mark(sel(X, Z))
active(indx(nil, X)) → mark(nil)active(indx(cons(X, Y), Z)) → mark(cons(sel(X, Z), indx(Y, Z)))
active(from(X)) → mark(cons(X, from(s(X))))active(dbl1(0)) → mark(01)
active(dbl1(s(X))) → mark(s1(s1(dbl1(X))))active(sel1(0, cons(X, Y))) → mark(X)
active(sel1(s(X), cons(Y, Z))) → mark(sel1(X, Z))active(quote(0)) → mark(01)
active(quote(s(X))) → mark(s1(quote(X)))active(quote(dbl(X))) → mark(dbl1(X))
active(quote(sel(X, Y))) → mark(sel1(X, Y))active(dbl(X)) → dbl(active(X))
active(dbls(X)) → dbls(active(X))active(sel(X1, X2)) → sel(active(X1), X2)
active(sel(X1, X2)) → sel(X1, active(X2))active(indx(X1, X2)) → indx(active(X1), X2)
active(dbl1(X)) → dbl1(active(X))active(s1(X)) → s1(active(X))
active(sel1(X1, X2)) → sel1(active(X1), X2)active(sel1(X1, X2)) → sel1(X1, active(X2))
active(quote(X)) → quote(active(X))dbl(mark(X)) → mark(dbl(X))
dbls(mark(X)) → mark(dbls(X))sel(mark(X1), X2) → mark(sel(X1, X2))
sel(X1, mark(X2)) → mark(sel(X1, X2))indx(mark(X1), X2) → mark(indx(X1, X2))
dbl1(mark(X)) → mark(dbl1(X))s1(mark(X)) → mark(s1(X))
sel1(mark(X1), X2) → mark(sel1(X1, X2))sel1(X1, mark(X2)) → mark(sel1(X1, X2))
quote(mark(X)) → mark(quote(X))proper(dbl(X)) → dbl(proper(X))
proper(0) → ok(0)proper(s(X)) → s(proper(X))
proper(dbls(X)) → dbls(proper(X))proper(nil) → ok(nil)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))proper(sel(X1, X2)) → sel(proper(X1), proper(X2))
proper(indx(X1, X2)) → indx(proper(X1), proper(X2))proper(from(X)) → from(proper(X))
proper(dbl1(X)) → dbl1(proper(X))proper(01) → ok(01)
proper(s1(X)) → s1(proper(X))proper(sel1(X1, X2)) → sel1(proper(X1), proper(X2))
proper(quote(X)) → quote(proper(X))dbl(ok(X)) → ok(dbl(X))
s(ok(X)) → ok(s(X))dbls(ok(X)) → ok(dbls(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))sel(ok(X1), ok(X2)) → ok(sel(X1, X2))
indx(ok(X1), ok(X2)) → ok(indx(X1, X2))from(ok(X)) → ok(from(X))
dbl1(ok(X)) → ok(dbl1(X))s1(ok(X)) → ok(s1(X))
sel1(ok(X1), ok(X2)) → ok(sel1(X1, X2))quote(ok(X)) → ok(quote(X))
top(mark(X)) → top(proper(X))top(ok(X)) → top(active(X))

Original Signature

Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, ok, proper, sel, cons, nil, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

cons#(ok(X1), ok(X2)) → cons#(X1, X2)

Problem 7: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

from#(ok(X)) → from#(X)

Rewrite Rules

active(dbl(0)) → mark(0)active(dbl(s(X))) → mark(s(s(dbl(X))))
active(dbls(nil)) → mark(nil)active(dbls(cons(X, Y))) → mark(cons(dbl(X), dbls(Y)))
active(sel(0, cons(X, Y))) → mark(X)active(sel(s(X), cons(Y, Z))) → mark(sel(X, Z))
active(indx(nil, X)) → mark(nil)active(indx(cons(X, Y), Z)) → mark(cons(sel(X, Z), indx(Y, Z)))
active(from(X)) → mark(cons(X, from(s(X))))active(dbl1(0)) → mark(01)
active(dbl1(s(X))) → mark(s1(s1(dbl1(X))))active(sel1(0, cons(X, Y))) → mark(X)
active(sel1(s(X), cons(Y, Z))) → mark(sel1(X, Z))active(quote(0)) → mark(01)
active(quote(s(X))) → mark(s1(quote(X)))active(quote(dbl(X))) → mark(dbl1(X))
active(quote(sel(X, Y))) → mark(sel1(X, Y))active(dbl(X)) → dbl(active(X))
active(dbls(X)) → dbls(active(X))active(sel(X1, X2)) → sel(active(X1), X2)
active(sel(X1, X2)) → sel(X1, active(X2))active(indx(X1, X2)) → indx(active(X1), X2)
active(dbl1(X)) → dbl1(active(X))active(s1(X)) → s1(active(X))
active(sel1(X1, X2)) → sel1(active(X1), X2)active(sel1(X1, X2)) → sel1(X1, active(X2))
active(quote(X)) → quote(active(X))dbl(mark(X)) → mark(dbl(X))
dbls(mark(X)) → mark(dbls(X))sel(mark(X1), X2) → mark(sel(X1, X2))
sel(X1, mark(X2)) → mark(sel(X1, X2))indx(mark(X1), X2) → mark(indx(X1, X2))
dbl1(mark(X)) → mark(dbl1(X))s1(mark(X)) → mark(s1(X))
sel1(mark(X1), X2) → mark(sel1(X1, X2))sel1(X1, mark(X2)) → mark(sel1(X1, X2))
quote(mark(X)) → mark(quote(X))proper(dbl(X)) → dbl(proper(X))
proper(0) → ok(0)proper(s(X)) → s(proper(X))
proper(dbls(X)) → dbls(proper(X))proper(nil) → ok(nil)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))proper(sel(X1, X2)) → sel(proper(X1), proper(X2))
proper(indx(X1, X2)) → indx(proper(X1), proper(X2))proper(from(X)) → from(proper(X))
proper(dbl1(X)) → dbl1(proper(X))proper(01) → ok(01)
proper(s1(X)) → s1(proper(X))proper(sel1(X1, X2)) → sel1(proper(X1), proper(X2))
proper(quote(X)) → quote(proper(X))dbl(ok(X)) → ok(dbl(X))
s(ok(X)) → ok(s(X))dbls(ok(X)) → ok(dbls(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))sel(ok(X1), ok(X2)) → ok(sel(X1, X2))
indx(ok(X1), ok(X2)) → ok(indx(X1, X2))from(ok(X)) → ok(from(X))
dbl1(ok(X)) → ok(dbl1(X))s1(ok(X)) → ok(s1(X))
sel1(ok(X1), ok(X2)) → ok(sel1(X1, X2))quote(ok(X)) → ok(quote(X))
top(mark(X)) → top(proper(X))top(ok(X)) → top(active(X))

Original Signature

Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, ok, proper, sel, cons, nil, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

from#(ok(X)) → from#(X)

Problem 8: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

dbl#(ok(X)) → dbl#(X)dbl#(mark(X)) → dbl#(X)

Rewrite Rules

active(dbl(0)) → mark(0)active(dbl(s(X))) → mark(s(s(dbl(X))))
active(dbls(nil)) → mark(nil)active(dbls(cons(X, Y))) → mark(cons(dbl(X), dbls(Y)))
active(sel(0, cons(X, Y))) → mark(X)active(sel(s(X), cons(Y, Z))) → mark(sel(X, Z))
active(indx(nil, X)) → mark(nil)active(indx(cons(X, Y), Z)) → mark(cons(sel(X, Z), indx(Y, Z)))
active(from(X)) → mark(cons(X, from(s(X))))active(dbl1(0)) → mark(01)
active(dbl1(s(X))) → mark(s1(s1(dbl1(X))))active(sel1(0, cons(X, Y))) → mark(X)
active(sel1(s(X), cons(Y, Z))) → mark(sel1(X, Z))active(quote(0)) → mark(01)
active(quote(s(X))) → mark(s1(quote(X)))active(quote(dbl(X))) → mark(dbl1(X))
active(quote(sel(X, Y))) → mark(sel1(X, Y))active(dbl(X)) → dbl(active(X))
active(dbls(X)) → dbls(active(X))active(sel(X1, X2)) → sel(active(X1), X2)
active(sel(X1, X2)) → sel(X1, active(X2))active(indx(X1, X2)) → indx(active(X1), X2)
active(dbl1(X)) → dbl1(active(X))active(s1(X)) → s1(active(X))
active(sel1(X1, X2)) → sel1(active(X1), X2)active(sel1(X1, X2)) → sel1(X1, active(X2))
active(quote(X)) → quote(active(X))dbl(mark(X)) → mark(dbl(X))
dbls(mark(X)) → mark(dbls(X))sel(mark(X1), X2) → mark(sel(X1, X2))
sel(X1, mark(X2)) → mark(sel(X1, X2))indx(mark(X1), X2) → mark(indx(X1, X2))
dbl1(mark(X)) → mark(dbl1(X))s1(mark(X)) → mark(s1(X))
sel1(mark(X1), X2) → mark(sel1(X1, X2))sel1(X1, mark(X2)) → mark(sel1(X1, X2))
quote(mark(X)) → mark(quote(X))proper(dbl(X)) → dbl(proper(X))
proper(0) → ok(0)proper(s(X)) → s(proper(X))
proper(dbls(X)) → dbls(proper(X))proper(nil) → ok(nil)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))proper(sel(X1, X2)) → sel(proper(X1), proper(X2))
proper(indx(X1, X2)) → indx(proper(X1), proper(X2))proper(from(X)) → from(proper(X))
proper(dbl1(X)) → dbl1(proper(X))proper(01) → ok(01)
proper(s1(X)) → s1(proper(X))proper(sel1(X1, X2)) → sel1(proper(X1), proper(X2))
proper(quote(X)) → quote(proper(X))dbl(ok(X)) → ok(dbl(X))
s(ok(X)) → ok(s(X))dbls(ok(X)) → ok(dbls(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))sel(ok(X1), ok(X2)) → ok(sel(X1, X2))
indx(ok(X1), ok(X2)) → ok(indx(X1, X2))from(ok(X)) → ok(from(X))
dbl1(ok(X)) → ok(dbl1(X))s1(ok(X)) → ok(s1(X))
sel1(ok(X1), ok(X2)) → ok(sel1(X1, X2))quote(ok(X)) → ok(quote(X))
top(mark(X)) → top(proper(X))top(ok(X)) → top(active(X))

Original Signature

Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, ok, proper, sel, cons, nil, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

dbl#(ok(X)) → dbl#(X)dbl#(mark(X)) → dbl#(X)

Problem 9: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

sel1#(X1, mark(X2)) → sel1#(X1, X2)sel1#(mark(X1), X2) → sel1#(X1, X2)
sel1#(ok(X1), ok(X2)) → sel1#(X1, X2)

Rewrite Rules

active(dbl(0)) → mark(0)active(dbl(s(X))) → mark(s(s(dbl(X))))
active(dbls(nil)) → mark(nil)active(dbls(cons(X, Y))) → mark(cons(dbl(X), dbls(Y)))
active(sel(0, cons(X, Y))) → mark(X)active(sel(s(X), cons(Y, Z))) → mark(sel(X, Z))
active(indx(nil, X)) → mark(nil)active(indx(cons(X, Y), Z)) → mark(cons(sel(X, Z), indx(Y, Z)))
active(from(X)) → mark(cons(X, from(s(X))))active(dbl1(0)) → mark(01)
active(dbl1(s(X))) → mark(s1(s1(dbl1(X))))active(sel1(0, cons(X, Y))) → mark(X)
active(sel1(s(X), cons(Y, Z))) → mark(sel1(X, Z))active(quote(0)) → mark(01)
active(quote(s(X))) → mark(s1(quote(X)))active(quote(dbl(X))) → mark(dbl1(X))
active(quote(sel(X, Y))) → mark(sel1(X, Y))active(dbl(X)) → dbl(active(X))
active(dbls(X)) → dbls(active(X))active(sel(X1, X2)) → sel(active(X1), X2)
active(sel(X1, X2)) → sel(X1, active(X2))active(indx(X1, X2)) → indx(active(X1), X2)
active(dbl1(X)) → dbl1(active(X))active(s1(X)) → s1(active(X))
active(sel1(X1, X2)) → sel1(active(X1), X2)active(sel1(X1, X2)) → sel1(X1, active(X2))
active(quote(X)) → quote(active(X))dbl(mark(X)) → mark(dbl(X))
dbls(mark(X)) → mark(dbls(X))sel(mark(X1), X2) → mark(sel(X1, X2))
sel(X1, mark(X2)) → mark(sel(X1, X2))indx(mark(X1), X2) → mark(indx(X1, X2))
dbl1(mark(X)) → mark(dbl1(X))s1(mark(X)) → mark(s1(X))
sel1(mark(X1), X2) → mark(sel1(X1, X2))sel1(X1, mark(X2)) → mark(sel1(X1, X2))
quote(mark(X)) → mark(quote(X))proper(dbl(X)) → dbl(proper(X))
proper(0) → ok(0)proper(s(X)) → s(proper(X))
proper(dbls(X)) → dbls(proper(X))proper(nil) → ok(nil)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))proper(sel(X1, X2)) → sel(proper(X1), proper(X2))
proper(indx(X1, X2)) → indx(proper(X1), proper(X2))proper(from(X)) → from(proper(X))
proper(dbl1(X)) → dbl1(proper(X))proper(01) → ok(01)
proper(s1(X)) → s1(proper(X))proper(sel1(X1, X2)) → sel1(proper(X1), proper(X2))
proper(quote(X)) → quote(proper(X))dbl(ok(X)) → ok(dbl(X))
s(ok(X)) → ok(s(X))dbls(ok(X)) → ok(dbls(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))sel(ok(X1), ok(X2)) → ok(sel(X1, X2))
indx(ok(X1), ok(X2)) → ok(indx(X1, X2))from(ok(X)) → ok(from(X))
dbl1(ok(X)) → ok(dbl1(X))s1(ok(X)) → ok(s1(X))
sel1(ok(X1), ok(X2)) → ok(sel1(X1, X2))quote(ok(X)) → ok(quote(X))
top(mark(X)) → top(proper(X))top(ok(X)) → top(active(X))

Original Signature

Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, ok, proper, sel, cons, nil, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

sel1#(mark(X1), X2) → sel1#(X1, X2)sel1#(ok(X1), ok(X2)) → sel1#(X1, X2)

Problem 16: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

sel1#(X1, mark(X2)) → sel1#(X1, X2)

Rewrite Rules

active(dbl(0)) → mark(0)active(dbl(s(X))) → mark(s(s(dbl(X))))
active(dbls(nil)) → mark(nil)active(dbls(cons(X, Y))) → mark(cons(dbl(X), dbls(Y)))
active(sel(0, cons(X, Y))) → mark(X)active(sel(s(X), cons(Y, Z))) → mark(sel(X, Z))
active(indx(nil, X)) → mark(nil)active(indx(cons(X, Y), Z)) → mark(cons(sel(X, Z), indx(Y, Z)))
active(from(X)) → mark(cons(X, from(s(X))))active(dbl1(0)) → mark(01)
active(dbl1(s(X))) → mark(s1(s1(dbl1(X))))active(sel1(0, cons(X, Y))) → mark(X)
active(sel1(s(X), cons(Y, Z))) → mark(sel1(X, Z))active(quote(0)) → mark(01)
active(quote(s(X))) → mark(s1(quote(X)))active(quote(dbl(X))) → mark(dbl1(X))
active(quote(sel(X, Y))) → mark(sel1(X, Y))active(dbl(X)) → dbl(active(X))
active(dbls(X)) → dbls(active(X))active(sel(X1, X2)) → sel(active(X1), X2)
active(sel(X1, X2)) → sel(X1, active(X2))active(indx(X1, X2)) → indx(active(X1), X2)
active(dbl1(X)) → dbl1(active(X))active(s1(X)) → s1(active(X))
active(sel1(X1, X2)) → sel1(active(X1), X2)active(sel1(X1, X2)) → sel1(X1, active(X2))
active(quote(X)) → quote(active(X))dbl(mark(X)) → mark(dbl(X))
dbls(mark(X)) → mark(dbls(X))sel(mark(X1), X2) → mark(sel(X1, X2))
sel(X1, mark(X2)) → mark(sel(X1, X2))indx(mark(X1), X2) → mark(indx(X1, X2))
dbl1(mark(X)) → mark(dbl1(X))s1(mark(X)) → mark(s1(X))
sel1(mark(X1), X2) → mark(sel1(X1, X2))sel1(X1, mark(X2)) → mark(sel1(X1, X2))
quote(mark(X)) → mark(quote(X))proper(dbl(X)) → dbl(proper(X))
proper(0) → ok(0)proper(s(X)) → s(proper(X))
proper(dbls(X)) → dbls(proper(X))proper(nil) → ok(nil)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))proper(sel(X1, X2)) → sel(proper(X1), proper(X2))
proper(indx(X1, X2)) → indx(proper(X1), proper(X2))proper(from(X)) → from(proper(X))
proper(dbl1(X)) → dbl1(proper(X))proper(01) → ok(01)
proper(s1(X)) → s1(proper(X))proper(sel1(X1, X2)) → sel1(proper(X1), proper(X2))
proper(quote(X)) → quote(proper(X))dbl(ok(X)) → ok(dbl(X))
s(ok(X)) → ok(s(X))dbls(ok(X)) → ok(dbls(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))sel(ok(X1), ok(X2)) → ok(sel(X1, X2))
indx(ok(X1), ok(X2)) → ok(indx(X1, X2))from(ok(X)) → ok(from(X))
dbl1(ok(X)) → ok(dbl1(X))s1(ok(X)) → ok(s1(X))
sel1(ok(X1), ok(X2)) → ok(sel1(X1, X2))quote(ok(X)) → ok(quote(X))
top(mark(X)) → top(proper(X))top(ok(X)) → top(active(X))

Original Signature

Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, ok, proper, sel, top, nil, cons

Strategy


Polynomial Interpretation

There are no usable rules

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

sel1#(X1, mark(X2)) → sel1#(X1, X2)

Problem 10: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

proper#(sel1(X1, X2)) → proper#(X1)proper#(cons(X1, X2)) → proper#(X1)
proper#(cons(X1, X2)) → proper#(X2)proper#(dbl(X)) → proper#(X)
proper#(s1(X)) → proper#(X)proper#(indx(X1, X2)) → proper#(X2)
proper#(sel(X1, X2)) → proper#(X1)proper#(s(X)) → proper#(X)
proper#(sel1(X1, X2)) → proper#(X2)proper#(dbl1(X)) → proper#(X)
proper#(dbls(X)) → proper#(X)proper#(quote(X)) → proper#(X)
proper#(sel(X1, X2)) → proper#(X2)proper#(indx(X1, X2)) → proper#(X1)
proper#(from(X)) → proper#(X)

Rewrite Rules

active(dbl(0)) → mark(0)active(dbl(s(X))) → mark(s(s(dbl(X))))
active(dbls(nil)) → mark(nil)active(dbls(cons(X, Y))) → mark(cons(dbl(X), dbls(Y)))
active(sel(0, cons(X, Y))) → mark(X)active(sel(s(X), cons(Y, Z))) → mark(sel(X, Z))
active(indx(nil, X)) → mark(nil)active(indx(cons(X, Y), Z)) → mark(cons(sel(X, Z), indx(Y, Z)))
active(from(X)) → mark(cons(X, from(s(X))))active(dbl1(0)) → mark(01)
active(dbl1(s(X))) → mark(s1(s1(dbl1(X))))active(sel1(0, cons(X, Y))) → mark(X)
active(sel1(s(X), cons(Y, Z))) → mark(sel1(X, Z))active(quote(0)) → mark(01)
active(quote(s(X))) → mark(s1(quote(X)))active(quote(dbl(X))) → mark(dbl1(X))
active(quote(sel(X, Y))) → mark(sel1(X, Y))active(dbl(X)) → dbl(active(X))
active(dbls(X)) → dbls(active(X))active(sel(X1, X2)) → sel(active(X1), X2)
active(sel(X1, X2)) → sel(X1, active(X2))active(indx(X1, X2)) → indx(active(X1), X2)
active(dbl1(X)) → dbl1(active(X))active(s1(X)) → s1(active(X))
active(sel1(X1, X2)) → sel1(active(X1), X2)active(sel1(X1, X2)) → sel1(X1, active(X2))
active(quote(X)) → quote(active(X))dbl(mark(X)) → mark(dbl(X))
dbls(mark(X)) → mark(dbls(X))sel(mark(X1), X2) → mark(sel(X1, X2))
sel(X1, mark(X2)) → mark(sel(X1, X2))indx(mark(X1), X2) → mark(indx(X1, X2))
dbl1(mark(X)) → mark(dbl1(X))s1(mark(X)) → mark(s1(X))
sel1(mark(X1), X2) → mark(sel1(X1, X2))sel1(X1, mark(X2)) → mark(sel1(X1, X2))
quote(mark(X)) → mark(quote(X))proper(dbl(X)) → dbl(proper(X))
proper(0) → ok(0)proper(s(X)) → s(proper(X))
proper(dbls(X)) → dbls(proper(X))proper(nil) → ok(nil)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))proper(sel(X1, X2)) → sel(proper(X1), proper(X2))
proper(indx(X1, X2)) → indx(proper(X1), proper(X2))proper(from(X)) → from(proper(X))
proper(dbl1(X)) → dbl1(proper(X))proper(01) → ok(01)
proper(s1(X)) → s1(proper(X))proper(sel1(X1, X2)) → sel1(proper(X1), proper(X2))
proper(quote(X)) → quote(proper(X))dbl(ok(X)) → ok(dbl(X))
s(ok(X)) → ok(s(X))dbls(ok(X)) → ok(dbls(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))sel(ok(X1), ok(X2)) → ok(sel(X1, X2))
indx(ok(X1), ok(X2)) → ok(indx(X1, X2))from(ok(X)) → ok(from(X))
dbl1(ok(X)) → ok(dbl1(X))s1(ok(X)) → ok(s1(X))
sel1(ok(X1), ok(X2)) → ok(sel1(X1, X2))quote(ok(X)) → ok(quote(X))
top(mark(X)) → top(proper(X))top(ok(X)) → top(active(X))

Original Signature

Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, ok, proper, sel, cons, nil, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

proper#(sel1(X1, X2)) → proper#(X1)proper#(cons(X1, X2)) → proper#(X1)
proper#(cons(X1, X2)) → proper#(X2)proper#(dbl(X)) → proper#(X)
proper#(s1(X)) → proper#(X)proper#(indx(X1, X2)) → proper#(X2)
proper#(sel(X1, X2)) → proper#(X1)proper#(s(X)) → proper#(X)
proper#(dbl1(X)) → proper#(X)proper#(sel1(X1, X2)) → proper#(X2)
proper#(dbls(X)) → proper#(X)proper#(quote(X)) → proper#(X)
proper#(sel(X1, X2)) → proper#(X2)proper#(indx(X1, X2)) → proper#(X1)
proper#(from(X)) → proper#(X)

Problem 11: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

active#(dbl1(X)) → active#(X)active#(sel(X1, X2)) → active#(X2)
active#(s1(X)) → active#(X)active#(sel1(X1, X2)) → active#(X2)
active#(indx(X1, X2)) → active#(X1)active#(sel(X1, X2)) → active#(X1)
active#(dbl(X)) → active#(X)active#(dbls(X)) → active#(X)
active#(sel1(X1, X2)) → active#(X1)active#(quote(X)) → active#(X)

Rewrite Rules

active(dbl(0)) → mark(0)active(dbl(s(X))) → mark(s(s(dbl(X))))
active(dbls(nil)) → mark(nil)active(dbls(cons(X, Y))) → mark(cons(dbl(X), dbls(Y)))
active(sel(0, cons(X, Y))) → mark(X)active(sel(s(X), cons(Y, Z))) → mark(sel(X, Z))
active(indx(nil, X)) → mark(nil)active(indx(cons(X, Y), Z)) → mark(cons(sel(X, Z), indx(Y, Z)))
active(from(X)) → mark(cons(X, from(s(X))))active(dbl1(0)) → mark(01)
active(dbl1(s(X))) → mark(s1(s1(dbl1(X))))active(sel1(0, cons(X, Y))) → mark(X)
active(sel1(s(X), cons(Y, Z))) → mark(sel1(X, Z))active(quote(0)) → mark(01)
active(quote(s(X))) → mark(s1(quote(X)))active(quote(dbl(X))) → mark(dbl1(X))
active(quote(sel(X, Y))) → mark(sel1(X, Y))active(dbl(X)) → dbl(active(X))
active(dbls(X)) → dbls(active(X))active(sel(X1, X2)) → sel(active(X1), X2)
active(sel(X1, X2)) → sel(X1, active(X2))active(indx(X1, X2)) → indx(active(X1), X2)
active(dbl1(X)) → dbl1(active(X))active(s1(X)) → s1(active(X))
active(sel1(X1, X2)) → sel1(active(X1), X2)active(sel1(X1, X2)) → sel1(X1, active(X2))
active(quote(X)) → quote(active(X))dbl(mark(X)) → mark(dbl(X))
dbls(mark(X)) → mark(dbls(X))sel(mark(X1), X2) → mark(sel(X1, X2))
sel(X1, mark(X2)) → mark(sel(X1, X2))indx(mark(X1), X2) → mark(indx(X1, X2))
dbl1(mark(X)) → mark(dbl1(X))s1(mark(X)) → mark(s1(X))
sel1(mark(X1), X2) → mark(sel1(X1, X2))sel1(X1, mark(X2)) → mark(sel1(X1, X2))
quote(mark(X)) → mark(quote(X))proper(dbl(X)) → dbl(proper(X))
proper(0) → ok(0)proper(s(X)) → s(proper(X))
proper(dbls(X)) → dbls(proper(X))proper(nil) → ok(nil)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))proper(sel(X1, X2)) → sel(proper(X1), proper(X2))
proper(indx(X1, X2)) → indx(proper(X1), proper(X2))proper(from(X)) → from(proper(X))
proper(dbl1(X)) → dbl1(proper(X))proper(01) → ok(01)
proper(s1(X)) → s1(proper(X))proper(sel1(X1, X2)) → sel1(proper(X1), proper(X2))
proper(quote(X)) → quote(proper(X))dbl(ok(X)) → ok(dbl(X))
s(ok(X)) → ok(s(X))dbls(ok(X)) → ok(dbls(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))sel(ok(X1), ok(X2)) → ok(sel(X1, X2))
indx(ok(X1), ok(X2)) → ok(indx(X1, X2))from(ok(X)) → ok(from(X))
dbl1(ok(X)) → ok(dbl1(X))s1(ok(X)) → ok(s1(X))
sel1(ok(X1), ok(X2)) → ok(sel1(X1, X2))quote(ok(X)) → ok(quote(X))
top(mark(X)) → top(proper(X))top(ok(X)) → top(active(X))

Original Signature

Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, ok, proper, sel, cons, nil, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

active#(s1(X)) → active#(X)active#(dbl1(X)) → active#(X)
active#(sel(X1, X2)) → active#(X2)active#(sel1(X1, X2)) → active#(X2)
active#(sel(X1, X2)) → active#(X1)active#(indx(X1, X2)) → active#(X1)
active#(dbls(X)) → active#(X)active#(dbl(X)) → active#(X)
active#(sel1(X1, X2)) → active#(X1)active#(quote(X)) → active#(X)

Problem 12: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

quote#(ok(X)) → quote#(X)quote#(mark(X)) → quote#(X)

Rewrite Rules

active(dbl(0)) → mark(0)active(dbl(s(X))) → mark(s(s(dbl(X))))
active(dbls(nil)) → mark(nil)active(dbls(cons(X, Y))) → mark(cons(dbl(X), dbls(Y)))
active(sel(0, cons(X, Y))) → mark(X)active(sel(s(X), cons(Y, Z))) → mark(sel(X, Z))
active(indx(nil, X)) → mark(nil)active(indx(cons(X, Y), Z)) → mark(cons(sel(X, Z), indx(Y, Z)))
active(from(X)) → mark(cons(X, from(s(X))))active(dbl1(0)) → mark(01)
active(dbl1(s(X))) → mark(s1(s1(dbl1(X))))active(sel1(0, cons(X, Y))) → mark(X)
active(sel1(s(X), cons(Y, Z))) → mark(sel1(X, Z))active(quote(0)) → mark(01)
active(quote(s(X))) → mark(s1(quote(X)))active(quote(dbl(X))) → mark(dbl1(X))
active(quote(sel(X, Y))) → mark(sel1(X, Y))active(dbl(X)) → dbl(active(X))
active(dbls(X)) → dbls(active(X))active(sel(X1, X2)) → sel(active(X1), X2)
active(sel(X1, X2)) → sel(X1, active(X2))active(indx(X1, X2)) → indx(active(X1), X2)
active(dbl1(X)) → dbl1(active(X))active(s1(X)) → s1(active(X))
active(sel1(X1, X2)) → sel1(active(X1), X2)active(sel1(X1, X2)) → sel1(X1, active(X2))
active(quote(X)) → quote(active(X))dbl(mark(X)) → mark(dbl(X))
dbls(mark(X)) → mark(dbls(X))sel(mark(X1), X2) → mark(sel(X1, X2))
sel(X1, mark(X2)) → mark(sel(X1, X2))indx(mark(X1), X2) → mark(indx(X1, X2))
dbl1(mark(X)) → mark(dbl1(X))s1(mark(X)) → mark(s1(X))
sel1(mark(X1), X2) → mark(sel1(X1, X2))sel1(X1, mark(X2)) → mark(sel1(X1, X2))
quote(mark(X)) → mark(quote(X))proper(dbl(X)) → dbl(proper(X))
proper(0) → ok(0)proper(s(X)) → s(proper(X))
proper(dbls(X)) → dbls(proper(X))proper(nil) → ok(nil)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))proper(sel(X1, X2)) → sel(proper(X1), proper(X2))
proper(indx(X1, X2)) → indx(proper(X1), proper(X2))proper(from(X)) → from(proper(X))
proper(dbl1(X)) → dbl1(proper(X))proper(01) → ok(01)
proper(s1(X)) → s1(proper(X))proper(sel1(X1, X2)) → sel1(proper(X1), proper(X2))
proper(quote(X)) → quote(proper(X))dbl(ok(X)) → ok(dbl(X))
s(ok(X)) → ok(s(X))dbls(ok(X)) → ok(dbls(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))sel(ok(X1), ok(X2)) → ok(sel(X1, X2))
indx(ok(X1), ok(X2)) → ok(indx(X1, X2))from(ok(X)) → ok(from(X))
dbl1(ok(X)) → ok(dbl1(X))s1(ok(X)) → ok(s1(X))
sel1(ok(X1), ok(X2)) → ok(sel1(X1, X2))quote(ok(X)) → ok(quote(X))
top(mark(X)) → top(proper(X))top(ok(X)) → top(active(X))

Original Signature

Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, ok, proper, sel, cons, nil, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

quote#(ok(X)) → quote#(X)quote#(mark(X)) → quote#(X)

Problem 13: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

sel#(mark(X1), X2) → sel#(X1, X2)sel#(ok(X1), ok(X2)) → sel#(X1, X2)
sel#(X1, mark(X2)) → sel#(X1, X2)

Rewrite Rules

active(dbl(0)) → mark(0)active(dbl(s(X))) → mark(s(s(dbl(X))))
active(dbls(nil)) → mark(nil)active(dbls(cons(X, Y))) → mark(cons(dbl(X), dbls(Y)))
active(sel(0, cons(X, Y))) → mark(X)active(sel(s(X), cons(Y, Z))) → mark(sel(X, Z))
active(indx(nil, X)) → mark(nil)active(indx(cons(X, Y), Z)) → mark(cons(sel(X, Z), indx(Y, Z)))
active(from(X)) → mark(cons(X, from(s(X))))active(dbl1(0)) → mark(01)
active(dbl1(s(X))) → mark(s1(s1(dbl1(X))))active(sel1(0, cons(X, Y))) → mark(X)
active(sel1(s(X), cons(Y, Z))) → mark(sel1(X, Z))active(quote(0)) → mark(01)
active(quote(s(X))) → mark(s1(quote(X)))active(quote(dbl(X))) → mark(dbl1(X))
active(quote(sel(X, Y))) → mark(sel1(X, Y))active(dbl(X)) → dbl(active(X))
active(dbls(X)) → dbls(active(X))active(sel(X1, X2)) → sel(active(X1), X2)
active(sel(X1, X2)) → sel(X1, active(X2))active(indx(X1, X2)) → indx(active(X1), X2)
active(dbl1(X)) → dbl1(active(X))active(s1(X)) → s1(active(X))
active(sel1(X1, X2)) → sel1(active(X1), X2)active(sel1(X1, X2)) → sel1(X1, active(X2))
active(quote(X)) → quote(active(X))dbl(mark(X)) → mark(dbl(X))
dbls(mark(X)) → mark(dbls(X))sel(mark(X1), X2) → mark(sel(X1, X2))
sel(X1, mark(X2)) → mark(sel(X1, X2))indx(mark(X1), X2) → mark(indx(X1, X2))
dbl1(mark(X)) → mark(dbl1(X))s1(mark(X)) → mark(s1(X))
sel1(mark(X1), X2) → mark(sel1(X1, X2))sel1(X1, mark(X2)) → mark(sel1(X1, X2))
quote(mark(X)) → mark(quote(X))proper(dbl(X)) → dbl(proper(X))
proper(0) → ok(0)proper(s(X)) → s(proper(X))
proper(dbls(X)) → dbls(proper(X))proper(nil) → ok(nil)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))proper(sel(X1, X2)) → sel(proper(X1), proper(X2))
proper(indx(X1, X2)) → indx(proper(X1), proper(X2))proper(from(X)) → from(proper(X))
proper(dbl1(X)) → dbl1(proper(X))proper(01) → ok(01)
proper(s1(X)) → s1(proper(X))proper(sel1(X1, X2)) → sel1(proper(X1), proper(X2))
proper(quote(X)) → quote(proper(X))dbl(ok(X)) → ok(dbl(X))
s(ok(X)) → ok(s(X))dbls(ok(X)) → ok(dbls(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))sel(ok(X1), ok(X2)) → ok(sel(X1, X2))
indx(ok(X1), ok(X2)) → ok(indx(X1, X2))from(ok(X)) → ok(from(X))
dbl1(ok(X)) → ok(dbl1(X))s1(ok(X)) → ok(s1(X))
sel1(ok(X1), ok(X2)) → ok(sel1(X1, X2))quote(ok(X)) → ok(quote(X))
top(mark(X)) → top(proper(X))top(ok(X)) → top(active(X))

Original Signature

Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, ok, proper, sel, cons, nil, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

sel#(mark(X1), X2) → sel#(X1, X2)sel#(ok(X1), ok(X2)) → sel#(X1, X2)

Problem 17: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

sel#(X1, mark(X2)) → sel#(X1, X2)

Rewrite Rules

active(dbl(0)) → mark(0)active(dbl(s(X))) → mark(s(s(dbl(X))))
active(dbls(nil)) → mark(nil)active(dbls(cons(X, Y))) → mark(cons(dbl(X), dbls(Y)))
active(sel(0, cons(X, Y))) → mark(X)active(sel(s(X), cons(Y, Z))) → mark(sel(X, Z))
active(indx(nil, X)) → mark(nil)active(indx(cons(X, Y), Z)) → mark(cons(sel(X, Z), indx(Y, Z)))
active(from(X)) → mark(cons(X, from(s(X))))active(dbl1(0)) → mark(01)
active(dbl1(s(X))) → mark(s1(s1(dbl1(X))))active(sel1(0, cons(X, Y))) → mark(X)
active(sel1(s(X), cons(Y, Z))) → mark(sel1(X, Z))active(quote(0)) → mark(01)
active(quote(s(X))) → mark(s1(quote(X)))active(quote(dbl(X))) → mark(dbl1(X))
active(quote(sel(X, Y))) → mark(sel1(X, Y))active(dbl(X)) → dbl(active(X))
active(dbls(X)) → dbls(active(X))active(sel(X1, X2)) → sel(active(X1), X2)
active(sel(X1, X2)) → sel(X1, active(X2))active(indx(X1, X2)) → indx(active(X1), X2)
active(dbl1(X)) → dbl1(active(X))active(s1(X)) → s1(active(X))
active(sel1(X1, X2)) → sel1(active(X1), X2)active(sel1(X1, X2)) → sel1(X1, active(X2))
active(quote(X)) → quote(active(X))dbl(mark(X)) → mark(dbl(X))
dbls(mark(X)) → mark(dbls(X))sel(mark(X1), X2) → mark(sel(X1, X2))
sel(X1, mark(X2)) → mark(sel(X1, X2))indx(mark(X1), X2) → mark(indx(X1, X2))
dbl1(mark(X)) → mark(dbl1(X))s1(mark(X)) → mark(s1(X))
sel1(mark(X1), X2) → mark(sel1(X1, X2))sel1(X1, mark(X2)) → mark(sel1(X1, X2))
quote(mark(X)) → mark(quote(X))proper(dbl(X)) → dbl(proper(X))
proper(0) → ok(0)proper(s(X)) → s(proper(X))
proper(dbls(X)) → dbls(proper(X))proper(nil) → ok(nil)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))proper(sel(X1, X2)) → sel(proper(X1), proper(X2))
proper(indx(X1, X2)) → indx(proper(X1), proper(X2))proper(from(X)) → from(proper(X))
proper(dbl1(X)) → dbl1(proper(X))proper(01) → ok(01)
proper(s1(X)) → s1(proper(X))proper(sel1(X1, X2)) → sel1(proper(X1), proper(X2))
proper(quote(X)) → quote(proper(X))dbl(ok(X)) → ok(dbl(X))
s(ok(X)) → ok(s(X))dbls(ok(X)) → ok(dbls(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))sel(ok(X1), ok(X2)) → ok(sel(X1, X2))
indx(ok(X1), ok(X2)) → ok(indx(X1, X2))from(ok(X)) → ok(from(X))
dbl1(ok(X)) → ok(dbl1(X))s1(ok(X)) → ok(s1(X))
sel1(ok(X1), ok(X2)) → ok(sel1(X1, X2))quote(ok(X)) → ok(quote(X))
top(mark(X)) → top(proper(X))top(ok(X)) → top(active(X))

Original Signature

Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, ok, proper, sel, top, nil, cons

Strategy


Polynomial Interpretation

There are no usable rules

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

sel#(X1, mark(X2)) → sel#(X1, X2)

Problem 14: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

dbls#(ok(X)) → dbls#(X)dbls#(mark(X)) → dbls#(X)

Rewrite Rules

active(dbl(0)) → mark(0)active(dbl(s(X))) → mark(s(s(dbl(X))))
active(dbls(nil)) → mark(nil)active(dbls(cons(X, Y))) → mark(cons(dbl(X), dbls(Y)))
active(sel(0, cons(X, Y))) → mark(X)active(sel(s(X), cons(Y, Z))) → mark(sel(X, Z))
active(indx(nil, X)) → mark(nil)active(indx(cons(X, Y), Z)) → mark(cons(sel(X, Z), indx(Y, Z)))
active(from(X)) → mark(cons(X, from(s(X))))active(dbl1(0)) → mark(01)
active(dbl1(s(X))) → mark(s1(s1(dbl1(X))))active(sel1(0, cons(X, Y))) → mark(X)
active(sel1(s(X), cons(Y, Z))) → mark(sel1(X, Z))active(quote(0)) → mark(01)
active(quote(s(X))) → mark(s1(quote(X)))active(quote(dbl(X))) → mark(dbl1(X))
active(quote(sel(X, Y))) → mark(sel1(X, Y))active(dbl(X)) → dbl(active(X))
active(dbls(X)) → dbls(active(X))active(sel(X1, X2)) → sel(active(X1), X2)
active(sel(X1, X2)) → sel(X1, active(X2))active(indx(X1, X2)) → indx(active(X1), X2)
active(dbl1(X)) → dbl1(active(X))active(s1(X)) → s1(active(X))
active(sel1(X1, X2)) → sel1(active(X1), X2)active(sel1(X1, X2)) → sel1(X1, active(X2))
active(quote(X)) → quote(active(X))dbl(mark(X)) → mark(dbl(X))
dbls(mark(X)) → mark(dbls(X))sel(mark(X1), X2) → mark(sel(X1, X2))
sel(X1, mark(X2)) → mark(sel(X1, X2))indx(mark(X1), X2) → mark(indx(X1, X2))
dbl1(mark(X)) → mark(dbl1(X))s1(mark(X)) → mark(s1(X))
sel1(mark(X1), X2) → mark(sel1(X1, X2))sel1(X1, mark(X2)) → mark(sel1(X1, X2))
quote(mark(X)) → mark(quote(X))proper(dbl(X)) → dbl(proper(X))
proper(0) → ok(0)proper(s(X)) → s(proper(X))
proper(dbls(X)) → dbls(proper(X))proper(nil) → ok(nil)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))proper(sel(X1, X2)) → sel(proper(X1), proper(X2))
proper(indx(X1, X2)) → indx(proper(X1), proper(X2))proper(from(X)) → from(proper(X))
proper(dbl1(X)) → dbl1(proper(X))proper(01) → ok(01)
proper(s1(X)) → s1(proper(X))proper(sel1(X1, X2)) → sel1(proper(X1), proper(X2))
proper(quote(X)) → quote(proper(X))dbl(ok(X)) → ok(dbl(X))
s(ok(X)) → ok(s(X))dbls(ok(X)) → ok(dbls(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))sel(ok(X1), ok(X2)) → ok(sel(X1, X2))
indx(ok(X1), ok(X2)) → ok(indx(X1, X2))from(ok(X)) → ok(from(X))
dbl1(ok(X)) → ok(dbl1(X))s1(ok(X)) → ok(s1(X))
sel1(ok(X1), ok(X2)) → ok(sel1(X1, X2))quote(ok(X)) → ok(quote(X))
top(mark(X)) → top(proper(X))top(ok(X)) → top(active(X))

Original Signature

Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, ok, proper, sel, cons, nil, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

dbls#(ok(X)) → dbls#(X)dbls#(mark(X)) → dbls#(X)

Problem 15: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

s#(ok(X)) → s#(X)

Rewrite Rules

active(dbl(0)) → mark(0)active(dbl(s(X))) → mark(s(s(dbl(X))))
active(dbls(nil)) → mark(nil)active(dbls(cons(X, Y))) → mark(cons(dbl(X), dbls(Y)))
active(sel(0, cons(X, Y))) → mark(X)active(sel(s(X), cons(Y, Z))) → mark(sel(X, Z))
active(indx(nil, X)) → mark(nil)active(indx(cons(X, Y), Z)) → mark(cons(sel(X, Z), indx(Y, Z)))
active(from(X)) → mark(cons(X, from(s(X))))active(dbl1(0)) → mark(01)
active(dbl1(s(X))) → mark(s1(s1(dbl1(X))))active(sel1(0, cons(X, Y))) → mark(X)
active(sel1(s(X), cons(Y, Z))) → mark(sel1(X, Z))active(quote(0)) → mark(01)
active(quote(s(X))) → mark(s1(quote(X)))active(quote(dbl(X))) → mark(dbl1(X))
active(quote(sel(X, Y))) → mark(sel1(X, Y))active(dbl(X)) → dbl(active(X))
active(dbls(X)) → dbls(active(X))active(sel(X1, X2)) → sel(active(X1), X2)
active(sel(X1, X2)) → sel(X1, active(X2))active(indx(X1, X2)) → indx(active(X1), X2)
active(dbl1(X)) → dbl1(active(X))active(s1(X)) → s1(active(X))
active(sel1(X1, X2)) → sel1(active(X1), X2)active(sel1(X1, X2)) → sel1(X1, active(X2))
active(quote(X)) → quote(active(X))dbl(mark(X)) → mark(dbl(X))
dbls(mark(X)) → mark(dbls(X))sel(mark(X1), X2) → mark(sel(X1, X2))
sel(X1, mark(X2)) → mark(sel(X1, X2))indx(mark(X1), X2) → mark(indx(X1, X2))
dbl1(mark(X)) → mark(dbl1(X))s1(mark(X)) → mark(s1(X))
sel1(mark(X1), X2) → mark(sel1(X1, X2))sel1(X1, mark(X2)) → mark(sel1(X1, X2))
quote(mark(X)) → mark(quote(X))proper(dbl(X)) → dbl(proper(X))
proper(0) → ok(0)proper(s(X)) → s(proper(X))
proper(dbls(X)) → dbls(proper(X))proper(nil) → ok(nil)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))proper(sel(X1, X2)) → sel(proper(X1), proper(X2))
proper(indx(X1, X2)) → indx(proper(X1), proper(X2))proper(from(X)) → from(proper(X))
proper(dbl1(X)) → dbl1(proper(X))proper(01) → ok(01)
proper(s1(X)) → s1(proper(X))proper(sel1(X1, X2)) → sel1(proper(X1), proper(X2))
proper(quote(X)) → quote(proper(X))dbl(ok(X)) → ok(dbl(X))
s(ok(X)) → ok(s(X))dbls(ok(X)) → ok(dbls(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))sel(ok(X1), ok(X2)) → ok(sel(X1, X2))
indx(ok(X1), ok(X2)) → ok(indx(X1, X2))from(ok(X)) → ok(from(X))
dbl1(ok(X)) → ok(dbl1(X))s1(ok(X)) → ok(s1(X))
sel1(ok(X1), ok(X2)) → ok(sel1(X1, X2))quote(ok(X)) → ok(quote(X))
top(mark(X)) → top(proper(X))top(ok(X)) → top(active(X))

Original Signature

Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, ok, proper, sel, cons, nil, top

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

s#(ok(X)) → s#(X)