NO
The TRS could be proven non-terminating. The proof took 12150 ms.
The following reduction sequence is a witness for non-termination:
U12#(tt, zeros) →* U12#(tt, zeros)Problem 1 was processed with processor DependencyGraph (102ms). | Problem 2 was processed with processor BackwardInstantiation (1ms). | | Problem 6 was processed with processor BackwardInstantiation (1ms). | | | Problem 7 was processed with processor Propagation (1ms). | | | | Problem 10 was processed with processor BackwardInstantiation (2ms). | | | | | Problem 12 was processed with processor Propagation (1ms). | | | | | | Problem 14 was processed with processor BackwardsNarrowing (41ms). | | | | | | | Problem 15 was processed with processor BackwardsNarrowing (10ms). | | | | | | | | Problem 16 was processed with processor BackwardsNarrowing (1ms). | | | | | | | | | Problem 17 remains open; application of the following processors failed [BackwardsNarrowing (0ms), BackwardInstantiation (1ms), ForwardInstantiation (0ms), Propagation (0ms)]. | | Problem 8 was processed with processor Propagation (1ms). | | | Problem 9 was processed with processor BackwardInstantiation (1ms). | | | | Problem 11 was processed with processor Propagation (9ms). | | | | | Problem 13 remains open; application of the following processors failed [ForwardNarrowing (2ms), BackwardInstantiation (39ms), ForwardInstantiation (1ms), Propagation (9ms)]. | Problem 3 was processed with processor PolynomialLinearRange4 (198ms). | | Problem 4 was processed with processor DependencyGraph (28ms). | | | Problem 5 was processed with processor PolynomialLinearRange4 (38ms).
take#(s(M), cons(N, IL)) | → | U21#(tt, IL, M, N) | U21#(tt, IL, M, N) | → | U22#(tt, IL, M, N) | |
U12#(tt, L) | → | T(L) | T(take(x_1, x_2)) | → | T(x_2) | |
length#(cons(N, L)) | → | U11#(tt, L) | T(zeros) | → | zeros# | |
U12#(tt, L) | → | length#(L) | T(take(x_1, x_2)) | → | T(x_1) | |
U11#(tt, L) | → | U12#(tt, L) | U23#(tt, IL, M, N) | → | T(N) | |
U22#(tt, IL, M, N) | → | U23#(tt, IL, M, N) | T(take(M, IL)) | → | take#(M, IL) |
zeros | → | cons(0, zeros) | U11(tt, L) | → | U12(tt, L) | |
U12(tt, L) | → | s(length(L)) | U21(tt, IL, M, N) | → | U22(tt, IL, M, N) | |
U22(tt, IL, M, N) | → | U23(tt, IL, M, N) | U23(tt, IL, M, N) | → | cons(N, take(M, IL)) | |
length(nil) | → | 0 | length(cons(N, L)) | → | U11(tt, L) | |
take(0, IL) | → | nil | take(s(M), cons(N, IL)) | → | U21(tt, IL, M, N) |
Termination of terms over the following signature is verified: 0, s, zeros, tt, take, length, U11, U12, U23, U21, cons, U22, nil
Context-sensitive strategy:
μ(zeros#) = μ(T) = μ(0) = μ(zeros) = μ(tt) = μ(nil) = ∅
μ(U11#) = μ(U12#) = μ(U22#) = μ(length#) = μ(U21#) = μ(U23#) = μ(s) = μ(length) = μ(U11) = μ(U12) = μ(U23) = μ(U21) = μ(U22) = μ(cons) = {1}
μ(take#) = μ(take) = {1, 2}
length#(cons(N, L)) → U11#(tt, L) | U12#(tt, L) → length#(L) |
U11#(tt, L) → U12#(tt, L) |
take#(s(M), cons(N, IL)) → U21#(tt, IL, M, N) | U21#(tt, IL, M, N) → U22#(tt, IL, M, N) |
T(take(x_1, x_2)) → T(x_2) | T(take(x_1, x_2)) → T(x_1) |
U23#(tt, IL, M, N) → T(N) | U22#(tt, IL, M, N) → U23#(tt, IL, M, N) |
T(take(M, IL)) → take#(M, IL) |
length#(cons(N, L)) | → | U11#(tt, L) | U12#(tt, L) | → | length#(L) | |
U11#(tt, L) | → | U12#(tt, L) |
zeros | → | cons(0, zeros) | U11(tt, L) | → | U12(tt, L) | |
U12(tt, L) | → | s(length(L)) | U21(tt, IL, M, N) | → | U22(tt, IL, M, N) | |
U22(tt, IL, M, N) | → | U23(tt, IL, M, N) | U23(tt, IL, M, N) | → | cons(N, take(M, IL)) | |
length(nil) | → | 0 | length(cons(N, L)) | → | U11(tt, L) | |
take(0, IL) | → | nil | take(s(M), cons(N, IL)) | → | U21(tt, IL, M, N) |
Termination of terms over the following signature is verified: 0, s, zeros, tt, take, length, U11, U12, U23, U21, cons, U22, nil
Context-sensitive strategy:
μ(zeros#) = μ(T) = μ(0) = μ(zeros) = μ(tt) = μ(nil) = ∅
μ(U11#) = μ(U12#) = μ(U22#) = μ(length#) = μ(U21#) = μ(U23#) = μ(s) = μ(length) = μ(U11) = μ(U12) = μ(U23) = μ(U21) = μ(cons) = μ(U22) = {1}
μ(take#) = μ(take) = {1, 2}
U12#(tt, _L) → length#(_L) |
U11#(tt, _L) → U12#(tt, _L) |
U12#(tt, L) | → | length#(L) | U11#(tt, L) | → | U12#(tt, L) | |
length#(zeros) | → | U11#(tt, zeros) | length#(U23(tt, _x21, _x22, _x23)) | → | U11#(tt, take(_x22, _x21)) |
zeros | → | cons(0, zeros) | U11(tt, L) | → | U12(tt, L) | |
U12(tt, L) | → | s(length(L)) | U21(tt, IL, M, N) | → | U22(tt, IL, M, N) | |
U22(tt, IL, M, N) | → | U23(tt, IL, M, N) | U23(tt, IL, M, N) | → | cons(N, take(M, IL)) | |
length(nil) | → | 0 | length(cons(N, L)) | → | U11(tt, L) | |
take(0, IL) | → | nil | take(s(M), cons(N, IL)) | → | U21(tt, IL, M, N) |
Termination of terms over the following signature is verified: 0, s, zeros, tt, take, length, U11, U12, U23, U21, cons, U22, nil
Context-sensitive strategy:
μ(zeros#) = μ(T) = μ(0) = μ(zeros) = μ(tt) = μ(nil) = ∅
μ(U11#) = μ(U12#) = μ(U22#) = μ(length#) = μ(U21#) = μ(U23#) = μ(s) = μ(length) = μ(U11) = μ(U12) = μ(U23) = μ(U21) = μ(U22) = μ(cons) = {1}
μ(take#) = μ(take) = {1, 2}
U12#(tt, _L) → length#(_L) |
U11#(tt, zeros) → U12#(tt, zeros) | U11#(tt, take(_x22, _x21)) → U12#(tt, take(_x22, _x21)) |
length#(U23(tt, _x21, _x22, _x23)) | → | U11#(tt, take(_x22, _x21)) | length#(zeros) | → | U11#(tt, zeros) | |
U11#(tt, zeros) | → | U12#(tt, zeros) | U12#(tt, _L) | → | length#(_L) | |
U11#(tt, take(_x22, _x21)) | → | U12#(tt, take(_x22, _x21)) |
zeros | → | cons(0, zeros) | U11(tt, L) | → | U12(tt, L) | |
U12(tt, L) | → | s(length(L)) | U21(tt, IL, M, N) | → | U22(tt, IL, M, N) | |
U22(tt, IL, M, N) | → | U23(tt, IL, M, N) | U23(tt, IL, M, N) | → | cons(N, take(M, IL)) | |
length(nil) | → | 0 | length(cons(N, L)) | → | U11(tt, L) | |
take(0, IL) | → | nil | take(s(M), cons(N, IL)) | → | U21(tt, IL, M, N) |
Termination of terms over the following signature is verified: 0, s, zeros, tt, take, length, U11, U12, U23, U21, cons, U22, nil
Context-sensitive strategy:
μ(zeros#) = μ(T) = μ(0) = μ(zeros) = μ(tt) = μ(nil) = ∅
μ(U11#) = μ(U12#) = μ(U22#) = μ(length#) = μ(U21#) = μ(U23#) = μ(s) = μ(length) = μ(U11) = μ(U12) = μ(U23) = μ(U21) = μ(cons) = μ(U22) = {1}
μ(take#) = μ(take) = {1, 2}
This is possible as
This is possible as
This is possible as
This is possible as
This is possible as
Removed Dependency Pairs | Added Dependency Pairs |
---|---|
length#(zeros) → U11#(tt, zeros) | length#(zeros) → U12#(tt, zeros) |
U11#(tt, zeros) → U12#(tt, zeros) |
length#(U23(tt, _x21, _x22, _x23)) | → | U11#(tt, take(_x22, _x21)) | length#(zeros) | → | U12#(tt, zeros) | |
U12#(tt, _L) | → | length#(_L) | U11#(tt, take(_x22, _x21)) | → | U12#(tt, take(_x22, _x21)) |
zeros | → | cons(0, zeros) | U11(tt, L) | → | U12(tt, L) | |
U12(tt, L) | → | s(length(L)) | U21(tt, IL, M, N) | → | U22(tt, IL, M, N) | |
U22(tt, IL, M, N) | → | U23(tt, IL, M, N) | U23(tt, IL, M, N) | → | cons(N, take(M, IL)) | |
length(nil) | → | 0 | length(cons(N, L)) | → | U11(tt, L) | |
take(0, IL) | → | nil | take(s(M), cons(N, IL)) | → | U21(tt, IL, M, N) |
Termination of terms over the following signature is verified: 0, s, zeros, tt, take, length, U11, U12, U23, U21, cons, U22, nil
Context-sensitive strategy:
μ(zeros#) = μ(T) = μ(0) = μ(zeros) = μ(tt) = μ(nil) = ∅
μ(U11#) = μ(U12#) = μ(U22#) = μ(length#) = μ(U21#) = μ(U23#) = μ(s) = μ(length) = μ(U11) = μ(U12) = μ(U23) = μ(U21) = μ(U22) = μ(cons) = {1}
μ(take#) = μ(take) = {1, 2}
U12#(tt, take(_x22, _x21)) → length#(take(_x22, _x21)) | U12#(tt, zeros) → length#(zeros) |
U12#(tt, take(_x22, _x21)) | → | length#(take(_x22, _x21)) | U12#(tt, zeros) | → | length#(zeros) | |
length#(U23(tt, _x21, _x22, _x23)) | → | U11#(tt, take(_x22, _x21)) | length#(zeros) | → | U12#(tt, zeros) | |
U11#(tt, take(_x22, _x21)) | → | U12#(tt, take(_x22, _x21)) |
zeros | → | cons(0, zeros) | U11(tt, L) | → | U12(tt, L) | |
U12(tt, L) | → | s(length(L)) | U21(tt, IL, M, N) | → | U22(tt, IL, M, N) | |
U22(tt, IL, M, N) | → | U23(tt, IL, M, N) | U23(tt, IL, M, N) | → | cons(N, take(M, IL)) | |
length(nil) | → | 0 | length(cons(N, L)) | → | U11(tt, L) | |
take(0, IL) | → | nil | take(s(M), cons(N, IL)) | → | U21(tt, IL, M, N) |
Termination of terms over the following signature is verified: 0, s, zeros, tt, take, length, U11, U12, U23, U21, cons, U22, nil
Context-sensitive strategy:
μ(zeros#) = μ(T) = μ(0) = μ(zeros) = μ(tt) = μ(nil) = ∅
μ(U11#) = μ(U12#) = μ(U22#) = μ(length#) = μ(U21#) = μ(U23#) = μ(s) = μ(length) = μ(U11) = μ(U12) = μ(U23) = μ(U21) = μ(cons) = μ(U22) = {1}
μ(take#) = μ(take) = {1, 2}
This is possible as
This is possible as
This is possible as
This is possible as
This is possible as
This is possible as
Removed Dependency Pairs | Added Dependency Pairs |
---|---|
U12#(tt, zeros) → length#(zeros) | U12#(tt, zeros) → U12#(tt, zeros) |
length#(zeros) → U12#(tt, zeros) | length#(zeros) → length#(zeros) |
U12#(tt, zeros) | → | U12#(tt, zeros) | U12#(tt, take(_x22, _x21)) | → | length#(take(_x22, _x21)) | |
length#(zeros) | → | length#(zeros) | length#(U23(tt, _x21, _x22, _x23)) | → | U11#(tt, take(_x22, _x21)) | |
U11#(tt, take(_x22, _x21)) | → | U12#(tt, take(_x22, _x21)) |
zeros | → | cons(0, zeros) | U11(tt, L) | → | U12(tt, L) | |
U12(tt, L) | → | s(length(L)) | U21(tt, IL, M, N) | → | U22(tt, IL, M, N) | |
U22(tt, IL, M, N) | → | U23(tt, IL, M, N) | U23(tt, IL, M, N) | → | cons(N, take(M, IL)) | |
length(nil) | → | 0 | length(cons(N, L)) | → | U11(tt, L) | |
take(0, IL) | → | nil | take(s(M), cons(N, IL)) | → | U21(tt, IL, M, N) |
Termination of terms over the following signature is verified: 0, s, zeros, tt, take, length, U11, U12, U23, U21, cons, U22, nil
Context-sensitive strategy:
μ(zeros#) = μ(T) = μ(0) = μ(zeros) = μ(tt) = μ(nil) = ∅
μ(U11#) = μ(U12#) = μ(U22#) = μ(length#) = μ(U21#) = μ(U23#) = μ(s) = μ(length) = μ(U11) = μ(U12) = μ(U23) = μ(U21) = μ(U22) = μ(cons) = {1}
μ(take#) = μ(take) = {1, 2}
Relevant Terms | Irrelevant Terms |
---|---|
length#(U22(tt, _x31, _x32, _x33)) |
length#(U22(tt, _x31, _x32, _x33)) → U11#(tt, take(_x32, _x31)) |
U12#(tt, zeros) | → | U12#(tt, zeros) | length#(zeros) | → | length#(zeros) | |
U12#(tt, take(_x22, _x21)) | → | length#(take(_x22, _x21)) | U11#(tt, take(_x22, _x21)) | → | U12#(tt, take(_x22, _x21)) | |
length#(U22(tt, _x31, _x32, _x33)) | → | U11#(tt, take(_x32, _x31)) |
zeros | → | cons(0, zeros) | U11(tt, L) | → | U12(tt, L) | |
U12(tt, L) | → | s(length(L)) | U21(tt, IL, M, N) | → | U22(tt, IL, M, N) | |
U22(tt, IL, M, N) | → | U23(tt, IL, M, N) | U23(tt, IL, M, N) | → | cons(N, take(M, IL)) | |
length(nil) | → | 0 | length(cons(N, L)) | → | U11(tt, L) | |
take(0, IL) | → | nil | take(s(M), cons(N, IL)) | → | U21(tt, IL, M, N) |
Termination of terms over the following signature is verified: 0, s, zeros, tt, take, length, U11, U12, U23, U21, cons, U22, nil
Context-sensitive strategy:
μ(zeros#) = μ(T) = μ(0) = μ(zeros) = μ(tt) = μ(nil) = ∅
μ(U11#) = μ(U12#) = μ(U22#) = μ(length#) = μ(U21#) = μ(U23#) = μ(s) = μ(length) = μ(U11) = μ(U12) = μ(U23) = μ(U21) = μ(cons) = μ(U22) = {1}
μ(take#) = μ(take) = {1, 2}
Relevant Terms | Irrelevant Terms |
---|---|
length#(U21(tt, _x21, _x22, _x23)) |
length#(U21(tt, _x21, _x22, _x23)) → U11#(tt, take(_x22, _x21)) |
U12#(tt, zeros) | → | U12#(tt, zeros) | length#(U21(tt, _x21, _x22, _x23)) | → | U11#(tt, take(_x22, _x21)) | |
U12#(tt, take(_x22, _x21)) | → | length#(take(_x22, _x21)) | length#(zeros) | → | length#(zeros) | |
U11#(tt, take(_x22, _x21)) | → | U12#(tt, take(_x22, _x21)) |
zeros | → | cons(0, zeros) | U11(tt, L) | → | U12(tt, L) | |
U12(tt, L) | → | s(length(L)) | U21(tt, IL, M, N) | → | U22(tt, IL, M, N) | |
U22(tt, IL, M, N) | → | U23(tt, IL, M, N) | U23(tt, IL, M, N) | → | cons(N, take(M, IL)) | |
length(nil) | → | 0 | length(cons(N, L)) | → | U11(tt, L) | |
take(0, IL) | → | nil | take(s(M), cons(N, IL)) | → | U21(tt, IL, M, N) |
Termination of terms over the following signature is verified: 0, s, zeros, tt, take, length, U11, U12, U23, U21, cons, U22, nil
Context-sensitive strategy:
μ(zeros#) = μ(T) = μ(0) = μ(zeros) = μ(tt) = μ(nil) = ∅
μ(U11#) = μ(U12#) = μ(U22#) = μ(length#) = μ(U21#) = μ(U23#) = μ(s) = μ(length) = μ(U11) = μ(U12) = μ(U23) = μ(U21) = μ(U22) = μ(cons) = {1}
μ(take#) = μ(take) = {1, 2}
Relevant Terms | Irrelevant Terms |
---|---|
length#(take(s(_x32), cons(_x33, _x31))) |
length#(take(s(_x32), cons(_x33, _x31))) → U11#(tt, take(_x32, _x31)) |
length#(cons(N, L)) | → | U11#(tt, L) | U12#(tt, _L) | → | length#(_L) | |
U11#(tt, _L) | → | U12#(tt, _L) |
zeros | → | cons(0, zeros) | U11(tt, L) | → | U12(tt, L) | |
U12(tt, L) | → | s(length(L)) | U21(tt, IL, M, N) | → | U22(tt, IL, M, N) | |
U22(tt, IL, M, N) | → | U23(tt, IL, M, N) | U23(tt, IL, M, N) | → | cons(N, take(M, IL)) | |
length(nil) | → | 0 | length(cons(N, L)) | → | U11(tt, L) | |
take(0, IL) | → | nil | take(s(M), cons(N, IL)) | → | U21(tt, IL, M, N) |
Termination of terms over the following signature is verified: 0, s, zeros, tt, take, length, U11, U12, U23, U21, cons, U22, nil
Context-sensitive strategy:
μ(zeros#) = μ(T) = μ(0) = μ(zeros) = μ(tt) = μ(nil) = ∅
μ(U11#) = μ(U12#) = μ(U22#) = μ(length#) = μ(U21#) = μ(U23#) = μ(s) = μ(length) = μ(U11) = μ(U12) = μ(U23) = μ(U21) = μ(U22) = μ(cons) = {1}
μ(take#) = μ(take) = {1, 2}
This is possible as
This is possible as
This is possible as
Removed Dependency Pairs | Added Dependency Pairs |
---|---|
U12#(tt, _L) → length#(_L) | U11#(tt, _L) → length#(_L) |
U11#(tt, _L) → U12#(tt, _L) |
length#(cons(N, L)) | → | U11#(tt, L) | U11#(tt, _L) | → | length#(_L) |
zeros | → | cons(0, zeros) | U11(tt, L) | → | U12(tt, L) | |
U12(tt, L) | → | s(length(L)) | U21(tt, IL, M, N) | → | U22(tt, IL, M, N) | |
U22(tt, IL, M, N) | → | U23(tt, IL, M, N) | U23(tt, IL, M, N) | → | cons(N, take(M, IL)) | |
length(nil) | → | 0 | length(cons(N, L)) | → | U11(tt, L) | |
take(0, IL) | → | nil | take(s(M), cons(N, IL)) | → | U21(tt, IL, M, N) |
Termination of terms over the following signature is verified: 0, s, zeros, tt, take, length, U11, U12, U23, U21, cons, U22, nil
Context-sensitive strategy:
μ(zeros#) = μ(T) = μ(0) = μ(zeros) = μ(tt) = μ(nil) = ∅
μ(U11#) = μ(U12#) = μ(U22#) = μ(length#) = μ(U21#) = μ(U23#) = μ(s) = μ(length) = μ(U11) = μ(U12) = μ(U23) = μ(U21) = μ(cons) = μ(U22) = {1}
μ(take#) = μ(take) = {1, 2}
U11#(tt, L) → length#(L) |
U11#(tt, L) | → | length#(L) | length#(cons(N, L)) | → | U11#(tt, L) |
zeros | → | cons(0, zeros) | U11(tt, L) | → | U12(tt, L) | |
U12(tt, L) | → | s(length(L)) | U21(tt, IL, M, N) | → | U22(tt, IL, M, N) | |
U22(tt, IL, M, N) | → | U23(tt, IL, M, N) | U23(tt, IL, M, N) | → | cons(N, take(M, IL)) | |
length(nil) | → | 0 | length(cons(N, L)) | → | U11(tt, L) | |
take(0, IL) | → | nil | take(s(M), cons(N, IL)) | → | U21(tt, IL, M, N) |
Termination of terms over the following signature is verified: 0, s, zeros, tt, take, length, U11, U12, U23, U21, cons, U22, nil
Context-sensitive strategy:
μ(zeros#) = μ(T) = μ(0) = μ(zeros) = μ(tt) = μ(nil) = ∅
μ(U11#) = μ(U12#) = μ(U22#) = μ(length#) = μ(U21#) = μ(U23#) = μ(s) = μ(length) = μ(U11) = μ(U12) = μ(U23) = μ(U21) = μ(U22) = μ(cons) = {1}
μ(take#) = μ(take) = {1, 2}
This is possible as
This is possible as
Removed Dependency Pairs | Added Dependency Pairs |
---|---|
U11#(tt, L) → length#(L) | length#(cons(N, L)) → length#(L) |
length#(cons(N, L)) → U11#(tt, L) |
take#(s(M), cons(N, IL)) | → | U21#(tt, IL, M, N) | U21#(tt, IL, M, N) | → | U22#(tt, IL, M, N) | |
T(take(x_1, x_2)) | → | T(x_2) | T(take(x_1, x_2)) | → | T(x_1) | |
U23#(tt, IL, M, N) | → | T(N) | U22#(tt, IL, M, N) | → | U23#(tt, IL, M, N) | |
T(take(M, IL)) | → | take#(M, IL) |
zeros | → | cons(0, zeros) | U11(tt, L) | → | U12(tt, L) | |
U12(tt, L) | → | s(length(L)) | U21(tt, IL, M, N) | → | U22(tt, IL, M, N) | |
U22(tt, IL, M, N) | → | U23(tt, IL, M, N) | U23(tt, IL, M, N) | → | cons(N, take(M, IL)) | |
length(nil) | → | 0 | length(cons(N, L)) | → | U11(tt, L) | |
take(0, IL) | → | nil | take(s(M), cons(N, IL)) | → | U21(tt, IL, M, N) |
Termination of terms over the following signature is verified: 0, s, zeros, tt, take, length, U11, U12, U23, U21, cons, U22, nil
Context-sensitive strategy:
μ(zeros#) = μ(T) = μ(0) = μ(zeros) = μ(tt) = μ(nil) = ∅
μ(U11#) = μ(U12#) = μ(U22#) = μ(length#) = μ(U21#) = μ(U23#) = μ(s) = μ(length) = μ(U11) = μ(U12) = μ(U23) = μ(U21) = μ(cons) = μ(U22) = {1}
μ(take#) = μ(take) = {1, 2}
take(0, IL) | → | nil | U12(tt, L) | → | s(length(L)) | |
take(s(M), cons(N, IL)) | → | U21(tt, IL, M, N) | U11(tt, L) | → | U12(tt, L) | |
zeros | → | cons(0, zeros) | length(cons(N, L)) | → | U11(tt, L) | |
U23(tt, IL, M, N) | → | cons(N, take(M, IL)) | U22(tt, IL, M, N) | → | U23(tt, IL, M, N) | |
length(nil) | → | 0 | U21(tt, IL, M, N) | → | U22(tt, IL, M, N) |
The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:
U22#(tt, IL, M, N) | → | U23#(tt, IL, M, N) |
take#(s(M), cons(N, IL)) | → | U21#(tt, IL, M, N) | U21#(tt, IL, M, N) | → | U22#(tt, IL, M, N) | |
T(take(x_1, x_2)) | → | T(x_2) | T(take(x_1, x_2)) | → | T(x_1) | |
U23#(tt, IL, M, N) | → | T(N) | T(take(M, IL)) | → | take#(M, IL) |
zeros | → | cons(0, zeros) | U11(tt, L) | → | U12(tt, L) | |
U12(tt, L) | → | s(length(L)) | U21(tt, IL, M, N) | → | U22(tt, IL, M, N) | |
U22(tt, IL, M, N) | → | U23(tt, IL, M, N) | U23(tt, IL, M, N) | → | cons(N, take(M, IL)) | |
length(nil) | → | 0 | length(cons(N, L)) | → | U11(tt, L) | |
take(0, IL) | → | nil | take(s(M), cons(N, IL)) | → | U21(tt, IL, M, N) |
Termination of terms over the following signature is verified: 0, s, zeros, tt, take, length, U11, U12, U23, U21, cons, U22, nil
Context-sensitive strategy:
μ(zeros#) = μ(T) = μ(0) = μ(zeros) = μ(tt) = μ(nil) = ∅
μ(U11#) = μ(U12#) = μ(U22#) = μ(length#) = μ(U21#) = μ(U23#) = μ(s) = μ(length) = μ(U11) = μ(U12) = μ(U23) = μ(U21) = μ(U22) = μ(cons) = {1}
μ(take#) = μ(take) = {1, 2}
T(take(x_1, x_2)) → T(x_2) | T(take(x_1, x_2)) → T(x_1) |
T(take(x_1, x_2)) | → | T(x_2) | T(take(x_1, x_2)) | → | T(x_1) |
zeros | → | cons(0, zeros) | U11(tt, L) | → | U12(tt, L) | |
U12(tt, L) | → | s(length(L)) | U21(tt, IL, M, N) | → | U22(tt, IL, M, N) | |
U22(tt, IL, M, N) | → | U23(tt, IL, M, N) | U23(tt, IL, M, N) | → | cons(N, take(M, IL)) | |
length(nil) | → | 0 | length(cons(N, L)) | → | U11(tt, L) | |
take(0, IL) | → | nil | take(s(M), cons(N, IL)) | → | U21(tt, IL, M, N) |
Termination of terms over the following signature is verified: 0, s, zeros, tt, take, length, U11, U12, U23, U21, cons, U22, nil
Context-sensitive strategy:
μ(zeros#) = μ(T) = μ(0) = μ(zeros) = μ(tt) = μ(nil) = ∅
μ(U11#) = μ(U12#) = μ(U22#) = μ(length#) = μ(U21#) = μ(U23#) = μ(s) = μ(length) = μ(U11) = μ(U12) = μ(U23) = μ(U21) = μ(cons) = μ(U22) = {1}
μ(take#) = μ(take) = {1, 2}
There are no usable rules
The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:
T(take(x_1, x_2)) | → | T(x_2) | T(take(x_1, x_2)) | → | T(x_1) |