TIMEOUT
The TRS could not be proven terminating. The proof attempt took 60045 ms.
The following DP Processors were used
Problem 1 was processed with processor DependencyGraph (10957ms).
| Problem 2 was processed with processor SubtermCriterion (1ms).
| Problem 3 was processed with processor SubtermCriterion (1ms).
| Problem 4 was processed with processor SubtermCriterion (1ms).
| Problem 5 remains open; application of the following processors failed [SubtermCriterion (1ms), DependencyGraph (1838ms), PolynomialLinearRange4iUR (2021ms), DependencyGraph (1838ms), PolynomialLinearRange4iUR (2032ms), DependencyGraph (1970ms), PolynomialLinearRange4iUR (3333ms), DependencyGraph (1842ms), PolynomialLinearRange8NegiUR (10000ms), DependencyGraph (1840ms), ReductionPairSAT (timeout)].
| Problem 6 was processed with processor SubtermCriterion (1ms).
| | Problem 14 remains open; application of the following processors failed [DependencyGraph (5ms), PolynomialLinearRange4iUR (1ms), DependencyGraph (4ms), PolynomialLinearRange4iUR (18ms), DependencyGraph (4ms), PolynomialLinearRange4iUR (10ms), DependencyGraph (4ms), PolynomialLinearRange8NegiUR (26ms), DependencyGraph (4ms)].
| Problem 7 was processed with processor SubtermCriterion (1ms).
| Problem 8 was processed with processor SubtermCriterion (1ms).
| Problem 9 was processed with processor SubtermCriterion (1ms).
| Problem 10 was processed with processor SubtermCriterion (2ms).
| Problem 11 was processed with processor SubtermCriterion (2ms).
| | Problem 15 remains open; application of the following processors failed [DependencyGraph (5ms), PolynomialLinearRange4iUR (13ms), DependencyGraph (5ms), PolynomialLinearRange4iUR (12ms), DependencyGraph (4ms), PolynomialLinearRange4iUR (1ms), DependencyGraph (4ms), PolynomialLinearRange8NegiUR (37ms), DependencyGraph (5ms)].
| Problem 12 was processed with processor SubtermCriterion (1ms).
| | Problem 16 was processed with processor PolynomialLinearRange4iUR (54ms).
| | | Problem 19 was processed with processor PolynomialLinearRange4iUR (25ms).
| Problem 13 was processed with processor SubtermCriterion (1ms).
| | Problem 17 was processed with processor PolynomialLinearRange4iUR (124ms).
| | | Problem 18 was processed with processor PolynomialLinearRange4iUR (55ms).
The following open problems remain:
Open Dependency Pair Problem 5
Dependency Pairs
| active#(sel(0, cons(X, Y))) | → | mark#(X) | | mark#(dbls(X)) | → | mark#(X) |
| mark#(dbls(X)) | → | active#(dbls(mark(X))) | | mark#(sel1(X1, X2)) | → | active#(sel1(mark(X1), mark(X2))) |
| mark#(01) | → | active#(01) | | active#(dbl(s(X))) | → | mark#(s(s(dbl(X)))) |
| mark#(quote(X)) | → | mark#(X) | | mark#(dbl1(X)) | → | active#(dbl1(mark(X))) |
| active#(dbl1(s(X))) | → | mark#(s1(s1(dbl1(X)))) | | active#(sel(s(X), cons(Y, Z))) | → | mark#(sel(X, Z)) |
| mark#(nil) | → | active#(nil) | | active#(dbls(cons(X, Y))) | → | mark#(cons(dbl(X), dbls(Y))) |
| active#(indx(nil, X)) | → | mark#(nil) | | mark#(indx(X1, X2)) | → | active#(indx(mark(X1), X2)) |
| mark#(sel(X1, X2)) | → | mark#(X2) | | active#(quote(dbl(X))) | → | mark#(dbl1(X)) |
| mark#(quote(X)) | → | active#(quote(mark(X))) | | active#(indx(cons(X, Y), Z)) | → | mark#(cons(sel(X, Z), indx(Y, Z))) |
| mark#(sel(X1, X2)) | → | mark#(X1) | | mark#(dbl1(X)) | → | mark#(X) |
| active#(quote(s(X))) | → | mark#(s1(quote(X))) | | mark#(0) | → | active#(0) |
| active#(dbl1(0)) | → | mark#(01) | | active#(quote(0)) | → | mark#(01) |
| mark#(sel1(X1, X2)) | → | mark#(X2) | | mark#(dbl(X)) | → | active#(dbl(mark(X))) |
| active#(quote(sel(X, Y))) | → | mark#(sel1(X, Y)) | | mark#(indx(X1, X2)) | → | mark#(X1) |
| mark#(from(X)) | → | active#(from(X)) | | active#(from(X)) | → | mark#(cons(X, from(s(X)))) |
| mark#(sel(X1, X2)) | → | active#(sel(mark(X1), mark(X2))) | | mark#(s(X)) | → | active#(s(X)) |
| mark#(dbl(X)) | → | mark#(X) | | mark#(cons(X1, X2)) | → | active#(cons(X1, X2)) |
| mark#(s1(X)) | → | mark#(X) | | active#(sel1(s(X), cons(Y, Z))) | → | mark#(sel1(X, Z)) |
| active#(dbl(0)) | → | mark#(0) | | mark#(s1(X)) | → | active#(s1(mark(X))) |
| mark#(sel1(X1, X2)) | → | mark#(X1) | | active#(dbls(nil)) | → | mark#(nil) |
| active#(sel1(0, cons(X, Y))) | → | mark#(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)) | | mark(dbl(X)) | → | active(dbl(mark(X))) |
| mark(0) | → | active(0) | | mark(s(X)) | → | active(s(X)) |
| mark(dbls(X)) | → | active(dbls(mark(X))) | | mark(nil) | → | active(nil) |
| mark(cons(X1, X2)) | → | active(cons(X1, X2)) | | mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) |
| mark(indx(X1, X2)) | → | active(indx(mark(X1), X2)) | | mark(from(X)) | → | active(from(X)) |
| mark(dbl1(X)) | → | active(dbl1(mark(X))) | | mark(01) | → | active(01) |
| mark(s1(X)) | → | active(s1(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
| mark(quote(X)) | → | active(quote(mark(X))) | | dbl(mark(X)) | → | dbl(X) |
| dbl(active(X)) | → | dbl(X) | | s(mark(X)) | → | s(X) |
| s(active(X)) | → | s(X) | | dbls(mark(X)) | → | dbls(X) |
| dbls(active(X)) | → | dbls(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) | | 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) | | indx(mark(X1), X2) | → | indx(X1, X2) |
| indx(X1, mark(X2)) | → | indx(X1, X2) | | indx(active(X1), X2) | → | indx(X1, X2) |
| indx(X1, active(X2)) | → | indx(X1, X2) | | from(mark(X)) | → | from(X) |
| from(active(X)) | → | from(X) | | dbl1(mark(X)) | → | dbl1(X) |
| dbl1(active(X)) | → | dbl1(X) | | s1(mark(X)) | → | s1(X) |
| s1(active(X)) | → | s1(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) |
Original Signature
Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, sel, nil, cons
Open Dependency Pair Problem 14
Dependency Pairs
| cons#(X1, active(X2)) | → | cons#(X1, X2) | | cons#(X1, mark(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)) | | mark(dbl(X)) | → | active(dbl(mark(X))) |
| mark(0) | → | active(0) | | mark(s(X)) | → | active(s(X)) |
| mark(dbls(X)) | → | active(dbls(mark(X))) | | mark(nil) | → | active(nil) |
| mark(cons(X1, X2)) | → | active(cons(X1, X2)) | | mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) |
| mark(indx(X1, X2)) | → | active(indx(mark(X1), X2)) | | mark(from(X)) | → | active(from(X)) |
| mark(dbl1(X)) | → | active(dbl1(mark(X))) | | mark(01) | → | active(01) |
| mark(s1(X)) | → | active(s1(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
| mark(quote(X)) | → | active(quote(mark(X))) | | dbl(mark(X)) | → | dbl(X) |
| dbl(active(X)) | → | dbl(X) | | s(mark(X)) | → | s(X) |
| s(active(X)) | → | s(X) | | dbls(mark(X)) | → | dbls(X) |
| dbls(active(X)) | → | dbls(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) | | 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) | | indx(mark(X1), X2) | → | indx(X1, X2) |
| indx(X1, mark(X2)) | → | indx(X1, X2) | | indx(active(X1), X2) | → | indx(X1, X2) |
| indx(X1, active(X2)) | → | indx(X1, X2) | | from(mark(X)) | → | from(X) |
| from(active(X)) | → | from(X) | | dbl1(mark(X)) | → | dbl1(X) |
| dbl1(active(X)) | → | dbl1(X) | | s1(mark(X)) | → | s1(X) |
| s1(active(X)) | → | s1(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) |
Original Signature
Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, sel, cons, nil
Open Dependency Pair Problem 15
Dependency Pairs
| sel1#(X1, mark(X2)) | → | sel1#(X1, X2) | | sel1#(X1, active(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)) | | mark(dbl(X)) | → | active(dbl(mark(X))) |
| mark(0) | → | active(0) | | mark(s(X)) | → | active(s(X)) |
| mark(dbls(X)) | → | active(dbls(mark(X))) | | mark(nil) | → | active(nil) |
| mark(cons(X1, X2)) | → | active(cons(X1, X2)) | | mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) |
| mark(indx(X1, X2)) | → | active(indx(mark(X1), X2)) | | mark(from(X)) | → | active(from(X)) |
| mark(dbl1(X)) | → | active(dbl1(mark(X))) | | mark(01) | → | active(01) |
| mark(s1(X)) | → | active(s1(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
| mark(quote(X)) | → | active(quote(mark(X))) | | dbl(mark(X)) | → | dbl(X) |
| dbl(active(X)) | → | dbl(X) | | s(mark(X)) | → | s(X) |
| s(active(X)) | → | s(X) | | dbls(mark(X)) | → | dbls(X) |
| dbls(active(X)) | → | dbls(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) | | 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) | | indx(mark(X1), X2) | → | indx(X1, X2) |
| indx(X1, mark(X2)) | → | indx(X1, X2) | | indx(active(X1), X2) | → | indx(X1, X2) |
| indx(X1, active(X2)) | → | indx(X1, X2) | | from(mark(X)) | → | from(X) |
| from(active(X)) | → | from(X) | | dbl1(mark(X)) | → | dbl1(X) |
| dbl1(active(X)) | → | dbl1(X) | | s1(mark(X)) | → | s1(X) |
| s1(active(X)) | → | s1(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) |
Original Signature
Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, sel, cons, nil
Problem 1: DependencyGraph
Dependency Pair Problem
Dependency Pairs
| mark#(s1(X)) | → | s1#(mark(X)) | | mark#(dbls(X)) | → | dbls#(mark(X)) |
| active#(dbl(s(X))) | → | s#(dbl(X)) | | mark#(01) | → | active#(01) |
| active#(dbls(cons(X, Y))) | → | cons#(dbl(X), dbls(Y)) | | dbls#(mark(X)) | → | dbls#(X) |
| mark#(quote(X)) | → | mark#(X) | | active#(dbl1(s(X))) | → | mark#(s1(s1(dbl1(X)))) |
| active#(indx(nil, X)) | → | mark#(nil) | | mark#(indx(X1, X2)) | → | active#(indx(mark(X1), X2)) |
| mark#(sel(X1, X2)) | → | mark#(X1) | | indx#(mark(X1), X2) | → | indx#(X1, X2) |
| mark#(dbl1(X)) | → | mark#(X) | | s1#(active(X)) | → | s1#(X) |
| active#(sel(s(X), cons(Y, Z))) | → | sel#(X, Z) | | active#(dbl1(0)) | → | mark#(01) |
| active#(dbl(s(X))) | → | s#(s(dbl(X))) | | active#(quote(s(X))) | → | quote#(X) |
| mark#(dbl(X)) | → | active#(dbl(mark(X))) | | active#(quote(sel(X, Y))) | → | mark#(sel1(X, Y)) |
| mark#(indx(X1, X2)) | → | indx#(mark(X1), X2) | | active#(from(X)) | → | mark#(cons(X, from(s(X)))) |
| sel#(X1, mark(X2)) | → | sel#(X1, X2) | | quote#(mark(X)) | → | quote#(X) |
| sel#(X1, active(X2)) | → | sel#(X1, X2) | | active#(dbl(0)) | → | mark#(0) |
| mark#(s1(X)) | → | active#(s1(mark(X))) | | active#(quote(s(X))) | → | s1#(quote(X)) |
| active#(sel1(0, cons(X, Y))) | → | mark#(X) | | mark#(dbl1(X)) | → | dbl1#(mark(X)) |
| active#(sel(0, cons(X, Y))) | → | mark#(X) | | active#(dbl1(s(X))) | → | s1#(s1(dbl1(X))) |
| cons#(mark(X1), X2) | → | cons#(X1, X2) | | mark#(cons(X1, X2)) | → | cons#(X1, X2) |
| from#(mark(X)) | → | from#(X) | | mark#(from(X)) | → | from#(X) |
| active#(indx(cons(X, Y), Z)) | → | indx#(Y, Z) | | active#(dbl(s(X))) | → | mark#(s(s(dbl(X)))) |
| sel1#(X1, mark(X2)) | → | sel1#(X1, X2) | | active#(dbls(cons(X, Y))) | → | mark#(cons(dbl(X), dbls(Y))) |
| active#(quote(sel(X, Y))) | → | sel1#(X, Y) | | cons#(X1, mark(X2)) | → | cons#(X1, X2) |
| active#(dbls(cons(X, Y))) | → | dbl#(X) | | mark#(0) | → | active#(0) |
| indx#(X1, active(X2)) | → | indx#(X1, X2) | | mark#(sel1(X1, X2)) | → | mark#(X2) |
| cons#(active(X1), X2) | → | cons#(X1, X2) | | mark#(cons(X1, X2)) | → | active#(cons(X1, X2)) |
| mark#(s1(X)) | → | mark#(X) | | active#(quote(dbl(X))) | → | dbl1#(X) |
| mark#(sel1(X1, X2)) | → | sel1#(mark(X1), mark(X2)) | | active#(dbls(nil)) | → | mark#(nil) |
| active#(from(X)) | → | from#(s(X)) | | quote#(active(X)) | → | quote#(X) |
| mark#(dbls(X)) | → | active#(dbls(mark(X))) | | dbls#(active(X)) | → | dbls#(X) |
| mark#(quote(X)) | → | quote#(mark(X)) | | mark#(sel1(X1, X2)) | → | active#(sel1(mark(X1), mark(X2))) |
| sel1#(X1, active(X2)) | → | sel1#(X1, X2) | | dbl1#(active(X)) | → | dbl1#(X) |
| mark#(dbl(X)) | → | dbl#(mark(X)) | | active#(quote(dbl(X))) | → | mark#(dbl1(X)) |
| active#(dbl(s(X))) | → | dbl#(X) | | active#(quote(s(X))) | → | mark#(s1(quote(X))) |
| mark#(sel(X1, X2)) | → | sel#(mark(X1), mark(X2)) | | mark#(sel(X1, X2)) | → | active#(sel(mark(X1), mark(X2))) |
| mark#(s(X)) | → | active#(s(X)) | | dbl1#(mark(X)) | → | dbl1#(X) |
| active#(indx(cons(X, Y), Z)) | → | cons#(sel(X, Z), indx(Y, Z)) | | active#(from(X)) | → | s#(X) |
| sel#(active(X1), X2) | → | sel#(X1, X2) | | cons#(X1, active(X2)) | → | cons#(X1, X2) |
| active#(dbl1(s(X))) | → | s1#(dbl1(X)) | | sel1#(mark(X1), X2) | → | sel1#(X1, X2) |
| from#(active(X)) | → | from#(X) | | indx#(active(X1), X2) | → | indx#(X1, X2) |
| sel#(mark(X1), X2) | → | sel#(X1, X2) | | mark#(dbls(X)) | → | mark#(X) |
| active#(dbls(cons(X, Y))) | → | dbls#(Y) | | active#(dbl1(s(X))) | → | dbl1#(X) |
| mark#(dbl1(X)) | → | active#(dbl1(mark(X))) | | 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) |
| active#(indx(cons(X, Y), Z)) | → | sel#(X, Z) | | mark#(sel(X1, X2)) | → | mark#(X2) |
| active#(from(X)) | → | cons#(X, from(s(X))) | | mark#(quote(X)) | → | active#(quote(mark(X))) |
| active#(indx(cons(X, Y), Z)) | → | mark#(cons(sel(X, Z), indx(Y, Z))) | | sel1#(active(X1), X2) | → | sel1#(X1, X2) |
| s1#(mark(X)) | → | s1#(X) | | active#(quote(0)) | → | mark#(01) |
| mark#(indx(X1, X2)) | → | mark#(X1) | | mark#(from(X)) | → | active#(from(X)) |
| dbl#(mark(X)) | → | dbl#(X) | | mark#(dbl(X)) | → | mark#(X) |
| indx#(X1, mark(X2)) | → | indx#(X1, X2) | | s#(mark(X)) | → | s#(X) |
| mark#(s(X)) | → | s#(X) | | active#(sel1(s(X), cons(Y, Z))) | → | mark#(sel1(X, Z)) |
| s#(active(X)) | → | s#(X) | | mark#(sel1(X1, X2)) | → | mark#(X1) |
| dbl#(active(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)) | | mark(dbl(X)) | → | active(dbl(mark(X))) |
| mark(0) | → | active(0) | | mark(s(X)) | → | active(s(X)) |
| mark(dbls(X)) | → | active(dbls(mark(X))) | | mark(nil) | → | active(nil) |
| mark(cons(X1, X2)) | → | active(cons(X1, X2)) | | mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) |
| mark(indx(X1, X2)) | → | active(indx(mark(X1), X2)) | | mark(from(X)) | → | active(from(X)) |
| mark(dbl1(X)) | → | active(dbl1(mark(X))) | | mark(01) | → | active(01) |
| mark(s1(X)) | → | active(s1(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
| mark(quote(X)) | → | active(quote(mark(X))) | | dbl(mark(X)) | → | dbl(X) |
| dbl(active(X)) | → | dbl(X) | | s(mark(X)) | → | s(X) |
| s(active(X)) | → | s(X) | | dbls(mark(X)) | → | dbls(X) |
| dbls(active(X)) | → | dbls(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) | | 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) | | indx(mark(X1), X2) | → | indx(X1, X2) |
| indx(X1, mark(X2)) | → | indx(X1, X2) | | indx(active(X1), X2) | → | indx(X1, X2) |
| indx(X1, active(X2)) | → | indx(X1, X2) | | from(mark(X)) | → | from(X) |
| from(active(X)) | → | from(X) | | dbl1(mark(X)) | → | dbl1(X) |
| dbl1(active(X)) | → | dbl1(X) | | s1(mark(X)) | → | s1(X) |
| s1(active(X)) | → | s1(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) |
Original Signature
Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, sel, cons, nil
Strategy
The following SCCs where found
| dbls#(active(X)) → dbls#(X) | dbls#(mark(X)) → dbls#(X) |
| indx#(X1, active(X2)) → indx#(X1, X2) | indx#(active(X1), X2) → indx#(X1, X2) |
| indx#(mark(X1), X2) → indx#(X1, X2) | indx#(X1, mark(X2)) → indx#(X1, X2) |
| from#(active(X)) → from#(X) | from#(mark(X)) → from#(X) |
| quote#(mark(X)) → quote#(X) | quote#(active(X)) → quote#(X) |
| s1#(active(X)) → s1#(X) | s1#(mark(X)) → s1#(X) |
| dbl#(mark(X)) → dbl#(X) | dbl#(active(X)) → dbl#(X) |
| 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) |
| s#(mark(X)) → s#(X) | s#(active(X)) → s#(X) |
| dbl1#(active(X)) → dbl1#(X) | dbl1#(mark(X)) → dbl1#(X) |
| 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) |
| active#(sel(0, cons(X, Y))) → mark#(X) | mark#(dbls(X)) → mark#(X) |
| mark#(dbls(X)) → active#(dbls(mark(X))) | mark#(sel1(X1, X2)) → active#(sel1(mark(X1), mark(X2))) |
| mark#(01) → active#(01) | active#(dbl(s(X))) → mark#(s(s(dbl(X)))) |
| mark#(quote(X)) → mark#(X) | mark#(dbl1(X)) → active#(dbl1(mark(X))) |
| active#(dbl1(s(X))) → mark#(s1(s1(dbl1(X)))) | active#(sel(s(X), cons(Y, Z))) → mark#(sel(X, Z)) |
| mark#(nil) → active#(nil) | active#(dbls(cons(X, Y))) → mark#(cons(dbl(X), dbls(Y))) |
| active#(indx(nil, X)) → mark#(nil) | mark#(sel(X1, X2)) → mark#(X2) |
| mark#(indx(X1, X2)) → active#(indx(mark(X1), X2)) | active#(quote(dbl(X))) → mark#(dbl1(X)) |
| mark#(quote(X)) → active#(quote(mark(X))) | mark#(sel(X1, X2)) → mark#(X1) |
| active#(indx(cons(X, Y), Z)) → mark#(cons(sel(X, Z), indx(Y, Z))) | mark#(dbl1(X)) → mark#(X) |
| active#(quote(s(X))) → mark#(s1(quote(X))) | mark#(0) → active#(0) |
| active#(dbl1(0)) → mark#(01) | active#(quote(0)) → mark#(01) |
| mark#(dbl(X)) → active#(dbl(mark(X))) | mark#(sel1(X1, X2)) → mark#(X2) |
| active#(quote(sel(X, Y))) → mark#(sel1(X, Y)) | mark#(from(X)) → active#(from(X)) |
| mark#(indx(X1, X2)) → mark#(X1) | mark#(sel(X1, X2)) → active#(sel(mark(X1), mark(X2))) |
| active#(from(X)) → mark#(cons(X, from(s(X)))) | mark#(dbl(X)) → mark#(X) |
| mark#(s(X)) → active#(s(X)) | mark#(cons(X1, X2)) → active#(cons(X1, X2)) |
| mark#(s1(X)) → mark#(X) | active#(sel1(s(X), cons(Y, Z))) → mark#(sel1(X, Z)) |
| active#(dbl(0)) → mark#(0) | mark#(s1(X)) → active#(s1(mark(X))) |
| mark#(sel1(X1, X2)) → mark#(X1) | active#(dbls(nil)) → mark#(nil) |
| active#(sel1(0, cons(X, Y))) → mark#(X) |
| 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: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
| dbl1#(active(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)) | | mark(dbl(X)) | → | active(dbl(mark(X))) |
| mark(0) | → | active(0) | | mark(s(X)) | → | active(s(X)) |
| mark(dbls(X)) | → | active(dbls(mark(X))) | | mark(nil) | → | active(nil) |
| mark(cons(X1, X2)) | → | active(cons(X1, X2)) | | mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) |
| mark(indx(X1, X2)) | → | active(indx(mark(X1), X2)) | | mark(from(X)) | → | active(from(X)) |
| mark(dbl1(X)) | → | active(dbl1(mark(X))) | | mark(01) | → | active(01) |
| mark(s1(X)) | → | active(s1(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
| mark(quote(X)) | → | active(quote(mark(X))) | | dbl(mark(X)) | → | dbl(X) |
| dbl(active(X)) | → | dbl(X) | | s(mark(X)) | → | s(X) |
| s(active(X)) | → | s(X) | | dbls(mark(X)) | → | dbls(X) |
| dbls(active(X)) | → | dbls(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) | | 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) | | indx(mark(X1), X2) | → | indx(X1, X2) |
| indx(X1, mark(X2)) | → | indx(X1, X2) | | indx(active(X1), X2) | → | indx(X1, X2) |
| indx(X1, active(X2)) | → | indx(X1, X2) | | from(mark(X)) | → | from(X) |
| from(active(X)) | → | from(X) | | dbl1(mark(X)) | → | dbl1(X) |
| dbl1(active(X)) | → | dbl1(X) | | s1(mark(X)) | → | s1(X) |
| s1(active(X)) | → | s1(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) |
Original Signature
Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, sel, cons, nil
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
| dbl1#(active(X)) | → | dbl1#(X) | | dbl1#(mark(X)) | → | dbl1#(X) |
Problem 3: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
| s#(mark(X)) | → | s#(X) | | s#(active(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)) | | mark(dbl(X)) | → | active(dbl(mark(X))) |
| mark(0) | → | active(0) | | mark(s(X)) | → | active(s(X)) |
| mark(dbls(X)) | → | active(dbls(mark(X))) | | mark(nil) | → | active(nil) |
| mark(cons(X1, X2)) | → | active(cons(X1, X2)) | | mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) |
| mark(indx(X1, X2)) | → | active(indx(mark(X1), X2)) | | mark(from(X)) | → | active(from(X)) |
| mark(dbl1(X)) | → | active(dbl1(mark(X))) | | mark(01) | → | active(01) |
| mark(s1(X)) | → | active(s1(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
| mark(quote(X)) | → | active(quote(mark(X))) | | dbl(mark(X)) | → | dbl(X) |
| dbl(active(X)) | → | dbl(X) | | s(mark(X)) | → | s(X) |
| s(active(X)) | → | s(X) | | dbls(mark(X)) | → | dbls(X) |
| dbls(active(X)) | → | dbls(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) | | 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) | | indx(mark(X1), X2) | → | indx(X1, X2) |
| indx(X1, mark(X2)) | → | indx(X1, X2) | | indx(active(X1), X2) | → | indx(X1, X2) |
| indx(X1, active(X2)) | → | indx(X1, X2) | | from(mark(X)) | → | from(X) |
| from(active(X)) | → | from(X) | | dbl1(mark(X)) | → | dbl1(X) |
| dbl1(active(X)) | → | dbl1(X) | | s1(mark(X)) | → | s1(X) |
| s1(active(X)) | → | s1(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) |
Original Signature
Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, sel, cons, nil
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 4: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
| s1#(active(X)) | → | s1#(X) | | s1#(mark(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)) | | mark(dbl(X)) | → | active(dbl(mark(X))) |
| mark(0) | → | active(0) | | mark(s(X)) | → | active(s(X)) |
| mark(dbls(X)) | → | active(dbls(mark(X))) | | mark(nil) | → | active(nil) |
| mark(cons(X1, X2)) | → | active(cons(X1, X2)) | | mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) |
| mark(indx(X1, X2)) | → | active(indx(mark(X1), X2)) | | mark(from(X)) | → | active(from(X)) |
| mark(dbl1(X)) | → | active(dbl1(mark(X))) | | mark(01) | → | active(01) |
| mark(s1(X)) | → | active(s1(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
| mark(quote(X)) | → | active(quote(mark(X))) | | dbl(mark(X)) | → | dbl(X) |
| dbl(active(X)) | → | dbl(X) | | s(mark(X)) | → | s(X) |
| s(active(X)) | → | s(X) | | dbls(mark(X)) | → | dbls(X) |
| dbls(active(X)) | → | dbls(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) | | 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) | | indx(mark(X1), X2) | → | indx(X1, X2) |
| indx(X1, mark(X2)) | → | indx(X1, X2) | | indx(active(X1), X2) | → | indx(X1, X2) |
| indx(X1, active(X2)) | → | indx(X1, X2) | | from(mark(X)) | → | from(X) |
| from(active(X)) | → | from(X) | | dbl1(mark(X)) | → | dbl1(X) |
| dbl1(active(X)) | → | dbl1(X) | | s1(mark(X)) | → | s1(X) |
| s1(active(X)) | → | s1(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) |
Original Signature
Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, sel, cons, nil
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 6: SubtermCriterion
Dependency Pair Problem
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(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)) | | mark(dbl(X)) | → | active(dbl(mark(X))) |
| mark(0) | → | active(0) | | mark(s(X)) | → | active(s(X)) |
| mark(dbls(X)) | → | active(dbls(mark(X))) | | mark(nil) | → | active(nil) |
| mark(cons(X1, X2)) | → | active(cons(X1, X2)) | | mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) |
| mark(indx(X1, X2)) | → | active(indx(mark(X1), X2)) | | mark(from(X)) | → | active(from(X)) |
| mark(dbl1(X)) | → | active(dbl1(mark(X))) | | mark(01) | → | active(01) |
| mark(s1(X)) | → | active(s1(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
| mark(quote(X)) | → | active(quote(mark(X))) | | dbl(mark(X)) | → | dbl(X) |
| dbl(active(X)) | → | dbl(X) | | s(mark(X)) | → | s(X) |
| s(active(X)) | → | s(X) | | dbls(mark(X)) | → | dbls(X) |
| dbls(active(X)) | → | dbls(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) | | 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) | | indx(mark(X1), X2) | → | indx(X1, X2) |
| indx(X1, mark(X2)) | → | indx(X1, X2) | | indx(active(X1), X2) | → | indx(X1, X2) |
| indx(X1, active(X2)) | → | indx(X1, X2) | | from(mark(X)) | → | from(X) |
| from(active(X)) | → | from(X) | | dbl1(mark(X)) | → | dbl1(X) |
| dbl1(active(X)) | → | dbl1(X) | | s1(mark(X)) | → | s1(X) |
| s1(active(X)) | → | s1(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) |
Original Signature
Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, sel, cons, nil
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 7: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
| dbl#(mark(X)) | → | dbl#(X) | | dbl#(active(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)) | | mark(dbl(X)) | → | active(dbl(mark(X))) |
| mark(0) | → | active(0) | | mark(s(X)) | → | active(s(X)) |
| mark(dbls(X)) | → | active(dbls(mark(X))) | | mark(nil) | → | active(nil) |
| mark(cons(X1, X2)) | → | active(cons(X1, X2)) | | mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) |
| mark(indx(X1, X2)) | → | active(indx(mark(X1), X2)) | | mark(from(X)) | → | active(from(X)) |
| mark(dbl1(X)) | → | active(dbl1(mark(X))) | | mark(01) | → | active(01) |
| mark(s1(X)) | → | active(s1(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
| mark(quote(X)) | → | active(quote(mark(X))) | | dbl(mark(X)) | → | dbl(X) |
| dbl(active(X)) | → | dbl(X) | | s(mark(X)) | → | s(X) |
| s(active(X)) | → | s(X) | | dbls(mark(X)) | → | dbls(X) |
| dbls(active(X)) | → | dbls(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) | | 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) | | indx(mark(X1), X2) | → | indx(X1, X2) |
| indx(X1, mark(X2)) | → | indx(X1, X2) | | indx(active(X1), X2) | → | indx(X1, X2) |
| indx(X1, active(X2)) | → | indx(X1, X2) | | from(mark(X)) | → | from(X) |
| from(active(X)) | → | from(X) | | dbl1(mark(X)) | → | dbl1(X) |
| dbl1(active(X)) | → | dbl1(X) | | s1(mark(X)) | → | s1(X) |
| s1(active(X)) | → | s1(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) |
Original Signature
Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, sel, cons, nil
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
| dbl#(mark(X)) | → | dbl#(X) | | dbl#(active(X)) | → | dbl#(X) |
Problem 8: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
| from#(active(X)) | → | from#(X) | | from#(mark(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)) | | mark(dbl(X)) | → | active(dbl(mark(X))) |
| mark(0) | → | active(0) | | mark(s(X)) | → | active(s(X)) |
| mark(dbls(X)) | → | active(dbls(mark(X))) | | mark(nil) | → | active(nil) |
| mark(cons(X1, X2)) | → | active(cons(X1, X2)) | | mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) |
| mark(indx(X1, X2)) | → | active(indx(mark(X1), X2)) | | mark(from(X)) | → | active(from(X)) |
| mark(dbl1(X)) | → | active(dbl1(mark(X))) | | mark(01) | → | active(01) |
| mark(s1(X)) | → | active(s1(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
| mark(quote(X)) | → | active(quote(mark(X))) | | dbl(mark(X)) | → | dbl(X) |
| dbl(active(X)) | → | dbl(X) | | s(mark(X)) | → | s(X) |
| s(active(X)) | → | s(X) | | dbls(mark(X)) | → | dbls(X) |
| dbls(active(X)) | → | dbls(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) | | 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) | | indx(mark(X1), X2) | → | indx(X1, X2) |
| indx(X1, mark(X2)) | → | indx(X1, X2) | | indx(active(X1), X2) | → | indx(X1, X2) |
| indx(X1, active(X2)) | → | indx(X1, X2) | | from(mark(X)) | → | from(X) |
| from(active(X)) | → | from(X) | | dbl1(mark(X)) | → | dbl1(X) |
| dbl1(active(X)) | → | dbl1(X) | | s1(mark(X)) | → | s1(X) |
| s1(active(X)) | → | s1(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) |
Original Signature
Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, sel, cons, nil
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 9: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
| dbls#(active(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)) | | mark(dbl(X)) | → | active(dbl(mark(X))) |
| mark(0) | → | active(0) | | mark(s(X)) | → | active(s(X)) |
| mark(dbls(X)) | → | active(dbls(mark(X))) | | mark(nil) | → | active(nil) |
| mark(cons(X1, X2)) | → | active(cons(X1, X2)) | | mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) |
| mark(indx(X1, X2)) | → | active(indx(mark(X1), X2)) | | mark(from(X)) | → | active(from(X)) |
| mark(dbl1(X)) | → | active(dbl1(mark(X))) | | mark(01) | → | active(01) |
| mark(s1(X)) | → | active(s1(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
| mark(quote(X)) | → | active(quote(mark(X))) | | dbl(mark(X)) | → | dbl(X) |
| dbl(active(X)) | → | dbl(X) | | s(mark(X)) | → | s(X) |
| s(active(X)) | → | s(X) | | dbls(mark(X)) | → | dbls(X) |
| dbls(active(X)) | → | dbls(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) | | 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) | | indx(mark(X1), X2) | → | indx(X1, X2) |
| indx(X1, mark(X2)) | → | indx(X1, X2) | | indx(active(X1), X2) | → | indx(X1, X2) |
| indx(X1, active(X2)) | → | indx(X1, X2) | | from(mark(X)) | → | from(X) |
| from(active(X)) | → | from(X) | | dbl1(mark(X)) | → | dbl1(X) |
| dbl1(active(X)) | → | dbl1(X) | | s1(mark(X)) | → | s1(X) |
| s1(active(X)) | → | s1(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) |
Original Signature
Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, sel, cons, nil
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
| dbls#(active(X)) | → | dbls#(X) | | dbls#(mark(X)) | → | dbls#(X) |
Problem 10: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
| quote#(mark(X)) | → | quote#(X) | | quote#(active(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)) | | mark(dbl(X)) | → | active(dbl(mark(X))) |
| mark(0) | → | active(0) | | mark(s(X)) | → | active(s(X)) |
| mark(dbls(X)) | → | active(dbls(mark(X))) | | mark(nil) | → | active(nil) |
| mark(cons(X1, X2)) | → | active(cons(X1, X2)) | | mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) |
| mark(indx(X1, X2)) | → | active(indx(mark(X1), X2)) | | mark(from(X)) | → | active(from(X)) |
| mark(dbl1(X)) | → | active(dbl1(mark(X))) | | mark(01) | → | active(01) |
| mark(s1(X)) | → | active(s1(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
| mark(quote(X)) | → | active(quote(mark(X))) | | dbl(mark(X)) | → | dbl(X) |
| dbl(active(X)) | → | dbl(X) | | s(mark(X)) | → | s(X) |
| s(active(X)) | → | s(X) | | dbls(mark(X)) | → | dbls(X) |
| dbls(active(X)) | → | dbls(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) | | 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) | | indx(mark(X1), X2) | → | indx(X1, X2) |
| indx(X1, mark(X2)) | → | indx(X1, X2) | | indx(active(X1), X2) | → | indx(X1, X2) |
| indx(X1, active(X2)) | → | indx(X1, X2) | | from(mark(X)) | → | from(X) |
| from(active(X)) | → | from(X) | | dbl1(mark(X)) | → | dbl1(X) |
| dbl1(active(X)) | → | dbl1(X) | | s1(mark(X)) | → | s1(X) |
| s1(active(X)) | → | s1(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) |
Original Signature
Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, sel, cons, nil
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 11: 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(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)) | | mark(dbl(X)) | → | active(dbl(mark(X))) |
| mark(0) | → | active(0) | | mark(s(X)) | → | active(s(X)) |
| mark(dbls(X)) | → | active(dbls(mark(X))) | | mark(nil) | → | active(nil) |
| mark(cons(X1, X2)) | → | active(cons(X1, X2)) | | mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) |
| mark(indx(X1, X2)) | → | active(indx(mark(X1), X2)) | | mark(from(X)) | → | active(from(X)) |
| mark(dbl1(X)) | → | active(dbl1(mark(X))) | | mark(01) | → | active(01) |
| mark(s1(X)) | → | active(s1(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
| mark(quote(X)) | → | active(quote(mark(X))) | | dbl(mark(X)) | → | dbl(X) |
| dbl(active(X)) | → | dbl(X) | | s(mark(X)) | → | s(X) |
| s(active(X)) | → | s(X) | | dbls(mark(X)) | → | dbls(X) |
| dbls(active(X)) | → | dbls(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) | | 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) | | indx(mark(X1), X2) | → | indx(X1, X2) |
| indx(X1, mark(X2)) | → | indx(X1, X2) | | indx(active(X1), X2) | → | indx(X1, X2) |
| indx(X1, active(X2)) | → | indx(X1, X2) | | from(mark(X)) | → | from(X) |
| from(active(X)) | → | from(X) | | dbl1(mark(X)) | → | dbl1(X) |
| dbl1(active(X)) | → | dbl1(X) | | s1(mark(X)) | → | s1(X) |
| s1(active(X)) | → | s1(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) |
Original Signature
Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, sel, cons, nil
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 12: 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(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)) | | mark(dbl(X)) | → | active(dbl(mark(X))) |
| mark(0) | → | active(0) | | mark(s(X)) | → | active(s(X)) |
| mark(dbls(X)) | → | active(dbls(mark(X))) | | mark(nil) | → | active(nil) |
| mark(cons(X1, X2)) | → | active(cons(X1, X2)) | | mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) |
| mark(indx(X1, X2)) | → | active(indx(mark(X1), X2)) | | mark(from(X)) | → | active(from(X)) |
| mark(dbl1(X)) | → | active(dbl1(mark(X))) | | mark(01) | → | active(01) |
| mark(s1(X)) | → | active(s1(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
| mark(quote(X)) | → | active(quote(mark(X))) | | dbl(mark(X)) | → | dbl(X) |
| dbl(active(X)) | → | dbl(X) | | s(mark(X)) | → | s(X) |
| s(active(X)) | → | s(X) | | dbls(mark(X)) | → | dbls(X) |
| dbls(active(X)) | → | dbls(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) | | 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) | | indx(mark(X1), X2) | → | indx(X1, X2) |
| indx(X1, mark(X2)) | → | indx(X1, X2) | | indx(active(X1), X2) | → | indx(X1, X2) |
| indx(X1, active(X2)) | → | indx(X1, X2) | | from(mark(X)) | → | from(X) |
| from(active(X)) | → | from(X) | | dbl1(mark(X)) | → | dbl1(X) |
| dbl1(active(X)) | → | dbl1(X) | | s1(mark(X)) | → | s1(X) |
| s1(active(X)) | → | s1(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) |
Original Signature
Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, sel, cons, nil
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 16: PolynomialLinearRange4iUR
Dependency Pair Problem
Dependency Pairs
| sel#(X1, active(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)) | | mark(dbl(X)) | → | active(dbl(mark(X))) |
| mark(0) | → | active(0) | | mark(s(X)) | → | active(s(X)) |
| mark(dbls(X)) | → | active(dbls(mark(X))) | | mark(nil) | → | active(nil) |
| mark(cons(X1, X2)) | → | active(cons(X1, X2)) | | mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) |
| mark(indx(X1, X2)) | → | active(indx(mark(X1), X2)) | | mark(from(X)) | → | active(from(X)) |
| mark(dbl1(X)) | → | active(dbl1(mark(X))) | | mark(01) | → | active(01) |
| mark(s1(X)) | → | active(s1(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
| mark(quote(X)) | → | active(quote(mark(X))) | | dbl(mark(X)) | → | dbl(X) |
| dbl(active(X)) | → | dbl(X) | | s(mark(X)) | → | s(X) |
| s(active(X)) | → | s(X) | | dbls(mark(X)) | → | dbls(X) |
| dbls(active(X)) | → | dbls(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) | | 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) | | indx(mark(X1), X2) | → | indx(X1, X2) |
| indx(X1, mark(X2)) | → | indx(X1, X2) | | indx(active(X1), X2) | → | indx(X1, X2) |
| indx(X1, active(X2)) | → | indx(X1, X2) | | from(mark(X)) | → | from(X) |
| from(active(X)) | → | from(X) | | dbl1(mark(X)) | → | dbl1(X) |
| dbl1(active(X)) | → | dbl1(X) | | s1(mark(X)) | → | s1(X) |
| s1(active(X)) | → | s1(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) |
Original Signature
Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, sel, nil, cons
Strategy
Polynomial Interpretation
- 0: 0
- 01: 0
- active(x): 2x
- cons(x,y): 0
- dbl(x): 0
- dbl1(x): 0
- dbls(x): 0
- from(x): 0
- indx(x,y): 0
- mark(x): x + 1
- nil: 0
- quote(x): 0
- s(x): 0
- s1(x): 0
- sel(x,y): 0
- sel#(x,y): 2y + 3x
- sel1(x,y): 0
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 19: PolynomialLinearRange4iUR
Dependency Pair Problem
Dependency Pairs
| sel#(X1, active(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)) | | mark(dbl(X)) | → | active(dbl(mark(X))) |
| mark(0) | → | active(0) | | mark(s(X)) | → | active(s(X)) |
| mark(dbls(X)) | → | active(dbls(mark(X))) | | mark(nil) | → | active(nil) |
| mark(cons(X1, X2)) | → | active(cons(X1, X2)) | | mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) |
| mark(indx(X1, X2)) | → | active(indx(mark(X1), X2)) | | mark(from(X)) | → | active(from(X)) |
| mark(dbl1(X)) | → | active(dbl1(mark(X))) | | mark(01) | → | active(01) |
| mark(s1(X)) | → | active(s1(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
| mark(quote(X)) | → | active(quote(mark(X))) | | dbl(mark(X)) | → | dbl(X) |
| dbl(active(X)) | → | dbl(X) | | s(mark(X)) | → | s(X) |
| s(active(X)) | → | s(X) | | dbls(mark(X)) | → | dbls(X) |
| dbls(active(X)) | → | dbls(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) | | 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) | | indx(mark(X1), X2) | → | indx(X1, X2) |
| indx(X1, mark(X2)) | → | indx(X1, X2) | | indx(active(X1), X2) | → | indx(X1, X2) |
| indx(X1, active(X2)) | → | indx(X1, X2) | | from(mark(X)) | → | from(X) |
| from(active(X)) | → | from(X) | | dbl1(mark(X)) | → | dbl1(X) |
| dbl1(active(X)) | → | dbl1(X) | | s1(mark(X)) | → | s1(X) |
| s1(active(X)) | → | s1(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) |
Original Signature
Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, sel, cons, nil
Strategy
Polynomial Interpretation
- 0: 0
- 01: 0
- active(x): 2x + 1
- cons(x,y): 0
- dbl(x): 0
- dbl1(x): 0
- dbls(x): 0
- from(x): 0
- indx(x,y): 0
- mark(x): 0
- nil: 0
- quote(x): 0
- s(x): 0
- s1(x): 0
- sel(x,y): 0
- sel#(x,y): 2y + x
- sel1(x,y): 0
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, active(X2)) | → | sel#(X1, X2) |
Problem 13: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
| indx#(X1, active(X2)) | → | indx#(X1, X2) | | indx#(active(X1), X2) | → | indx#(X1, X2) |
| indx#(mark(X1), X2) | → | indx#(X1, X2) | | indx#(X1, mark(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)) | | mark(dbl(X)) | → | active(dbl(mark(X))) |
| mark(0) | → | active(0) | | mark(s(X)) | → | active(s(X)) |
| mark(dbls(X)) | → | active(dbls(mark(X))) | | mark(nil) | → | active(nil) |
| mark(cons(X1, X2)) | → | active(cons(X1, X2)) | | mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) |
| mark(indx(X1, X2)) | → | active(indx(mark(X1), X2)) | | mark(from(X)) | → | active(from(X)) |
| mark(dbl1(X)) | → | active(dbl1(mark(X))) | | mark(01) | → | active(01) |
| mark(s1(X)) | → | active(s1(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
| mark(quote(X)) | → | active(quote(mark(X))) | | dbl(mark(X)) | → | dbl(X) |
| dbl(active(X)) | → | dbl(X) | | s(mark(X)) | → | s(X) |
| s(active(X)) | → | s(X) | | dbls(mark(X)) | → | dbls(X) |
| dbls(active(X)) | → | dbls(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) | | 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) | | indx(mark(X1), X2) | → | indx(X1, X2) |
| indx(X1, mark(X2)) | → | indx(X1, X2) | | indx(active(X1), X2) | → | indx(X1, X2) |
| indx(X1, active(X2)) | → | indx(X1, X2) | | from(mark(X)) | → | from(X) |
| from(active(X)) | → | from(X) | | dbl1(mark(X)) | → | dbl1(X) |
| dbl1(active(X)) | → | dbl1(X) | | s1(mark(X)) | → | s1(X) |
| s1(active(X)) | → | s1(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) |
Original Signature
Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, sel, cons, nil
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
| indx#(active(X1), X2) | → | indx#(X1, X2) | | indx#(mark(X1), X2) | → | indx#(X1, X2) |
Problem 17: PolynomialLinearRange4iUR
Dependency Pair Problem
Dependency Pairs
| indx#(X1, active(X2)) | → | indx#(X1, X2) | | indx#(X1, mark(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)) | | mark(dbl(X)) | → | active(dbl(mark(X))) |
| mark(0) | → | active(0) | | mark(s(X)) | → | active(s(X)) |
| mark(dbls(X)) | → | active(dbls(mark(X))) | | mark(nil) | → | active(nil) |
| mark(cons(X1, X2)) | → | active(cons(X1, X2)) | | mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) |
| mark(indx(X1, X2)) | → | active(indx(mark(X1), X2)) | | mark(from(X)) | → | active(from(X)) |
| mark(dbl1(X)) | → | active(dbl1(mark(X))) | | mark(01) | → | active(01) |
| mark(s1(X)) | → | active(s1(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
| mark(quote(X)) | → | active(quote(mark(X))) | | dbl(mark(X)) | → | dbl(X) |
| dbl(active(X)) | → | dbl(X) | | s(mark(X)) | → | s(X) |
| s(active(X)) | → | s(X) | | dbls(mark(X)) | → | dbls(X) |
| dbls(active(X)) | → | dbls(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) | | 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) | | indx(mark(X1), X2) | → | indx(X1, X2) |
| indx(X1, mark(X2)) | → | indx(X1, X2) | | indx(active(X1), X2) | → | indx(X1, X2) |
| indx(X1, active(X2)) | → | indx(X1, X2) | | from(mark(X)) | → | from(X) |
| from(active(X)) | → | from(X) | | dbl1(mark(X)) | → | dbl1(X) |
| dbl1(active(X)) | → | dbl1(X) | | s1(mark(X)) | → | s1(X) |
| s1(active(X)) | → | s1(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) |
Original Signature
Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, sel, nil, cons
Strategy
Polynomial Interpretation
- 0: 0
- 01: 0
- active(x): 2x + 1
- cons(x,y): 0
- dbl(x): 0
- dbl1(x): 0
- dbls(x): 0
- from(x): 0
- indx(x,y): 0
- indx#(x,y): 2y + x
- mark(x): x
- nil: 0
- quote(x): 0
- s(x): 0
- s1(x): 0
- sel(x,y): 0
- sel1(x,y): 0
There are no usable rules
The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:
| indx#(X1, active(X2)) | → | indx#(X1, X2) |
Problem 18: PolynomialLinearRange4iUR
Dependency Pair Problem
Dependency Pairs
| indx#(X1, mark(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)) | | mark(dbl(X)) | → | active(dbl(mark(X))) |
| mark(0) | → | active(0) | | mark(s(X)) | → | active(s(X)) |
| mark(dbls(X)) | → | active(dbls(mark(X))) | | mark(nil) | → | active(nil) |
| mark(cons(X1, X2)) | → | active(cons(X1, X2)) | | mark(sel(X1, X2)) | → | active(sel(mark(X1), mark(X2))) |
| mark(indx(X1, X2)) | → | active(indx(mark(X1), X2)) | | mark(from(X)) | → | active(from(X)) |
| mark(dbl1(X)) | → | active(dbl1(mark(X))) | | mark(01) | → | active(01) |
| mark(s1(X)) | → | active(s1(mark(X))) | | mark(sel1(X1, X2)) | → | active(sel1(mark(X1), mark(X2))) |
| mark(quote(X)) | → | active(quote(mark(X))) | | dbl(mark(X)) | → | dbl(X) |
| dbl(active(X)) | → | dbl(X) | | s(mark(X)) | → | s(X) |
| s(active(X)) | → | s(X) | | dbls(mark(X)) | → | dbls(X) |
| dbls(active(X)) | → | dbls(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) | | 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) | | indx(mark(X1), X2) | → | indx(X1, X2) |
| indx(X1, mark(X2)) | → | indx(X1, X2) | | indx(active(X1), X2) | → | indx(X1, X2) |
| indx(X1, active(X2)) | → | indx(X1, X2) | | from(mark(X)) | → | from(X) |
| from(active(X)) | → | from(X) | | dbl1(mark(X)) | → | dbl1(X) |
| dbl1(active(X)) | → | dbl1(X) | | s1(mark(X)) | → | s1(X) |
| s1(active(X)) | → | s1(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) |
Original Signature
Termination of terms over the following signature is verified: s1, dbl1, mark, dbl, from, 01, dbls, 0, sel1, s, indx, quote, active, sel, cons, nil
Strategy
Polynomial Interpretation
- 0: 0
- 01: 0
- active(x): 0
- cons(x,y): 0
- dbl(x): 0
- dbl1(x): 0
- dbls(x): 0
- from(x): 0
- indx(x,y): 0
- indx#(x,y): y + x + 1
- mark(x): x + 2
- nil: 0
- quote(x): 0
- s(x): 0
- s1(x): 0
- sel(x,y): 0
- sel1(x,y): 0
There are no usable rules
The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:
| indx#(X1, mark(X2)) | → | indx#(X1, X2) |