TIMEOUT

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (16177ms).
 | – Problem 2 was processed with processor SubtermCriterion (5ms).
 | – Problem 3 was processed with processor SubtermCriterion (2ms).
 |    | – Problem 14 remains open; application of the following processors failed [DependencyGraph (6ms), PolynomialLinearRange4iUR (14ms), DependencyGraph (6ms), PolynomialLinearRange4iUR (17ms), DependencyGraph (5ms), PolynomialLinearRange4iUR (0ms), DependencyGraph (5ms), PolynomialLinearRange8NegiUR (1ms), DependencyGraph (5ms)].
 | – Problem 4 was processed with processor SubtermCriterion (1ms).
 | – Problem 5 was processed with processor SubtermCriterion (2ms).
 | – Problem 6 was processed with processor SubtermCriterion (3ms).
 |    | – Problem 15 remains open; application of the following processors failed [DependencyGraph (33ms), PolynomialLinearRange4iUR (4ms), DependencyGraph (35ms), PolynomialLinearRange4iUR (3ms), DependencyGraph (34ms), PolynomialLinearRange4iUR (5ms), DependencyGraph (33ms), PolynomialLinearRange8NegiUR (1ms), DependencyGraph (33ms)].
 | – Problem 7 was processed with processor SubtermCriterion (2ms).
 |    | – Problem 16 was processed with processor PolynomialLinearRange4iUR (98ms).
 | – Problem 8 was processed with processor SubtermCriterion (1ms).
 | – Problem 9 remains open; application of the following processors failed [SubtermCriterion (2ms), DependencyGraph (2190ms), PolynomialLinearRange4iUR (1701ms), DependencyGraph (2269ms), PolynomialLinearRange4iUR (2007ms), DependencyGraph (2203ms), PolynomialLinearRange4iUR (3333ms), DependencyGraph (2199ms), PolynomialLinearRange8NegiUR (10000ms), DependencyGraph (2277ms), ReductionPairSAT (timeout)].
 | – Problem 10 was processed with processor SubtermCriterion (4ms).
 | – Problem 11 was processed with processor SubtermCriterion (1ms).
 |    | – Problem 17 was processed with processor PolynomialLinearRange4iUR (79ms).
 |    |    | – Problem 19 was processed with processor PolynomialLinearRange4iUR (56ms).
 | – Problem 12 was processed with processor SubtermCriterion (2ms).
 |    | – Problem 18 was processed with processor PolynomialLinearRange4iUR (41ms).
 |    |    | – Problem 20 was processed with processor PolynomialLinearRange4iUR (21ms).
 | – Problem 13 was processed with processor SubtermCriterion (1ms).

The following open problems remain:



Open Dependency Pair Problem 9

Dependency Pairs

mark#(U11(X1, X2))mark#(X1)mark#(cons(X1, X2))active#(cons(mark(X1), X2))
mark#(isNat(X))active#(isNat(X))mark#(take(X1, X2))mark#(X1)
mark#(U31(X1, X2, X3, X4))mark#(X1)mark#(U21(X))active#(U21(mark(X)))
mark#(tt)active#(tt)active#(length(nil))mark#(0)
active#(U21(tt))mark#(nil)mark#(take(X1, X2))active#(take(mark(X1), mark(X2)))
mark#(U31(X1, X2, X3, X4))active#(U31(mark(X1), X2, X3, X4))active#(isNatList(take(V1, V2)))mark#(and(isNat(V1), isNatIList(V2)))
mark#(U21(X))mark#(X)active#(isNatList(nil))mark#(tt)
active#(isNat(s(V1)))mark#(isNat(V1))mark#(nil)active#(nil)
active#(U31(tt, IL, M, N))mark#(cons(N, take(M, IL)))active#(isNatIList(V))mark#(isNatList(V))
mark#(length(X))mark#(X)mark#(and(X1, X2))active#(and(mark(X1), X2))
active#(isNatIList(zeros))mark#(tt)mark#(s(X))mark#(X)
mark#(U11(X1, X2))active#(U11(mark(X1), X2))mark#(zeros)active#(zeros)
mark#(isNatIList(X))active#(isNatIList(X))mark#(0)active#(0)
mark#(s(X))active#(s(mark(X)))active#(isNatIList(cons(V1, V2)))mark#(and(isNat(V1), isNatIList(V2)))
active#(isNat(0))mark#(tt)active#(U11(tt, L))mark#(s(length(L)))
mark#(cons(X1, X2))mark#(X1)active#(and(tt, X))mark#(X)
active#(isNatList(cons(V1, V2)))mark#(and(isNat(V1), isNatList(V2)))mark#(and(X1, X2))mark#(X1)
active#(isNat(length(V1)))mark#(isNatList(V1))active#(take(s(M), cons(N, IL)))mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))
mark#(take(X1, X2))mark#(X2)active#(zeros)mark#(cons(0, zeros))
active#(length(cons(N, L)))mark#(U11(and(isNatList(L), isNat(N)), L))mark#(length(X))active#(length(mark(X)))
mark#(isNatList(X))active#(isNatList(X))active#(take(0, IL))mark#(U21(isNatIList(IL)))

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(s(length(L)))
active(U21(tt))mark(nil)active(U31(tt, IL, M, N))mark(cons(N, take(M, IL)))
active(and(tt, X))mark(X)active(isNat(0))mark(tt)
active(isNat(length(V1)))mark(isNatList(V1))active(isNat(s(V1)))mark(isNat(V1))
active(isNatIList(V))mark(isNatList(V))active(isNatIList(zeros))mark(tt)
active(isNatIList(cons(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))active(isNatList(nil))mark(tt)
active(isNatList(cons(V1, V2)))mark(and(isNat(V1), isNatList(V2)))active(isNatList(take(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))
active(length(nil))mark(0)active(length(cons(N, L)))mark(U11(and(isNatList(L), isNat(N)), L))
active(take(0, IL))mark(U21(isNatIList(IL)))active(take(s(M), cons(N, IL)))mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))
mark(zeros)active(zeros)mark(cons(X1, X2))active(cons(mark(X1), X2))
mark(0)active(0)mark(U11(X1, X2))active(U11(mark(X1), X2))
mark(tt)active(tt)mark(s(X))active(s(mark(X)))
mark(length(X))active(length(mark(X)))mark(U21(X))active(U21(mark(X)))
mark(nil)active(nil)mark(U31(X1, X2, X3, X4))active(U31(mark(X1), X2, X3, X4))
mark(take(X1, X2))active(take(mark(X1), mark(X2)))mark(and(X1, X2))active(and(mark(X1), X2))
mark(isNat(X))active(isNat(X))mark(isNatList(X))active(isNatList(X))
mark(isNatIList(X))active(isNatIList(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)U11(mark(X1), X2)U11(X1, X2)
U11(X1, mark(X2))U11(X1, X2)U11(active(X1), X2)U11(X1, X2)
U11(X1, active(X2))U11(X1, X2)s(mark(X))s(X)
s(active(X))s(X)length(mark(X))length(X)
length(active(X))length(X)U21(mark(X))U21(X)
U21(active(X))U21(X)U31(mark(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, mark(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, mark(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, mark(X4))U31(X1, X2, X3, X4)U31(active(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, active(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, active(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, active(X4))U31(X1, X2, X3, X4)take(mark(X1), X2)take(X1, X2)
take(X1, mark(X2))take(X1, X2)take(active(X1), X2)take(X1, X2)
take(X1, active(X2))take(X1, X2)and(mark(X1), X2)and(X1, X2)
and(X1, mark(X2))and(X1, X2)and(active(X1), X2)and(X1, X2)
and(X1, active(X2))and(X1, X2)isNat(mark(X))isNat(X)
isNat(active(X))isNat(X)isNatList(mark(X))isNatList(X)
isNatList(active(X))isNatList(X)isNatIList(mark(X))isNatIList(X)
isNatIList(active(X))isNatIList(X)

Original Signature

Termination of terms over the following signature is verified: isNatIList, mark, and, isNat, 0, isNatList, s, zeros, tt, take, length, active, U11, U31, U21, cons, nil




Open Dependency Pair Problem 14

Dependency Pairs

U11#(X1, active(X2))U11#(X1, X2)U11#(X1, mark(X2))U11#(X1, X2)

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(s(length(L)))
active(U21(tt))mark(nil)active(U31(tt, IL, M, N))mark(cons(N, take(M, IL)))
active(and(tt, X))mark(X)active(isNat(0))mark(tt)
active(isNat(length(V1)))mark(isNatList(V1))active(isNat(s(V1)))mark(isNat(V1))
active(isNatIList(V))mark(isNatList(V))active(isNatIList(zeros))mark(tt)
active(isNatIList(cons(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))active(isNatList(nil))mark(tt)
active(isNatList(cons(V1, V2)))mark(and(isNat(V1), isNatList(V2)))active(isNatList(take(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))
active(length(nil))mark(0)active(length(cons(N, L)))mark(U11(and(isNatList(L), isNat(N)), L))
active(take(0, IL))mark(U21(isNatIList(IL)))active(take(s(M), cons(N, IL)))mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))
mark(zeros)active(zeros)mark(cons(X1, X2))active(cons(mark(X1), X2))
mark(0)active(0)mark(U11(X1, X2))active(U11(mark(X1), X2))
mark(tt)active(tt)mark(s(X))active(s(mark(X)))
mark(length(X))active(length(mark(X)))mark(U21(X))active(U21(mark(X)))
mark(nil)active(nil)mark(U31(X1, X2, X3, X4))active(U31(mark(X1), X2, X3, X4))
mark(take(X1, X2))active(take(mark(X1), mark(X2)))mark(and(X1, X2))active(and(mark(X1), X2))
mark(isNat(X))active(isNat(X))mark(isNatList(X))active(isNatList(X))
mark(isNatIList(X))active(isNatIList(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)U11(mark(X1), X2)U11(X1, X2)
U11(X1, mark(X2))U11(X1, X2)U11(active(X1), X2)U11(X1, X2)
U11(X1, active(X2))U11(X1, X2)s(mark(X))s(X)
s(active(X))s(X)length(mark(X))length(X)
length(active(X))length(X)U21(mark(X))U21(X)
U21(active(X))U21(X)U31(mark(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, mark(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, mark(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, mark(X4))U31(X1, X2, X3, X4)U31(active(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, active(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, active(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, active(X4))U31(X1, X2, X3, X4)take(mark(X1), X2)take(X1, X2)
take(X1, mark(X2))take(X1, X2)take(active(X1), X2)take(X1, X2)
take(X1, active(X2))take(X1, X2)and(mark(X1), X2)and(X1, X2)
and(X1, mark(X2))and(X1, X2)and(active(X1), X2)and(X1, X2)
and(X1, active(X2))and(X1, X2)isNat(mark(X))isNat(X)
isNat(active(X))isNat(X)isNatList(mark(X))isNatList(X)
isNatList(active(X))isNatList(X)isNatIList(mark(X))isNatIList(X)
isNatIList(active(X))isNatIList(X)

Original Signature

Termination of terms over the following signature is verified: isNatIList, mark, and, isNat, 0, isNatList, s, zeros, tt, take, length, active, U11, U31, U21, nil, cons




Open Dependency Pair Problem 15

Dependency Pairs

U31#(X1, active(X2), X3, X4)U31#(X1, X2, X3, X4)U31#(X1, X2, active(X3), X4)U31#(X1, X2, X3, X4)
U31#(X1, mark(X2), X3, X4)U31#(X1, X2, X3, X4)U31#(X1, X2, X3, mark(X4))U31#(X1, X2, X3, X4)
U31#(X1, X2, mark(X3), X4)U31#(X1, X2, X3, X4)U31#(X1, X2, X3, active(X4))U31#(X1, X2, X3, X4)

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(s(length(L)))
active(U21(tt))mark(nil)active(U31(tt, IL, M, N))mark(cons(N, take(M, IL)))
active(and(tt, X))mark(X)active(isNat(0))mark(tt)
active(isNat(length(V1)))mark(isNatList(V1))active(isNat(s(V1)))mark(isNat(V1))
active(isNatIList(V))mark(isNatList(V))active(isNatIList(zeros))mark(tt)
active(isNatIList(cons(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))active(isNatList(nil))mark(tt)
active(isNatList(cons(V1, V2)))mark(and(isNat(V1), isNatList(V2)))active(isNatList(take(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))
active(length(nil))mark(0)active(length(cons(N, L)))mark(U11(and(isNatList(L), isNat(N)), L))
active(take(0, IL))mark(U21(isNatIList(IL)))active(take(s(M), cons(N, IL)))mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))
mark(zeros)active(zeros)mark(cons(X1, X2))active(cons(mark(X1), X2))
mark(0)active(0)mark(U11(X1, X2))active(U11(mark(X1), X2))
mark(tt)active(tt)mark(s(X))active(s(mark(X)))
mark(length(X))active(length(mark(X)))mark(U21(X))active(U21(mark(X)))
mark(nil)active(nil)mark(U31(X1, X2, X3, X4))active(U31(mark(X1), X2, X3, X4))
mark(take(X1, X2))active(take(mark(X1), mark(X2)))mark(and(X1, X2))active(and(mark(X1), X2))
mark(isNat(X))active(isNat(X))mark(isNatList(X))active(isNatList(X))
mark(isNatIList(X))active(isNatIList(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)U11(mark(X1), X2)U11(X1, X2)
U11(X1, mark(X2))U11(X1, X2)U11(active(X1), X2)U11(X1, X2)
U11(X1, active(X2))U11(X1, X2)s(mark(X))s(X)
s(active(X))s(X)length(mark(X))length(X)
length(active(X))length(X)U21(mark(X))U21(X)
U21(active(X))U21(X)U31(mark(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, mark(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, mark(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, mark(X4))U31(X1, X2, X3, X4)U31(active(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, active(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, active(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, active(X4))U31(X1, X2, X3, X4)take(mark(X1), X2)take(X1, X2)
take(X1, mark(X2))take(X1, X2)take(active(X1), X2)take(X1, X2)
take(X1, active(X2))take(X1, X2)and(mark(X1), X2)and(X1, X2)
and(X1, mark(X2))and(X1, X2)and(active(X1), X2)and(X1, X2)
and(X1, active(X2))and(X1, X2)isNat(mark(X))isNat(X)
isNat(active(X))isNat(X)isNatList(mark(X))isNatList(X)
isNatList(active(X))isNatList(X)isNatIList(mark(X))isNatIList(X)
isNatIList(active(X))isNatIList(X)

Original Signature

Termination of terms over the following signature is verified: isNatIList, mark, and, isNat, 0, isNatList, s, zeros, tt, take, length, active, U11, U31, U21, nil, cons


Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

mark#(U11(X1, X2))mark#(X1)mark#(U31(X1, X2, X3, X4))mark#(X1)
U31#(X1, X2, active(X3), X4)U31#(X1, X2, X3, X4)active#(length(nil))mark#(0)
mark#(take(X1, X2))active#(take(mark(X1), mark(X2)))U11#(mark(X1), X2)U11#(X1, X2)
active#(isNatList(take(V1, V2)))mark#(and(isNat(V1), isNatIList(V2)))active#(isNat(length(V1)))isNatList#(V1)
active#(U31(tt, IL, M, N))mark#(cons(N, take(M, IL)))active#(isNatIList(V))mark#(isNatList(V))
isNat#(active(X))isNat#(X)mark#(s(X))mark#(X)
mark#(U11(X1, X2))active#(U11(mark(X1), X2))active#(U11(tt, L))s#(length(L))
length#(mark(X))length#(X)U11#(active(X1), X2)U11#(X1, X2)
active#(isNatIList(cons(V1, V2)))mark#(and(isNat(V1), isNatIList(V2)))active#(U11(tt, L))mark#(s(length(L)))
mark#(cons(X1, X2))mark#(X1)active#(U31(tt, IL, M, N))take#(M, IL)
and#(mark(X1), X2)and#(X1, X2)active#(isNatIList(cons(V1, V2)))isNat#(V1)
U11#(X1, mark(X2))U11#(X1, X2)mark#(and(X1, X2))mark#(X1)
U11#(X1, active(X2))U11#(X1, X2)active#(take(s(M), cons(N, IL)))isNat#(M)
cons#(mark(X1), X2)cons#(X1, X2)mark#(tt)active#(tt)
active#(isNatIList(cons(V1, V2)))and#(isNat(V1), isNatIList(V2))active#(take(s(M), cons(N, IL)))isNat#(N)
mark#(U21(X))mark#(X)U31#(mark(X1), X2, X3, X4)U31#(X1, X2, X3, X4)
mark#(length(X))mark#(X)active#(U31(tt, IL, M, N))cons#(N, take(M, IL))
cons#(X1, mark(X2))cons#(X1, X2)U31#(X1, X2, mark(X3), X4)U31#(X1, X2, X3, X4)
mark#(zeros)active#(zeros)active#(isNat(s(V1)))isNat#(V1)
active#(take(s(M), cons(N, IL)))and#(isNat(M), isNat(N))mark#(0)active#(0)
mark#(s(X))active#(s(mark(X)))active#(isNatIList(cons(V1, V2)))isNatIList#(V2)
active#(isNatList(cons(V1, V2)))and#(isNat(V1), isNatList(V2))active#(take(s(M), cons(N, IL)))and#(isNatIList(IL), and(isNat(M), isNat(N)))
active#(take(s(M), cons(N, IL)))U31#(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)cons#(active(X1), X2)cons#(X1, X2)
active#(isNatList(take(V1, V2)))and#(isNat(V1), isNatIList(V2))U31#(X1, mark(X2), X3, X4)U31#(X1, X2, X3, X4)
isNatList#(mark(X))isNatList#(X)active#(isNat(length(V1)))mark#(isNatList(V1))
mark#(isNatList(X))isNatList#(X)active#(zeros)cons#(0, zeros)
mark#(U21(X))U21#(mark(X))U31#(X1, active(X2), X3, X4)U31#(X1, X2, X3, X4)
mark#(cons(X1, X2))active#(cons(mark(X1), X2))mark#(take(X1, X2))mark#(X1)
mark#(U21(X))active#(U21(mark(X)))active#(take(s(M), cons(N, IL)))isNatIList#(IL)
active#(U21(tt))mark#(nil)mark#(s(X))s#(mark(X))
active#(isNat(s(V1)))mark#(isNat(V1))active#(length(cons(N, L)))U11#(and(isNatList(L), isNat(N)), L)
length#(active(X))length#(X)active#(isNatList(cons(V1, V2)))isNatList#(V2)
mark#(isNatIList(X))active#(isNatIList(X))isNatList#(active(X))isNatList#(X)
isNatIList#(active(X))isNatIList#(X)active#(isNat(0))mark#(tt)
mark#(and(X1, X2))and#(mark(X1), X2)U31#(active(X1), X2, X3, X4)U31#(X1, X2, X3, X4)
take#(X1, mark(X2))take#(X1, X2)isNatIList#(mark(X))isNatIList#(X)
mark#(isNatIList(X))isNatIList#(X)active#(isNatList(cons(V1, V2)))mark#(and(isNat(V1), isNatList(V2)))
active#(U11(tt, L))length#(L)cons#(X1, active(X2))cons#(X1, X2)
active#(length(cons(N, L)))mark#(U11(and(isNatList(L), isNat(N)), L))U31#(X1, X2, X3, active(X4))U31#(X1, X2, X3, X4)
active#(isNatList(cons(V1, V2)))isNat#(V1)and#(active(X1), X2)and#(X1, X2)
take#(mark(X1), X2)take#(X1, X2)mark#(isNat(X))active#(isNat(X))
and#(X1, active(X2))and#(X1, X2)isNat#(mark(X))isNat#(X)
mark#(U31(X1, X2, X3, X4))active#(U31(mark(X1), X2, X3, X4))mark#(isNat(X))isNat#(X)
active#(length(cons(N, L)))isNatList#(L)active#(isNatList(nil))mark#(tt)
mark#(nil)active#(nil)take#(X1, active(X2))take#(X1, X2)
active#(length(cons(N, L)))isNat#(N)active#(isNatList(take(V1, V2)))isNat#(V1)
mark#(U11(X1, X2))U11#(mark(X1), X2)mark#(and(X1, X2))active#(and(mark(X1), X2))
active#(isNatIList(zeros))mark#(tt)mark#(cons(X1, X2))cons#(mark(X1), X2)
and#(X1, mark(X2))and#(X1, X2)mark#(length(X))length#(mark(X))
mark#(U31(X1, X2, X3, X4))U31#(mark(X1), X2, X3, X4)U21#(mark(X))U21#(X)
U21#(active(X))U21#(X)active#(length(cons(N, L)))and#(isNatList(L), isNat(N))
active#(and(tt, X))mark#(X)mark#(take(X1, X2))take#(mark(X1), mark(X2))
active#(isNatIList(V))isNatList#(V)active#(isNatList(take(V1, V2)))isNatIList#(V2)
active#(take(0, IL))U21#(isNatIList(IL))s#(mark(X))s#(X)
active#(take(s(M), cons(N, IL)))mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))U31#(X1, X2, X3, mark(X4))U31#(X1, X2, X3, X4)
mark#(take(X1, X2))mark#(X2)active#(zeros)mark#(cons(0, zeros))
s#(active(X))s#(X)mark#(isNatList(X))active#(isNatList(X))
mark#(length(X))active#(length(mark(X)))active#(take(0, IL))mark#(U21(isNatIList(IL)))
active#(take(0, IL))isNatIList#(IL)take#(active(X1), X2)take#(X1, X2)

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(s(length(L)))
active(U21(tt))mark(nil)active(U31(tt, IL, M, N))mark(cons(N, take(M, IL)))
active(and(tt, X))mark(X)active(isNat(0))mark(tt)
active(isNat(length(V1)))mark(isNatList(V1))active(isNat(s(V1)))mark(isNat(V1))
active(isNatIList(V))mark(isNatList(V))active(isNatIList(zeros))mark(tt)
active(isNatIList(cons(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))active(isNatList(nil))mark(tt)
active(isNatList(cons(V1, V2)))mark(and(isNat(V1), isNatList(V2)))active(isNatList(take(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))
active(length(nil))mark(0)active(length(cons(N, L)))mark(U11(and(isNatList(L), isNat(N)), L))
active(take(0, IL))mark(U21(isNatIList(IL)))active(take(s(M), cons(N, IL)))mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))
mark(zeros)active(zeros)mark(cons(X1, X2))active(cons(mark(X1), X2))
mark(0)active(0)mark(U11(X1, X2))active(U11(mark(X1), X2))
mark(tt)active(tt)mark(s(X))active(s(mark(X)))
mark(length(X))active(length(mark(X)))mark(U21(X))active(U21(mark(X)))
mark(nil)active(nil)mark(U31(X1, X2, X3, X4))active(U31(mark(X1), X2, X3, X4))
mark(take(X1, X2))active(take(mark(X1), mark(X2)))mark(and(X1, X2))active(and(mark(X1), X2))
mark(isNat(X))active(isNat(X))mark(isNatList(X))active(isNatList(X))
mark(isNatIList(X))active(isNatIList(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)U11(mark(X1), X2)U11(X1, X2)
U11(X1, mark(X2))U11(X1, X2)U11(active(X1), X2)U11(X1, X2)
U11(X1, active(X2))U11(X1, X2)s(mark(X))s(X)
s(active(X))s(X)length(mark(X))length(X)
length(active(X))length(X)U21(mark(X))U21(X)
U21(active(X))U21(X)U31(mark(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, mark(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, mark(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, mark(X4))U31(X1, X2, X3, X4)U31(active(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, active(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, active(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, active(X4))U31(X1, X2, X3, X4)take(mark(X1), X2)take(X1, X2)
take(X1, mark(X2))take(X1, X2)take(active(X1), X2)take(X1, X2)
take(X1, active(X2))take(X1, X2)and(mark(X1), X2)and(X1, X2)
and(X1, mark(X2))and(X1, X2)and(active(X1), X2)and(X1, X2)
and(X1, active(X2))and(X1, X2)isNat(mark(X))isNat(X)
isNat(active(X))isNat(X)isNatList(mark(X))isNatList(X)
isNatList(active(X))isNatList(X)isNatIList(mark(X))isNatIList(X)
isNatIList(active(X))isNatIList(X)

Original Signature

Termination of terms over the following signature is verified: isNatIList, mark, and, isNat, 0, isNatList, s, zeros, tt, take, length, active, U11, U31, U21, nil, cons

Strategy


The following SCCs where found

U11#(X1, active(X2)) → U11#(X1, X2)U11#(active(X1), X2) → U11#(X1, X2)
U11#(mark(X1), X2) → U11#(X1, X2)U11#(X1, mark(X2)) → U11#(X1, X2)

isNatIList#(active(X)) → isNatIList#(X)isNatIList#(mark(X)) → isNatIList#(X)

length#(mark(X)) → length#(X)length#(active(X)) → length#(X)

U31#(X1, active(X2), X3, X4) → U31#(X1, X2, X3, X4)U31#(X1, X2, active(X3), X4) → U31#(X1, X2, X3, X4)
U31#(X1, mark(X2), X3, X4) → U31#(X1, X2, X3, X4)U31#(mark(X1), X2, X3, X4) → U31#(X1, X2, X3, X4)
U31#(X1, X2, X3, mark(X4)) → U31#(X1, X2, X3, X4)U31#(active(X1), X2, X3, X4) → U31#(X1, X2, X3, X4)
U31#(X1, X2, mark(X3), X4) → U31#(X1, X2, X3, X4)U31#(X1, X2, X3, active(X4)) → U31#(X1, X2, X3, X4)

isNatList#(mark(X)) → isNatList#(X)isNatList#(active(X)) → isNatList#(X)

cons#(X1, active(X2)) → cons#(X1, X2)cons#(mark(X1), X2) → cons#(X1, X2)
cons#(active(X1), X2) → cons#(X1, X2)cons#(X1, mark(X2)) → cons#(X1, X2)

s#(mark(X)) → s#(X)s#(active(X)) → s#(X)

mark#(cons(X1, X2)) → active#(cons(mark(X1), X2))mark#(U11(X1, X2)) → mark#(X1)
mark#(U31(X1, X2, X3, X4)) → mark#(X1)mark#(take(X1, X2)) → mark#(X1)
mark#(isNat(X)) → active#(isNat(X))mark#(U21(X)) → active#(U21(mark(X)))
mark#(tt) → active#(tt)active#(length(nil)) → mark#(0)
mark#(take(X1, X2)) → active#(take(mark(X1), mark(X2)))active#(U21(tt)) → mark#(nil)
mark#(U31(X1, X2, X3, X4)) → active#(U31(mark(X1), X2, X3, X4))active#(isNatList(take(V1, V2))) → mark#(and(isNat(V1), isNatIList(V2)))
mark#(U21(X)) → mark#(X)active#(isNat(s(V1))) → mark#(isNat(V1))
active#(isNatList(nil)) → mark#(tt)mark#(nil) → active#(nil)
active#(U31(tt, IL, M, N)) → mark#(cons(N, take(M, IL)))active#(isNatIList(V)) → mark#(isNatList(V))
mark#(and(X1, X2)) → active#(and(mark(X1), X2))mark#(length(X)) → mark#(X)
mark#(s(X)) → mark#(X)active#(isNatIList(zeros)) → mark#(tt)
mark#(zeros) → active#(zeros)mark#(U11(X1, X2)) → active#(U11(mark(X1), X2))
mark#(isNatIList(X)) → active#(isNatIList(X))mark#(0) → active#(0)
mark#(s(X)) → active#(s(mark(X)))active#(isNatIList(cons(V1, V2))) → mark#(and(isNat(V1), isNatIList(V2)))
active#(isNat(0)) → mark#(tt)active#(U11(tt, L)) → mark#(s(length(L)))
mark#(cons(X1, X2)) → mark#(X1)active#(and(tt, X)) → mark#(X)
mark#(and(X1, X2)) → mark#(X1)active#(isNatList(cons(V1, V2))) → mark#(and(isNat(V1), isNatList(V2)))
active#(isNat(length(V1))) → mark#(isNatList(V1))active#(take(s(M), cons(N, IL))) → mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))
mark#(take(X1, X2)) → mark#(X2)active#(length(cons(N, L))) → mark#(U11(and(isNatList(L), isNat(N)), L))
active#(zeros) → mark#(cons(0, zeros))mark#(isNatList(X)) → active#(isNatList(X))
mark#(length(X)) → active#(length(mark(X)))active#(take(0, IL)) → mark#(U21(isNatIList(IL)))

and#(active(X1), X2) → and#(X1, X2)and#(X1, active(X2)) → and#(X1, X2)
and#(mark(X1), X2) → and#(X1, X2)and#(X1, mark(X2)) → and#(X1, X2)

isNat#(active(X)) → isNat#(X)isNat#(mark(X)) → isNat#(X)

U21#(mark(X)) → U21#(X)U21#(active(X)) → U21#(X)

take#(mark(X1), X2) → take#(X1, X2)take#(X1, active(X2)) → take#(X1, X2)
take#(X1, mark(X2)) → take#(X1, X2)take#(active(X1), X2) → take#(X1, X2)

Problem 2: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

isNat#(active(X))isNat#(X)isNat#(mark(X))isNat#(X)

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(s(length(L)))
active(U21(tt))mark(nil)active(U31(tt, IL, M, N))mark(cons(N, take(M, IL)))
active(and(tt, X))mark(X)active(isNat(0))mark(tt)
active(isNat(length(V1)))mark(isNatList(V1))active(isNat(s(V1)))mark(isNat(V1))
active(isNatIList(V))mark(isNatList(V))active(isNatIList(zeros))mark(tt)
active(isNatIList(cons(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))active(isNatList(nil))mark(tt)
active(isNatList(cons(V1, V2)))mark(and(isNat(V1), isNatList(V2)))active(isNatList(take(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))
active(length(nil))mark(0)active(length(cons(N, L)))mark(U11(and(isNatList(L), isNat(N)), L))
active(take(0, IL))mark(U21(isNatIList(IL)))active(take(s(M), cons(N, IL)))mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))
mark(zeros)active(zeros)mark(cons(X1, X2))active(cons(mark(X1), X2))
mark(0)active(0)mark(U11(X1, X2))active(U11(mark(X1), X2))
mark(tt)active(tt)mark(s(X))active(s(mark(X)))
mark(length(X))active(length(mark(X)))mark(U21(X))active(U21(mark(X)))
mark(nil)active(nil)mark(U31(X1, X2, X3, X4))active(U31(mark(X1), X2, X3, X4))
mark(take(X1, X2))active(take(mark(X1), mark(X2)))mark(and(X1, X2))active(and(mark(X1), X2))
mark(isNat(X))active(isNat(X))mark(isNatList(X))active(isNatList(X))
mark(isNatIList(X))active(isNatIList(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)U11(mark(X1), X2)U11(X1, X2)
U11(X1, mark(X2))U11(X1, X2)U11(active(X1), X2)U11(X1, X2)
U11(X1, active(X2))U11(X1, X2)s(mark(X))s(X)
s(active(X))s(X)length(mark(X))length(X)
length(active(X))length(X)U21(mark(X))U21(X)
U21(active(X))U21(X)U31(mark(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, mark(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, mark(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, mark(X4))U31(X1, X2, X3, X4)U31(active(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, active(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, active(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, active(X4))U31(X1, X2, X3, X4)take(mark(X1), X2)take(X1, X2)
take(X1, mark(X2))take(X1, X2)take(active(X1), X2)take(X1, X2)
take(X1, active(X2))take(X1, X2)and(mark(X1), X2)and(X1, X2)
and(X1, mark(X2))and(X1, X2)and(active(X1), X2)and(X1, X2)
and(X1, active(X2))and(X1, X2)isNat(mark(X))isNat(X)
isNat(active(X))isNat(X)isNatList(mark(X))isNatList(X)
isNatList(active(X))isNatList(X)isNatIList(mark(X))isNatIList(X)
isNatIList(active(X))isNatIList(X)

Original Signature

Termination of terms over the following signature is verified: isNatIList, mark, and, isNat, 0, isNatList, s, zeros, tt, take, length, active, U11, U31, U21, nil, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

isNat#(active(X))isNat#(X)isNat#(mark(X))isNat#(X)

Problem 3: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

U11#(X1, active(X2))U11#(X1, X2)U11#(active(X1), X2)U11#(X1, X2)
U11#(mark(X1), X2)U11#(X1, X2)U11#(X1, mark(X2))U11#(X1, X2)

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(s(length(L)))
active(U21(tt))mark(nil)active(U31(tt, IL, M, N))mark(cons(N, take(M, IL)))
active(and(tt, X))mark(X)active(isNat(0))mark(tt)
active(isNat(length(V1)))mark(isNatList(V1))active(isNat(s(V1)))mark(isNat(V1))
active(isNatIList(V))mark(isNatList(V))active(isNatIList(zeros))mark(tt)
active(isNatIList(cons(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))active(isNatList(nil))mark(tt)
active(isNatList(cons(V1, V2)))mark(and(isNat(V1), isNatList(V2)))active(isNatList(take(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))
active(length(nil))mark(0)active(length(cons(N, L)))mark(U11(and(isNatList(L), isNat(N)), L))
active(take(0, IL))mark(U21(isNatIList(IL)))active(take(s(M), cons(N, IL)))mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))
mark(zeros)active(zeros)mark(cons(X1, X2))active(cons(mark(X1), X2))
mark(0)active(0)mark(U11(X1, X2))active(U11(mark(X1), X2))
mark(tt)active(tt)mark(s(X))active(s(mark(X)))
mark(length(X))active(length(mark(X)))mark(U21(X))active(U21(mark(X)))
mark(nil)active(nil)mark(U31(X1, X2, X3, X4))active(U31(mark(X1), X2, X3, X4))
mark(take(X1, X2))active(take(mark(X1), mark(X2)))mark(and(X1, X2))active(and(mark(X1), X2))
mark(isNat(X))active(isNat(X))mark(isNatList(X))active(isNatList(X))
mark(isNatIList(X))active(isNatIList(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)U11(mark(X1), X2)U11(X1, X2)
U11(X1, mark(X2))U11(X1, X2)U11(active(X1), X2)U11(X1, X2)
U11(X1, active(X2))U11(X1, X2)s(mark(X))s(X)
s(active(X))s(X)length(mark(X))length(X)
length(active(X))length(X)U21(mark(X))U21(X)
U21(active(X))U21(X)U31(mark(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, mark(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, mark(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, mark(X4))U31(X1, X2, X3, X4)U31(active(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, active(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, active(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, active(X4))U31(X1, X2, X3, X4)take(mark(X1), X2)take(X1, X2)
take(X1, mark(X2))take(X1, X2)take(active(X1), X2)take(X1, X2)
take(X1, active(X2))take(X1, X2)and(mark(X1), X2)and(X1, X2)
and(X1, mark(X2))and(X1, X2)and(active(X1), X2)and(X1, X2)
and(X1, active(X2))and(X1, X2)isNat(mark(X))isNat(X)
isNat(active(X))isNat(X)isNatList(mark(X))isNatList(X)
isNatList(active(X))isNatList(X)isNatIList(mark(X))isNatIList(X)
isNatIList(active(X))isNatIList(X)

Original Signature

Termination of terms over the following signature is verified: isNatIList, mark, and, isNat, 0, isNatList, s, zeros, tt, take, length, active, U11, U31, U21, nil, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

U11#(active(X1), X2)U11#(X1, X2)U11#(mark(X1), X2)U11#(X1, X2)

Problem 4: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

s#(mark(X))s#(X)s#(active(X))s#(X)

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(s(length(L)))
active(U21(tt))mark(nil)active(U31(tt, IL, M, N))mark(cons(N, take(M, IL)))
active(and(tt, X))mark(X)active(isNat(0))mark(tt)
active(isNat(length(V1)))mark(isNatList(V1))active(isNat(s(V1)))mark(isNat(V1))
active(isNatIList(V))mark(isNatList(V))active(isNatIList(zeros))mark(tt)
active(isNatIList(cons(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))active(isNatList(nil))mark(tt)
active(isNatList(cons(V1, V2)))mark(and(isNat(V1), isNatList(V2)))active(isNatList(take(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))
active(length(nil))mark(0)active(length(cons(N, L)))mark(U11(and(isNatList(L), isNat(N)), L))
active(take(0, IL))mark(U21(isNatIList(IL)))active(take(s(M), cons(N, IL)))mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))
mark(zeros)active(zeros)mark(cons(X1, X2))active(cons(mark(X1), X2))
mark(0)active(0)mark(U11(X1, X2))active(U11(mark(X1), X2))
mark(tt)active(tt)mark(s(X))active(s(mark(X)))
mark(length(X))active(length(mark(X)))mark(U21(X))active(U21(mark(X)))
mark(nil)active(nil)mark(U31(X1, X2, X3, X4))active(U31(mark(X1), X2, X3, X4))
mark(take(X1, X2))active(take(mark(X1), mark(X2)))mark(and(X1, X2))active(and(mark(X1), X2))
mark(isNat(X))active(isNat(X))mark(isNatList(X))active(isNatList(X))
mark(isNatIList(X))active(isNatIList(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)U11(mark(X1), X2)U11(X1, X2)
U11(X1, mark(X2))U11(X1, X2)U11(active(X1), X2)U11(X1, X2)
U11(X1, active(X2))U11(X1, X2)s(mark(X))s(X)
s(active(X))s(X)length(mark(X))length(X)
length(active(X))length(X)U21(mark(X))U21(X)
U21(active(X))U21(X)U31(mark(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, mark(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, mark(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, mark(X4))U31(X1, X2, X3, X4)U31(active(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, active(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, active(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, active(X4))U31(X1, X2, X3, X4)take(mark(X1), X2)take(X1, X2)
take(X1, mark(X2))take(X1, X2)take(active(X1), X2)take(X1, X2)
take(X1, active(X2))take(X1, X2)and(mark(X1), X2)and(X1, X2)
and(X1, mark(X2))and(X1, X2)and(active(X1), X2)and(X1, X2)
and(X1, active(X2))and(X1, X2)isNat(mark(X))isNat(X)
isNat(active(X))isNat(X)isNatList(mark(X))isNatList(X)
isNatList(active(X))isNatList(X)isNatIList(mark(X))isNatIList(X)
isNatIList(active(X))isNatIList(X)

Original Signature

Termination of terms over the following signature is verified: isNatIList, mark, and, isNat, 0, isNatList, s, zeros, tt, take, length, active, U11, U31, U21, nil, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

s#(mark(X))s#(X)s#(active(X))s#(X)

Problem 5: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

U21#(mark(X))U21#(X)U21#(active(X))U21#(X)

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(s(length(L)))
active(U21(tt))mark(nil)active(U31(tt, IL, M, N))mark(cons(N, take(M, IL)))
active(and(tt, X))mark(X)active(isNat(0))mark(tt)
active(isNat(length(V1)))mark(isNatList(V1))active(isNat(s(V1)))mark(isNat(V1))
active(isNatIList(V))mark(isNatList(V))active(isNatIList(zeros))mark(tt)
active(isNatIList(cons(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))active(isNatList(nil))mark(tt)
active(isNatList(cons(V1, V2)))mark(and(isNat(V1), isNatList(V2)))active(isNatList(take(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))
active(length(nil))mark(0)active(length(cons(N, L)))mark(U11(and(isNatList(L), isNat(N)), L))
active(take(0, IL))mark(U21(isNatIList(IL)))active(take(s(M), cons(N, IL)))mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))
mark(zeros)active(zeros)mark(cons(X1, X2))active(cons(mark(X1), X2))
mark(0)active(0)mark(U11(X1, X2))active(U11(mark(X1), X2))
mark(tt)active(tt)mark(s(X))active(s(mark(X)))
mark(length(X))active(length(mark(X)))mark(U21(X))active(U21(mark(X)))
mark(nil)active(nil)mark(U31(X1, X2, X3, X4))active(U31(mark(X1), X2, X3, X4))
mark(take(X1, X2))active(take(mark(X1), mark(X2)))mark(and(X1, X2))active(and(mark(X1), X2))
mark(isNat(X))active(isNat(X))mark(isNatList(X))active(isNatList(X))
mark(isNatIList(X))active(isNatIList(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)U11(mark(X1), X2)U11(X1, X2)
U11(X1, mark(X2))U11(X1, X2)U11(active(X1), X2)U11(X1, X2)
U11(X1, active(X2))U11(X1, X2)s(mark(X))s(X)
s(active(X))s(X)length(mark(X))length(X)
length(active(X))length(X)U21(mark(X))U21(X)
U21(active(X))U21(X)U31(mark(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, mark(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, mark(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, mark(X4))U31(X1, X2, X3, X4)U31(active(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, active(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, active(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, active(X4))U31(X1, X2, X3, X4)take(mark(X1), X2)take(X1, X2)
take(X1, mark(X2))take(X1, X2)take(active(X1), X2)take(X1, X2)
take(X1, active(X2))take(X1, X2)and(mark(X1), X2)and(X1, X2)
and(X1, mark(X2))and(X1, X2)and(active(X1), X2)and(X1, X2)
and(X1, active(X2))and(X1, X2)isNat(mark(X))isNat(X)
isNat(active(X))isNat(X)isNatList(mark(X))isNatList(X)
isNatList(active(X))isNatList(X)isNatIList(mark(X))isNatIList(X)
isNatIList(active(X))isNatIList(X)

Original Signature

Termination of terms over the following signature is verified: isNatIList, mark, and, isNat, 0, isNatList, s, zeros, tt, take, length, active, U11, U31, U21, nil, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

U21#(mark(X))U21#(X)U21#(active(X))U21#(X)

Problem 6: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

U31#(X1, active(X2), X3, X4)U31#(X1, X2, X3, X4)U31#(X1, X2, active(X3), X4)U31#(X1, X2, X3, X4)
U31#(X1, mark(X2), X3, X4)U31#(X1, X2, X3, X4)U31#(mark(X1), X2, X3, X4)U31#(X1, X2, X3, X4)
U31#(X1, X2, X3, mark(X4))U31#(X1, X2, X3, X4)U31#(active(X1), X2, X3, X4)U31#(X1, X2, X3, X4)
U31#(X1, X2, mark(X3), X4)U31#(X1, X2, X3, X4)U31#(X1, X2, X3, active(X4))U31#(X1, X2, X3, X4)

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(s(length(L)))
active(U21(tt))mark(nil)active(U31(tt, IL, M, N))mark(cons(N, take(M, IL)))
active(and(tt, X))mark(X)active(isNat(0))mark(tt)
active(isNat(length(V1)))mark(isNatList(V1))active(isNat(s(V1)))mark(isNat(V1))
active(isNatIList(V))mark(isNatList(V))active(isNatIList(zeros))mark(tt)
active(isNatIList(cons(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))active(isNatList(nil))mark(tt)
active(isNatList(cons(V1, V2)))mark(and(isNat(V1), isNatList(V2)))active(isNatList(take(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))
active(length(nil))mark(0)active(length(cons(N, L)))mark(U11(and(isNatList(L), isNat(N)), L))
active(take(0, IL))mark(U21(isNatIList(IL)))active(take(s(M), cons(N, IL)))mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))
mark(zeros)active(zeros)mark(cons(X1, X2))active(cons(mark(X1), X2))
mark(0)active(0)mark(U11(X1, X2))active(U11(mark(X1), X2))
mark(tt)active(tt)mark(s(X))active(s(mark(X)))
mark(length(X))active(length(mark(X)))mark(U21(X))active(U21(mark(X)))
mark(nil)active(nil)mark(U31(X1, X2, X3, X4))active(U31(mark(X1), X2, X3, X4))
mark(take(X1, X2))active(take(mark(X1), mark(X2)))mark(and(X1, X2))active(and(mark(X1), X2))
mark(isNat(X))active(isNat(X))mark(isNatList(X))active(isNatList(X))
mark(isNatIList(X))active(isNatIList(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)U11(mark(X1), X2)U11(X1, X2)
U11(X1, mark(X2))U11(X1, X2)U11(active(X1), X2)U11(X1, X2)
U11(X1, active(X2))U11(X1, X2)s(mark(X))s(X)
s(active(X))s(X)length(mark(X))length(X)
length(active(X))length(X)U21(mark(X))U21(X)
U21(active(X))U21(X)U31(mark(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, mark(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, mark(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, mark(X4))U31(X1, X2, X3, X4)U31(active(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, active(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, active(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, active(X4))U31(X1, X2, X3, X4)take(mark(X1), X2)take(X1, X2)
take(X1, mark(X2))take(X1, X2)take(active(X1), X2)take(X1, X2)
take(X1, active(X2))take(X1, X2)and(mark(X1), X2)and(X1, X2)
and(X1, mark(X2))and(X1, X2)and(active(X1), X2)and(X1, X2)
and(X1, active(X2))and(X1, X2)isNat(mark(X))isNat(X)
isNat(active(X))isNat(X)isNatList(mark(X))isNatList(X)
isNatList(active(X))isNatList(X)isNatIList(mark(X))isNatIList(X)
isNatIList(active(X))isNatIList(X)

Original Signature

Termination of terms over the following signature is verified: isNatIList, mark, and, isNat, 0, isNatList, s, zeros, tt, take, length, active, U11, U31, U21, nil, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

U31#(mark(X1), X2, X3, X4)U31#(X1, X2, X3, X4)U31#(active(X1), X2, X3, X4)U31#(X1, X2, X3, X4)

Problem 7: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

and#(active(X1), X2)and#(X1, X2)and#(X1, active(X2))and#(X1, X2)
and#(mark(X1), X2)and#(X1, X2)and#(X1, mark(X2))and#(X1, X2)

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(s(length(L)))
active(U21(tt))mark(nil)active(U31(tt, IL, M, N))mark(cons(N, take(M, IL)))
active(and(tt, X))mark(X)active(isNat(0))mark(tt)
active(isNat(length(V1)))mark(isNatList(V1))active(isNat(s(V1)))mark(isNat(V1))
active(isNatIList(V))mark(isNatList(V))active(isNatIList(zeros))mark(tt)
active(isNatIList(cons(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))active(isNatList(nil))mark(tt)
active(isNatList(cons(V1, V2)))mark(and(isNat(V1), isNatList(V2)))active(isNatList(take(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))
active(length(nil))mark(0)active(length(cons(N, L)))mark(U11(and(isNatList(L), isNat(N)), L))
active(take(0, IL))mark(U21(isNatIList(IL)))active(take(s(M), cons(N, IL)))mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))
mark(zeros)active(zeros)mark(cons(X1, X2))active(cons(mark(X1), X2))
mark(0)active(0)mark(U11(X1, X2))active(U11(mark(X1), X2))
mark(tt)active(tt)mark(s(X))active(s(mark(X)))
mark(length(X))active(length(mark(X)))mark(U21(X))active(U21(mark(X)))
mark(nil)active(nil)mark(U31(X1, X2, X3, X4))active(U31(mark(X1), X2, X3, X4))
mark(take(X1, X2))active(take(mark(X1), mark(X2)))mark(and(X1, X2))active(and(mark(X1), X2))
mark(isNat(X))active(isNat(X))mark(isNatList(X))active(isNatList(X))
mark(isNatIList(X))active(isNatIList(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)U11(mark(X1), X2)U11(X1, X2)
U11(X1, mark(X2))U11(X1, X2)U11(active(X1), X2)U11(X1, X2)
U11(X1, active(X2))U11(X1, X2)s(mark(X))s(X)
s(active(X))s(X)length(mark(X))length(X)
length(active(X))length(X)U21(mark(X))U21(X)
U21(active(X))U21(X)U31(mark(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, mark(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, mark(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, mark(X4))U31(X1, X2, X3, X4)U31(active(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, active(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, active(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, active(X4))U31(X1, X2, X3, X4)take(mark(X1), X2)take(X1, X2)
take(X1, mark(X2))take(X1, X2)take(active(X1), X2)take(X1, X2)
take(X1, active(X2))take(X1, X2)and(mark(X1), X2)and(X1, X2)
and(X1, mark(X2))and(X1, X2)and(active(X1), X2)and(X1, X2)
and(X1, active(X2))and(X1, X2)isNat(mark(X))isNat(X)
isNat(active(X))isNat(X)isNatList(mark(X))isNatList(X)
isNatList(active(X))isNatList(X)isNatIList(mark(X))isNatIList(X)
isNatIList(active(X))isNatIList(X)

Original Signature

Termination of terms over the following signature is verified: isNatIList, mark, and, isNat, 0, isNatList, s, zeros, tt, take, length, active, U11, U31, U21, nil, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

and#(active(X1), X2)and#(X1, X2)and#(mark(X1), X2)and#(X1, X2)

Problem 16: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

and#(X1, active(X2))and#(X1, X2)and#(X1, mark(X2))and#(X1, X2)

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(s(length(L)))
active(U21(tt))mark(nil)active(U31(tt, IL, M, N))mark(cons(N, take(M, IL)))
active(and(tt, X))mark(X)active(isNat(0))mark(tt)
active(isNat(length(V1)))mark(isNatList(V1))active(isNat(s(V1)))mark(isNat(V1))
active(isNatIList(V))mark(isNatList(V))active(isNatIList(zeros))mark(tt)
active(isNatIList(cons(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))active(isNatList(nil))mark(tt)
active(isNatList(cons(V1, V2)))mark(and(isNat(V1), isNatList(V2)))active(isNatList(take(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))
active(length(nil))mark(0)active(length(cons(N, L)))mark(U11(and(isNatList(L), isNat(N)), L))
active(take(0, IL))mark(U21(isNatIList(IL)))active(take(s(M), cons(N, IL)))mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))
mark(zeros)active(zeros)mark(cons(X1, X2))active(cons(mark(X1), X2))
mark(0)active(0)mark(U11(X1, X2))active(U11(mark(X1), X2))
mark(tt)active(tt)mark(s(X))active(s(mark(X)))
mark(length(X))active(length(mark(X)))mark(U21(X))active(U21(mark(X)))
mark(nil)active(nil)mark(U31(X1, X2, X3, X4))active(U31(mark(X1), X2, X3, X4))
mark(take(X1, X2))active(take(mark(X1), mark(X2)))mark(and(X1, X2))active(and(mark(X1), X2))
mark(isNat(X))active(isNat(X))mark(isNatList(X))active(isNatList(X))
mark(isNatIList(X))active(isNatIList(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)U11(mark(X1), X2)U11(X1, X2)
U11(X1, mark(X2))U11(X1, X2)U11(active(X1), X2)U11(X1, X2)
U11(X1, active(X2))U11(X1, X2)s(mark(X))s(X)
s(active(X))s(X)length(mark(X))length(X)
length(active(X))length(X)U21(mark(X))U21(X)
U21(active(X))U21(X)U31(mark(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, mark(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, mark(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, mark(X4))U31(X1, X2, X3, X4)U31(active(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, active(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, active(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, active(X4))U31(X1, X2, X3, X4)take(mark(X1), X2)take(X1, X2)
take(X1, mark(X2))take(X1, X2)take(active(X1), X2)take(X1, X2)
take(X1, active(X2))take(X1, X2)and(mark(X1), X2)and(X1, X2)
and(X1, mark(X2))and(X1, X2)and(active(X1), X2)and(X1, X2)
and(X1, active(X2))and(X1, X2)isNat(mark(X))isNat(X)
isNat(active(X))isNat(X)isNatList(mark(X))isNatList(X)
isNatList(active(X))isNatList(X)isNatIList(mark(X))isNatIList(X)
isNatIList(active(X))isNatIList(X)

Original Signature

Termination of terms over the following signature is verified: isNatIList, mark, and, isNat, 0, isNatList, s, zeros, tt, take, length, active, U11, U31, U21, cons, nil

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:

and#(X1, active(X2))and#(X1, X2)and#(X1, mark(X2))and#(X1, X2)

Problem 8: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

isNatIList#(active(X))isNatIList#(X)isNatIList#(mark(X))isNatIList#(X)

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(s(length(L)))
active(U21(tt))mark(nil)active(U31(tt, IL, M, N))mark(cons(N, take(M, IL)))
active(and(tt, X))mark(X)active(isNat(0))mark(tt)
active(isNat(length(V1)))mark(isNatList(V1))active(isNat(s(V1)))mark(isNat(V1))
active(isNatIList(V))mark(isNatList(V))active(isNatIList(zeros))mark(tt)
active(isNatIList(cons(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))active(isNatList(nil))mark(tt)
active(isNatList(cons(V1, V2)))mark(and(isNat(V1), isNatList(V2)))active(isNatList(take(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))
active(length(nil))mark(0)active(length(cons(N, L)))mark(U11(and(isNatList(L), isNat(N)), L))
active(take(0, IL))mark(U21(isNatIList(IL)))active(take(s(M), cons(N, IL)))mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))
mark(zeros)active(zeros)mark(cons(X1, X2))active(cons(mark(X1), X2))
mark(0)active(0)mark(U11(X1, X2))active(U11(mark(X1), X2))
mark(tt)active(tt)mark(s(X))active(s(mark(X)))
mark(length(X))active(length(mark(X)))mark(U21(X))active(U21(mark(X)))
mark(nil)active(nil)mark(U31(X1, X2, X3, X4))active(U31(mark(X1), X2, X3, X4))
mark(take(X1, X2))active(take(mark(X1), mark(X2)))mark(and(X1, X2))active(and(mark(X1), X2))
mark(isNat(X))active(isNat(X))mark(isNatList(X))active(isNatList(X))
mark(isNatIList(X))active(isNatIList(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)U11(mark(X1), X2)U11(X1, X2)
U11(X1, mark(X2))U11(X1, X2)U11(active(X1), X2)U11(X1, X2)
U11(X1, active(X2))U11(X1, X2)s(mark(X))s(X)
s(active(X))s(X)length(mark(X))length(X)
length(active(X))length(X)U21(mark(X))U21(X)
U21(active(X))U21(X)U31(mark(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, mark(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, mark(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, mark(X4))U31(X1, X2, X3, X4)U31(active(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, active(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, active(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, active(X4))U31(X1, X2, X3, X4)take(mark(X1), X2)take(X1, X2)
take(X1, mark(X2))take(X1, X2)take(active(X1), X2)take(X1, X2)
take(X1, active(X2))take(X1, X2)and(mark(X1), X2)and(X1, X2)
and(X1, mark(X2))and(X1, X2)and(active(X1), X2)and(X1, X2)
and(X1, active(X2))and(X1, X2)isNat(mark(X))isNat(X)
isNat(active(X))isNat(X)isNatList(mark(X))isNatList(X)
isNatList(active(X))isNatList(X)isNatIList(mark(X))isNatIList(X)
isNatIList(active(X))isNatIList(X)

Original Signature

Termination of terms over the following signature is verified: isNatIList, mark, and, isNat, 0, isNatList, s, zeros, tt, take, length, active, U11, U31, U21, nil, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

isNatIList#(active(X))isNatIList#(X)isNatIList#(mark(X))isNatIList#(X)

Problem 10: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

isNatList#(mark(X))isNatList#(X)isNatList#(active(X))isNatList#(X)

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(s(length(L)))
active(U21(tt))mark(nil)active(U31(tt, IL, M, N))mark(cons(N, take(M, IL)))
active(and(tt, X))mark(X)active(isNat(0))mark(tt)
active(isNat(length(V1)))mark(isNatList(V1))active(isNat(s(V1)))mark(isNat(V1))
active(isNatIList(V))mark(isNatList(V))active(isNatIList(zeros))mark(tt)
active(isNatIList(cons(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))active(isNatList(nil))mark(tt)
active(isNatList(cons(V1, V2)))mark(and(isNat(V1), isNatList(V2)))active(isNatList(take(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))
active(length(nil))mark(0)active(length(cons(N, L)))mark(U11(and(isNatList(L), isNat(N)), L))
active(take(0, IL))mark(U21(isNatIList(IL)))active(take(s(M), cons(N, IL)))mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))
mark(zeros)active(zeros)mark(cons(X1, X2))active(cons(mark(X1), X2))
mark(0)active(0)mark(U11(X1, X2))active(U11(mark(X1), X2))
mark(tt)active(tt)mark(s(X))active(s(mark(X)))
mark(length(X))active(length(mark(X)))mark(U21(X))active(U21(mark(X)))
mark(nil)active(nil)mark(U31(X1, X2, X3, X4))active(U31(mark(X1), X2, X3, X4))
mark(take(X1, X2))active(take(mark(X1), mark(X2)))mark(and(X1, X2))active(and(mark(X1), X2))
mark(isNat(X))active(isNat(X))mark(isNatList(X))active(isNatList(X))
mark(isNatIList(X))active(isNatIList(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)U11(mark(X1), X2)U11(X1, X2)
U11(X1, mark(X2))U11(X1, X2)U11(active(X1), X2)U11(X1, X2)
U11(X1, active(X2))U11(X1, X2)s(mark(X))s(X)
s(active(X))s(X)length(mark(X))length(X)
length(active(X))length(X)U21(mark(X))U21(X)
U21(active(X))U21(X)U31(mark(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, mark(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, mark(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, mark(X4))U31(X1, X2, X3, X4)U31(active(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, active(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, active(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, active(X4))U31(X1, X2, X3, X4)take(mark(X1), X2)take(X1, X2)
take(X1, mark(X2))take(X1, X2)take(active(X1), X2)take(X1, X2)
take(X1, active(X2))take(X1, X2)and(mark(X1), X2)and(X1, X2)
and(X1, mark(X2))and(X1, X2)and(active(X1), X2)and(X1, X2)
and(X1, active(X2))and(X1, X2)isNat(mark(X))isNat(X)
isNat(active(X))isNat(X)isNatList(mark(X))isNatList(X)
isNatList(active(X))isNatList(X)isNatIList(mark(X))isNatIList(X)
isNatIList(active(X))isNatIList(X)

Original Signature

Termination of terms over the following signature is verified: isNatIList, mark, and, isNat, 0, isNatList, s, zeros, tt, take, length, active, U11, U31, U21, nil, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

isNatList#(mark(X))isNatList#(X)isNatList#(active(X))isNatList#(X)

Problem 11: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

take#(mark(X1), X2)take#(X1, X2)take#(X1, active(X2))take#(X1, X2)
take#(X1, mark(X2))take#(X1, X2)take#(active(X1), X2)take#(X1, X2)

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(s(length(L)))
active(U21(tt))mark(nil)active(U31(tt, IL, M, N))mark(cons(N, take(M, IL)))
active(and(tt, X))mark(X)active(isNat(0))mark(tt)
active(isNat(length(V1)))mark(isNatList(V1))active(isNat(s(V1)))mark(isNat(V1))
active(isNatIList(V))mark(isNatList(V))active(isNatIList(zeros))mark(tt)
active(isNatIList(cons(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))active(isNatList(nil))mark(tt)
active(isNatList(cons(V1, V2)))mark(and(isNat(V1), isNatList(V2)))active(isNatList(take(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))
active(length(nil))mark(0)active(length(cons(N, L)))mark(U11(and(isNatList(L), isNat(N)), L))
active(take(0, IL))mark(U21(isNatIList(IL)))active(take(s(M), cons(N, IL)))mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))
mark(zeros)active(zeros)mark(cons(X1, X2))active(cons(mark(X1), X2))
mark(0)active(0)mark(U11(X1, X2))active(U11(mark(X1), X2))
mark(tt)active(tt)mark(s(X))active(s(mark(X)))
mark(length(X))active(length(mark(X)))mark(U21(X))active(U21(mark(X)))
mark(nil)active(nil)mark(U31(X1, X2, X3, X4))active(U31(mark(X1), X2, X3, X4))
mark(take(X1, X2))active(take(mark(X1), mark(X2)))mark(and(X1, X2))active(and(mark(X1), X2))
mark(isNat(X))active(isNat(X))mark(isNatList(X))active(isNatList(X))
mark(isNatIList(X))active(isNatIList(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)U11(mark(X1), X2)U11(X1, X2)
U11(X1, mark(X2))U11(X1, X2)U11(active(X1), X2)U11(X1, X2)
U11(X1, active(X2))U11(X1, X2)s(mark(X))s(X)
s(active(X))s(X)length(mark(X))length(X)
length(active(X))length(X)U21(mark(X))U21(X)
U21(active(X))U21(X)U31(mark(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, mark(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, mark(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, mark(X4))U31(X1, X2, X3, X4)U31(active(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, active(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, active(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, active(X4))U31(X1, X2, X3, X4)take(mark(X1), X2)take(X1, X2)
take(X1, mark(X2))take(X1, X2)take(active(X1), X2)take(X1, X2)
take(X1, active(X2))take(X1, X2)and(mark(X1), X2)and(X1, X2)
and(X1, mark(X2))and(X1, X2)and(active(X1), X2)and(X1, X2)
and(X1, active(X2))and(X1, X2)isNat(mark(X))isNat(X)
isNat(active(X))isNat(X)isNatList(mark(X))isNatList(X)
isNatList(active(X))isNatList(X)isNatIList(mark(X))isNatIList(X)
isNatIList(active(X))isNatIList(X)

Original Signature

Termination of terms over the following signature is verified: isNatIList, mark, and, isNat, 0, isNatList, s, zeros, tt, take, length, active, U11, U31, U21, nil, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

take#(mark(X1), X2)take#(X1, X2)take#(active(X1), X2)take#(X1, X2)

Problem 17: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

take#(X1, active(X2))take#(X1, X2)take#(X1, mark(X2))take#(X1, X2)

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(s(length(L)))
active(U21(tt))mark(nil)active(U31(tt, IL, M, N))mark(cons(N, take(M, IL)))
active(and(tt, X))mark(X)active(isNat(0))mark(tt)
active(isNat(length(V1)))mark(isNatList(V1))active(isNat(s(V1)))mark(isNat(V1))
active(isNatIList(V))mark(isNatList(V))active(isNatIList(zeros))mark(tt)
active(isNatIList(cons(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))active(isNatList(nil))mark(tt)
active(isNatList(cons(V1, V2)))mark(and(isNat(V1), isNatList(V2)))active(isNatList(take(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))
active(length(nil))mark(0)active(length(cons(N, L)))mark(U11(and(isNatList(L), isNat(N)), L))
active(take(0, IL))mark(U21(isNatIList(IL)))active(take(s(M), cons(N, IL)))mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))
mark(zeros)active(zeros)mark(cons(X1, X2))active(cons(mark(X1), X2))
mark(0)active(0)mark(U11(X1, X2))active(U11(mark(X1), X2))
mark(tt)active(tt)mark(s(X))active(s(mark(X)))
mark(length(X))active(length(mark(X)))mark(U21(X))active(U21(mark(X)))
mark(nil)active(nil)mark(U31(X1, X2, X3, X4))active(U31(mark(X1), X2, X3, X4))
mark(take(X1, X2))active(take(mark(X1), mark(X2)))mark(and(X1, X2))active(and(mark(X1), X2))
mark(isNat(X))active(isNat(X))mark(isNatList(X))active(isNatList(X))
mark(isNatIList(X))active(isNatIList(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)U11(mark(X1), X2)U11(X1, X2)
U11(X1, mark(X2))U11(X1, X2)U11(active(X1), X2)U11(X1, X2)
U11(X1, active(X2))U11(X1, X2)s(mark(X))s(X)
s(active(X))s(X)length(mark(X))length(X)
length(active(X))length(X)U21(mark(X))U21(X)
U21(active(X))U21(X)U31(mark(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, mark(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, mark(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, mark(X4))U31(X1, X2, X3, X4)U31(active(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, active(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, active(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, active(X4))U31(X1, X2, X3, X4)take(mark(X1), X2)take(X1, X2)
take(X1, mark(X2))take(X1, X2)take(active(X1), X2)take(X1, X2)
take(X1, active(X2))take(X1, X2)and(mark(X1), X2)and(X1, X2)
and(X1, mark(X2))and(X1, X2)and(active(X1), X2)and(X1, X2)
and(X1, active(X2))and(X1, X2)isNat(mark(X))isNat(X)
isNat(active(X))isNat(X)isNatList(mark(X))isNatList(X)
isNatList(active(X))isNatList(X)isNatIList(mark(X))isNatIList(X)
isNatIList(active(X))isNatIList(X)

Original Signature

Termination of terms over the following signature is verified: isNatIList, mark, and, isNat, 0, isNatList, s, zeros, tt, take, length, active, U11, U31, U21, cons, nil

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:

take#(X1, mark(X2))take#(X1, X2)

Problem 19: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

take#(X1, active(X2))take#(X1, X2)

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(s(length(L)))
active(U21(tt))mark(nil)active(U31(tt, IL, M, N))mark(cons(N, take(M, IL)))
active(and(tt, X))mark(X)active(isNat(0))mark(tt)
active(isNat(length(V1)))mark(isNatList(V1))active(isNat(s(V1)))mark(isNat(V1))
active(isNatIList(V))mark(isNatList(V))active(isNatIList(zeros))mark(tt)
active(isNatIList(cons(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))active(isNatList(nil))mark(tt)
active(isNatList(cons(V1, V2)))mark(and(isNat(V1), isNatList(V2)))active(isNatList(take(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))
active(length(nil))mark(0)active(length(cons(N, L)))mark(U11(and(isNatList(L), isNat(N)), L))
active(take(0, IL))mark(U21(isNatIList(IL)))active(take(s(M), cons(N, IL)))mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))
mark(zeros)active(zeros)mark(cons(X1, X2))active(cons(mark(X1), X2))
mark(0)active(0)mark(U11(X1, X2))active(U11(mark(X1), X2))
mark(tt)active(tt)mark(s(X))active(s(mark(X)))
mark(length(X))active(length(mark(X)))mark(U21(X))active(U21(mark(X)))
mark(nil)active(nil)mark(U31(X1, X2, X3, X4))active(U31(mark(X1), X2, X3, X4))
mark(take(X1, X2))active(take(mark(X1), mark(X2)))mark(and(X1, X2))active(and(mark(X1), X2))
mark(isNat(X))active(isNat(X))mark(isNatList(X))active(isNatList(X))
mark(isNatIList(X))active(isNatIList(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)U11(mark(X1), X2)U11(X1, X2)
U11(X1, mark(X2))U11(X1, X2)U11(active(X1), X2)U11(X1, X2)
U11(X1, active(X2))U11(X1, X2)s(mark(X))s(X)
s(active(X))s(X)length(mark(X))length(X)
length(active(X))length(X)U21(mark(X))U21(X)
U21(active(X))U21(X)U31(mark(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, mark(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, mark(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, mark(X4))U31(X1, X2, X3, X4)U31(active(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, active(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, active(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, active(X4))U31(X1, X2, X3, X4)take(mark(X1), X2)take(X1, X2)
take(X1, mark(X2))take(X1, X2)take(active(X1), X2)take(X1, X2)
take(X1, active(X2))take(X1, X2)and(mark(X1), X2)and(X1, X2)
and(X1, mark(X2))and(X1, X2)and(active(X1), X2)and(X1, X2)
and(X1, active(X2))and(X1, X2)isNat(mark(X))isNat(X)
isNat(active(X))isNat(X)isNatList(mark(X))isNatList(X)
isNatList(active(X))isNatList(X)isNatIList(mark(X))isNatIList(X)
isNatIList(active(X))isNatIList(X)

Original Signature

Termination of terms over the following signature is verified: isNatIList, mark, and, isNat, 0, isNatList, s, zeros, tt, take, length, active, U11, U31, U21, 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:

take#(X1, active(X2))take#(X1, X2)

Problem 12: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

cons#(X1, active(X2))cons#(X1, X2)cons#(mark(X1), X2)cons#(X1, X2)
cons#(active(X1), X2)cons#(X1, X2)cons#(X1, mark(X2))cons#(X1, X2)

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(s(length(L)))
active(U21(tt))mark(nil)active(U31(tt, IL, M, N))mark(cons(N, take(M, IL)))
active(and(tt, X))mark(X)active(isNat(0))mark(tt)
active(isNat(length(V1)))mark(isNatList(V1))active(isNat(s(V1)))mark(isNat(V1))
active(isNatIList(V))mark(isNatList(V))active(isNatIList(zeros))mark(tt)
active(isNatIList(cons(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))active(isNatList(nil))mark(tt)
active(isNatList(cons(V1, V2)))mark(and(isNat(V1), isNatList(V2)))active(isNatList(take(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))
active(length(nil))mark(0)active(length(cons(N, L)))mark(U11(and(isNatList(L), isNat(N)), L))
active(take(0, IL))mark(U21(isNatIList(IL)))active(take(s(M), cons(N, IL)))mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))
mark(zeros)active(zeros)mark(cons(X1, X2))active(cons(mark(X1), X2))
mark(0)active(0)mark(U11(X1, X2))active(U11(mark(X1), X2))
mark(tt)active(tt)mark(s(X))active(s(mark(X)))
mark(length(X))active(length(mark(X)))mark(U21(X))active(U21(mark(X)))
mark(nil)active(nil)mark(U31(X1, X2, X3, X4))active(U31(mark(X1), X2, X3, X4))
mark(take(X1, X2))active(take(mark(X1), mark(X2)))mark(and(X1, X2))active(and(mark(X1), X2))
mark(isNat(X))active(isNat(X))mark(isNatList(X))active(isNatList(X))
mark(isNatIList(X))active(isNatIList(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)U11(mark(X1), X2)U11(X1, X2)
U11(X1, mark(X2))U11(X1, X2)U11(active(X1), X2)U11(X1, X2)
U11(X1, active(X2))U11(X1, X2)s(mark(X))s(X)
s(active(X))s(X)length(mark(X))length(X)
length(active(X))length(X)U21(mark(X))U21(X)
U21(active(X))U21(X)U31(mark(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, mark(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, mark(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, mark(X4))U31(X1, X2, X3, X4)U31(active(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, active(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, active(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, active(X4))U31(X1, X2, X3, X4)take(mark(X1), X2)take(X1, X2)
take(X1, mark(X2))take(X1, X2)take(active(X1), X2)take(X1, X2)
take(X1, active(X2))take(X1, X2)and(mark(X1), X2)and(X1, X2)
and(X1, mark(X2))and(X1, X2)and(active(X1), X2)and(X1, X2)
and(X1, active(X2))and(X1, X2)isNat(mark(X))isNat(X)
isNat(active(X))isNat(X)isNatList(mark(X))isNatList(X)
isNatList(active(X))isNatList(X)isNatIList(mark(X))isNatIList(X)
isNatIList(active(X))isNatIList(X)

Original Signature

Termination of terms over the following signature is verified: isNatIList, mark, and, isNat, 0, isNatList, s, zeros, tt, take, length, active, U11, U31, U21, nil, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

cons#(mark(X1), X2)cons#(X1, X2)cons#(active(X1), X2)cons#(X1, X2)

Problem 18: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

cons#(X1, active(X2))cons#(X1, X2)cons#(X1, mark(X2))cons#(X1, X2)

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(s(length(L)))
active(U21(tt))mark(nil)active(U31(tt, IL, M, N))mark(cons(N, take(M, IL)))
active(and(tt, X))mark(X)active(isNat(0))mark(tt)
active(isNat(length(V1)))mark(isNatList(V1))active(isNat(s(V1)))mark(isNat(V1))
active(isNatIList(V))mark(isNatList(V))active(isNatIList(zeros))mark(tt)
active(isNatIList(cons(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))active(isNatList(nil))mark(tt)
active(isNatList(cons(V1, V2)))mark(and(isNat(V1), isNatList(V2)))active(isNatList(take(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))
active(length(nil))mark(0)active(length(cons(N, L)))mark(U11(and(isNatList(L), isNat(N)), L))
active(take(0, IL))mark(U21(isNatIList(IL)))active(take(s(M), cons(N, IL)))mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))
mark(zeros)active(zeros)mark(cons(X1, X2))active(cons(mark(X1), X2))
mark(0)active(0)mark(U11(X1, X2))active(U11(mark(X1), X2))
mark(tt)active(tt)mark(s(X))active(s(mark(X)))
mark(length(X))active(length(mark(X)))mark(U21(X))active(U21(mark(X)))
mark(nil)active(nil)mark(U31(X1, X2, X3, X4))active(U31(mark(X1), X2, X3, X4))
mark(take(X1, X2))active(take(mark(X1), mark(X2)))mark(and(X1, X2))active(and(mark(X1), X2))
mark(isNat(X))active(isNat(X))mark(isNatList(X))active(isNatList(X))
mark(isNatIList(X))active(isNatIList(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)U11(mark(X1), X2)U11(X1, X2)
U11(X1, mark(X2))U11(X1, X2)U11(active(X1), X2)U11(X1, X2)
U11(X1, active(X2))U11(X1, X2)s(mark(X))s(X)
s(active(X))s(X)length(mark(X))length(X)
length(active(X))length(X)U21(mark(X))U21(X)
U21(active(X))U21(X)U31(mark(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, mark(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, mark(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, mark(X4))U31(X1, X2, X3, X4)U31(active(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, active(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, active(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, active(X4))U31(X1, X2, X3, X4)take(mark(X1), X2)take(X1, X2)
take(X1, mark(X2))take(X1, X2)take(active(X1), X2)take(X1, X2)
take(X1, active(X2))take(X1, X2)and(mark(X1), X2)and(X1, X2)
and(X1, mark(X2))and(X1, X2)and(active(X1), X2)and(X1, X2)
and(X1, active(X2))and(X1, X2)isNat(mark(X))isNat(X)
isNat(active(X))isNat(X)isNatList(mark(X))isNatList(X)
isNatList(active(X))isNatList(X)isNatIList(mark(X))isNatIList(X)
isNatIList(active(X))isNatIList(X)

Original Signature

Termination of terms over the following signature is verified: isNatIList, mark, and, isNat, 0, isNatList, s, zeros, tt, take, length, active, U11, U31, U21, cons, nil

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:

cons#(X1, active(X2))cons#(X1, X2)

Problem 20: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

cons#(X1, mark(X2))cons#(X1, X2)

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(s(length(L)))
active(U21(tt))mark(nil)active(U31(tt, IL, M, N))mark(cons(N, take(M, IL)))
active(and(tt, X))mark(X)active(isNat(0))mark(tt)
active(isNat(length(V1)))mark(isNatList(V1))active(isNat(s(V1)))mark(isNat(V1))
active(isNatIList(V))mark(isNatList(V))active(isNatIList(zeros))mark(tt)
active(isNatIList(cons(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))active(isNatList(nil))mark(tt)
active(isNatList(cons(V1, V2)))mark(and(isNat(V1), isNatList(V2)))active(isNatList(take(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))
active(length(nil))mark(0)active(length(cons(N, L)))mark(U11(and(isNatList(L), isNat(N)), L))
active(take(0, IL))mark(U21(isNatIList(IL)))active(take(s(M), cons(N, IL)))mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))
mark(zeros)active(zeros)mark(cons(X1, X2))active(cons(mark(X1), X2))
mark(0)active(0)mark(U11(X1, X2))active(U11(mark(X1), X2))
mark(tt)active(tt)mark(s(X))active(s(mark(X)))
mark(length(X))active(length(mark(X)))mark(U21(X))active(U21(mark(X)))
mark(nil)active(nil)mark(U31(X1, X2, X3, X4))active(U31(mark(X1), X2, X3, X4))
mark(take(X1, X2))active(take(mark(X1), mark(X2)))mark(and(X1, X2))active(and(mark(X1), X2))
mark(isNat(X))active(isNat(X))mark(isNatList(X))active(isNatList(X))
mark(isNatIList(X))active(isNatIList(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)U11(mark(X1), X2)U11(X1, X2)
U11(X1, mark(X2))U11(X1, X2)U11(active(X1), X2)U11(X1, X2)
U11(X1, active(X2))U11(X1, X2)s(mark(X))s(X)
s(active(X))s(X)length(mark(X))length(X)
length(active(X))length(X)U21(mark(X))U21(X)
U21(active(X))U21(X)U31(mark(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, mark(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, mark(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, mark(X4))U31(X1, X2, X3, X4)U31(active(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, active(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, active(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, active(X4))U31(X1, X2, X3, X4)take(mark(X1), X2)take(X1, X2)
take(X1, mark(X2))take(X1, X2)take(active(X1), X2)take(X1, X2)
take(X1, active(X2))take(X1, X2)and(mark(X1), X2)and(X1, X2)
and(X1, mark(X2))and(X1, X2)and(active(X1), X2)and(X1, X2)
and(X1, active(X2))and(X1, X2)isNat(mark(X))isNat(X)
isNat(active(X))isNat(X)isNatList(mark(X))isNatList(X)
isNatList(active(X))isNatList(X)isNatIList(mark(X))isNatIList(X)
isNatIList(active(X))isNatIList(X)

Original Signature

Termination of terms over the following signature is verified: isNatIList, mark, and, isNat, 0, isNatList, s, zeros, tt, take, length, active, U11, U31, U21, 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:

cons#(X1, mark(X2))cons#(X1, X2)

Problem 13: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

length#(mark(X))length#(X)length#(active(X))length#(X)

Rewrite Rules

active(zeros)mark(cons(0, zeros))active(U11(tt, L))mark(s(length(L)))
active(U21(tt))mark(nil)active(U31(tt, IL, M, N))mark(cons(N, take(M, IL)))
active(and(tt, X))mark(X)active(isNat(0))mark(tt)
active(isNat(length(V1)))mark(isNatList(V1))active(isNat(s(V1)))mark(isNat(V1))
active(isNatIList(V))mark(isNatList(V))active(isNatIList(zeros))mark(tt)
active(isNatIList(cons(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))active(isNatList(nil))mark(tt)
active(isNatList(cons(V1, V2)))mark(and(isNat(V1), isNatList(V2)))active(isNatList(take(V1, V2)))mark(and(isNat(V1), isNatIList(V2)))
active(length(nil))mark(0)active(length(cons(N, L)))mark(U11(and(isNatList(L), isNat(N)), L))
active(take(0, IL))mark(U21(isNatIList(IL)))active(take(s(M), cons(N, IL)))mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))
mark(zeros)active(zeros)mark(cons(X1, X2))active(cons(mark(X1), X2))
mark(0)active(0)mark(U11(X1, X2))active(U11(mark(X1), X2))
mark(tt)active(tt)mark(s(X))active(s(mark(X)))
mark(length(X))active(length(mark(X)))mark(U21(X))active(U21(mark(X)))
mark(nil)active(nil)mark(U31(X1, X2, X3, X4))active(U31(mark(X1), X2, X3, X4))
mark(take(X1, X2))active(take(mark(X1), mark(X2)))mark(and(X1, X2))active(and(mark(X1), X2))
mark(isNat(X))active(isNat(X))mark(isNatList(X))active(isNatList(X))
mark(isNatIList(X))active(isNatIList(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)U11(mark(X1), X2)U11(X1, X2)
U11(X1, mark(X2))U11(X1, X2)U11(active(X1), X2)U11(X1, X2)
U11(X1, active(X2))U11(X1, X2)s(mark(X))s(X)
s(active(X))s(X)length(mark(X))length(X)
length(active(X))length(X)U21(mark(X))U21(X)
U21(active(X))U21(X)U31(mark(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, mark(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, mark(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, mark(X4))U31(X1, X2, X3, X4)U31(active(X1), X2, X3, X4)U31(X1, X2, X3, X4)
U31(X1, active(X2), X3, X4)U31(X1, X2, X3, X4)U31(X1, X2, active(X3), X4)U31(X1, X2, X3, X4)
U31(X1, X2, X3, active(X4))U31(X1, X2, X3, X4)take(mark(X1), X2)take(X1, X2)
take(X1, mark(X2))take(X1, X2)take(active(X1), X2)take(X1, X2)
take(X1, active(X2))take(X1, X2)and(mark(X1), X2)and(X1, X2)
and(X1, mark(X2))and(X1, X2)and(active(X1), X2)and(X1, X2)
and(X1, active(X2))and(X1, X2)isNat(mark(X))isNat(X)
isNat(active(X))isNat(X)isNatList(mark(X))isNatList(X)
isNatList(active(X))isNatList(X)isNatIList(mark(X))isNatIList(X)
isNatIList(active(X))isNatIList(X)

Original Signature

Termination of terms over the following signature is verified: isNatIList, mark, and, isNat, 0, isNatList, s, zeros, tt, take, length, active, U11, U31, U21, nil, cons

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

length#(mark(X))length#(X)length#(active(X))length#(X)