YES

The TRS could be proven terminating. The proof took 1732 ms.

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (358ms).
 | – Problem 2 was processed with processor PolynomialLinearRange4 (303ms).
 |    | – Problem 5 was processed with processor DependencyGraph (7ms).
 |    |    | – Problem 8 was processed with processor PolynomialLinearRange4 (100ms).
 |    |    |    | – Problem 10 was processed with processor DependencyGraph (5ms).
 |    |    |    |    | – Problem 11 was processed with processor PolynomialLinearRange4 (55ms).
 |    |    |    |    |    | – Problem 13 was processed with processor DependencyGraph (0ms).
 |    |    |    |    | – Problem 12 was processed with processor PolynomialLinearRange4 (80ms).
 |    |    |    |    |    | – Problem 14 was processed with processor DependencyGraph (0ms).
 | – Problem 3 was processed with processor PolynomialLinearRange4 (301ms).
 |    | – Problem 6 was processed with processor DependencyGraph (0ms).
 | – Problem 4 was processed with processor PolynomialLinearRange4 (220ms).
 |    | – Problem 7 was processed with processor DependencyGraph (4ms).
 |    |    | – Problem 9 was processed with processor PolynomialLinearRange4 (14ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

isNatIList#(cons(V1, V2)) → isNat#(V1)U91#(tt, IL, M, N) → isNat#(M)
isNat#(s(V1)) → isNat#(V1)isNatList#(cons(V1, V2)) → isNat#(V1)
take#(s(M), cons(N, IL)) → isNatIList#(IL)U93#(tt, IL, M, N) → T(N)
isNatList#(take(V1, V2)) → U61#(isNat(V1), V2)isNatIList#(V) → isNatList#(V)
isNat#(length(V1)) → isNatList#(V1)U71#(tt, L, N) → U72#(isNat(N), L)
U72#(tt, L) → T(L)U72#(tt, L) → length#(L)
T(take(x_1, x_2)) → T(x_2)T(zeros) → zeros#
U91#(tt, IL, M, N) → U92#(isNat(M), IL, M, N)isNatList#(take(V1, V2)) → isNat#(V1)
isNat#(length(V1)) → U11#(isNatList(V1))isNatIList#(cons(V1, V2)) → U41#(isNat(V1), V2)
take#(0, IL) → U81#(isNatIList(IL))length#(cons(N, L)) → U71#(isNatList(L), L, N)
take#(s(M), cons(N, IL)) → U91#(isNatIList(IL), IL, M, N)isNat#(s(V1)) → U21#(isNat(V1))
U71#(tt, L, N) → isNat#(N)U61#(tt, V2) → U62#(isNatIList(V2))
T(take(x_1, x_2)) → T(x_1)U41#(tt, V2) → U42#(isNatIList(V2))
U51#(tt, V2) → U52#(isNatList(V2))U61#(tt, V2) → isNatIList#(V2)
U92#(tt, IL, M, N) → U93#(isNat(N), IL, M, N)take#(0, IL) → isNatIList#(IL)
U92#(tt, IL, M, N) → isNat#(N)isNatList#(cons(V1, V2)) → U51#(isNat(V1), V2)
U51#(tt, V2) → isNatList#(V2)isNatIList#(V) → U31#(isNatList(V))
T(take(M, IL)) → take#(M, IL)length#(cons(N, L)) → isNatList#(L)
U41#(tt, V2) → isNatIList#(V2)

Rewrite Rules

zeros → cons(0, zeros)U11(tt) → tt
U21(tt) → ttU31(tt) → tt
U41(tt, V2) → U42(isNatIList(V2))U42(tt) → tt
U51(tt, V2) → U52(isNatList(V2))U52(tt) → tt
U61(tt, V2) → U62(isNatIList(V2))U62(tt) → tt
U71(tt, L, N) → U72(isNat(N), L)U72(tt, L) → s(length(L))
U81(tt) → nilU91(tt, IL, M, N) → U92(isNat(M), IL, M, N)
U92(tt, IL, M, N) → U93(isNat(N), IL, M, N)U93(tt, IL, M, N) → cons(N, take(M, IL))
isNat(0) → ttisNat(length(V1)) → U11(isNatList(V1))
isNat(s(V1)) → U21(isNat(V1))isNatIList(V) → U31(isNatList(V))
isNatIList(zeros) → ttisNatIList(cons(V1, V2)) → U41(isNat(V1), V2)
isNatList(nil) → ttisNatList(cons(V1, V2)) → U51(isNat(V1), V2)
isNatList(take(V1, V2)) → U61(isNat(V1), V2)length(nil) → 0
length(cons(N, L)) → U71(isNatList(L), L, N)take(0, IL) → U81(isNatIList(IL))
take(s(M), cons(N, IL)) → U91(isNatIList(IL), IL, M, N)

Original Signature

Termination of terms over the following signature is verified: isNat, U62, U61, U93, U42, U92, U41, U91, length, U21, cons, isNatIList, U71, U72, 0, U51, isNatList, s, tt, zeros, take, U52, U81, U11, U31, nil

Strategy

Context-sensitive strategy:
μ(isNatList#) = μ(zeros#) = μ(isNat) = μ(T) = μ(isNatIList) = μ(isNatIList#) = μ(0) = μ(isNatList) = μ(tt) = μ(zeros) = μ(isNat#) = μ(nil) = ∅
μ(U93#) = μ(U11#) = μ(U31#) = μ(length#) = μ(U91#) = μ(U21#) = μ(U81#) = μ(U62#) = μ(U52#) = μ(U41#) = μ(U62) = μ(U61) = μ(U93) = μ(U42) = μ(U92) = μ(U41) = μ(U72#) = μ(U91) = μ(length) = μ(U21) = μ(cons) = μ(U92#) = μ(U61#) = μ(U51#) = μ(U71) = μ(U42#) = μ(U72) = μ(U71#) = μ(U51) = μ(s) = μ(U81) = μ(U52) = μ(U11) = μ(U31) = {1}
μ(take#) = μ(take) = {1, 2}


The following SCCs where found

T(take(x_1, x_2)) → T(x_2)U91#(tt, IL, M, N) → U92#(isNat(M), IL, M, N)
T(take(x_1, x_2)) → T(x_1)T(take(M, IL)) → take#(M, IL)
U92#(tt, IL, M, N) → U93#(isNat(N), IL, M, N)take#(s(M), cons(N, IL)) → U91#(isNatIList(IL), IL, M, N)
U93#(tt, IL, M, N) → T(N)

U71#(tt, L, N) → U72#(isNat(N), L)U72#(tt, L) → length#(L)
length#(cons(N, L)) → U71#(isNatList(L), L, N)

isNat#(length(V1)) → isNatList#(V1)isNatIList#(V) → isNatList#(V)
isNatIList#(cons(V1, V2)) → isNat#(V1)isNat#(s(V1)) → isNat#(V1)
isNatList#(cons(V1, V2)) → U51#(isNat(V1), V2)isNatList#(cons(V1, V2)) → isNat#(V1)
isNatList#(take(V1, V2)) → isNat#(V1)U61#(tt, V2) → isNatIList#(V2)
isNatIList#(cons(V1, V2)) → U41#(isNat(V1), V2)U51#(tt, V2) → isNatList#(V2)
isNatList#(take(V1, V2)) → U61#(isNat(V1), V2)U41#(tt, V2) → isNatIList#(V2)

Problem 2: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

isNat#(length(V1)) → isNatList#(V1)isNatIList#(V) → isNatList#(V)
isNatIList#(cons(V1, V2)) → isNat#(V1)isNat#(s(V1)) → isNat#(V1)
isNatList#(cons(V1, V2)) → U51#(isNat(V1), V2)isNatList#(cons(V1, V2)) → isNat#(V1)
isNatList#(take(V1, V2)) → isNat#(V1)isNatIList#(cons(V1, V2)) → U41#(isNat(V1), V2)
U51#(tt, V2) → isNatList#(V2)U61#(tt, V2) → isNatIList#(V2)
U41#(tt, V2) → isNatIList#(V2)isNatList#(take(V1, V2)) → U61#(isNat(V1), V2)

Rewrite Rules

zeros → cons(0, zeros)U11(tt) → tt
U21(tt) → ttU31(tt) → tt
U41(tt, V2) → U42(isNatIList(V2))U42(tt) → tt
U51(tt, V2) → U52(isNatList(V2))U52(tt) → tt
U61(tt, V2) → U62(isNatIList(V2))U62(tt) → tt
U71(tt, L, N) → U72(isNat(N), L)U72(tt, L) → s(length(L))
U81(tt) → nilU91(tt, IL, M, N) → U92(isNat(M), IL, M, N)
U92(tt, IL, M, N) → U93(isNat(N), IL, M, N)U93(tt, IL, M, N) → cons(N, take(M, IL))
isNat(0) → ttisNat(length(V1)) → U11(isNatList(V1))
isNat(s(V1)) → U21(isNat(V1))isNatIList(V) → U31(isNatList(V))
isNatIList(zeros) → ttisNatIList(cons(V1, V2)) → U41(isNat(V1), V2)
isNatList(nil) → ttisNatList(cons(V1, V2)) → U51(isNat(V1), V2)
isNatList(take(V1, V2)) → U61(isNat(V1), V2)length(nil) → 0
length(cons(N, L)) → U71(isNatList(L), L, N)take(0, IL) → U81(isNatIList(IL))
take(s(M), cons(N, IL)) → U91(isNatIList(IL), IL, M, N)

Original Signature

Termination of terms over the following signature is verified: isNat, U62, U61, U93, U42, U92, U41, U91, length, U21, cons, isNatIList, U71, U72, 0, U51, isNatList, s, tt, zeros, take, U52, U81, U11, U31, nil

Strategy

Context-sensitive strategy:
μ(isNatList#) = μ(zeros#) = μ(isNat) = μ(T) = μ(isNatIList) = μ(isNatIList#) = μ(0) = μ(isNatList) = μ(zeros) = μ(tt) = μ(isNat#) = μ(nil) = ∅
μ(U93#) = μ(U11#) = μ(U31#) = μ(length#) = μ(U21#) = μ(U91#) = μ(U81#) = μ(U62#) = μ(U52#) = μ(U41#) = μ(U62) = μ(U61) = μ(U93) = μ(U42) = μ(U92) = μ(U41) = μ(U72#) = μ(U91) = μ(length) = μ(U21) = μ(cons) = μ(U92#) = μ(U61#) = μ(U51#) = μ(U71) = μ(U72) = μ(U42#) = μ(U71#) = μ(s) = μ(U51) = μ(U52) = μ(U81) = μ(U11) = μ(U31) = {1}
μ(take#) = μ(take) = {1, 2}


Polynomial Interpretation

Standard Usable rules

U11(tt) → ttisNat(0) → tt
isNatList(nil) → ttU51(tt, V2) → U52(isNatList(V2))
isNat(length(V1)) → U11(isNatList(V1))U31(tt) → tt
U61(tt, V2) → U62(isNatIList(V2))isNatList(take(V1, V2)) → U61(isNat(V1), V2)
isNatList(cons(V1, V2)) → U51(isNat(V1), V2)isNat(s(V1)) → U21(isNat(V1))
U42(tt) → ttisNatIList(cons(V1, V2)) → U41(isNat(V1), V2)
isNatIList(V) → U31(isNatList(V))U21(tt) → tt
U62(tt) → ttU52(tt) → tt
isNatIList(zeros) → ttU41(tt, V2) → U42(isNatIList(V2))

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

isNatIList#(cons(V1, V2)) → isNat#(V1)isNat#(s(V1)) → isNat#(V1)
isNatList#(cons(V1, V2)) → isNat#(V1)isNatList#(take(V1, V2)) → isNat#(V1)

Problem 5: DependencyGraph



Dependency Pair Problem

Dependency Pairs

isNatIList#(V) → isNatList#(V)isNat#(length(V1)) → isNatList#(V1)
isNatList#(cons(V1, V2)) → U51#(isNat(V1), V2)U61#(tt, V2) → isNatIList#(V2)
U51#(tt, V2) → isNatList#(V2)isNatIList#(cons(V1, V2)) → U41#(isNat(V1), V2)
isNatList#(take(V1, V2)) → U61#(isNat(V1), V2)U41#(tt, V2) → isNatIList#(V2)

Rewrite Rules

zeros → cons(0, zeros)U11(tt) → tt
U21(tt) → ttU31(tt) → tt
U41(tt, V2) → U42(isNatIList(V2))U42(tt) → tt
U51(tt, V2) → U52(isNatList(V2))U52(tt) → tt
U61(tt, V2) → U62(isNatIList(V2))U62(tt) → tt
U71(tt, L, N) → U72(isNat(N), L)U72(tt, L) → s(length(L))
U81(tt) → nilU91(tt, IL, M, N) → U92(isNat(M), IL, M, N)
U92(tt, IL, M, N) → U93(isNat(N), IL, M, N)U93(tt, IL, M, N) → cons(N, take(M, IL))
isNat(0) → ttisNat(length(V1)) → U11(isNatList(V1))
isNat(s(V1)) → U21(isNat(V1))isNatIList(V) → U31(isNatList(V))
isNatIList(zeros) → ttisNatIList(cons(V1, V2)) → U41(isNat(V1), V2)
isNatList(nil) → ttisNatList(cons(V1, V2)) → U51(isNat(V1), V2)
isNatList(take(V1, V2)) → U61(isNat(V1), V2)length(nil) → 0
length(cons(N, L)) → U71(isNatList(L), L, N)take(0, IL) → U81(isNatIList(IL))
take(s(M), cons(N, IL)) → U91(isNatIList(IL), IL, M, N)

Original Signature

Termination of terms over the following signature is verified: isNat, U62, U61, U42, U93, U41, U92, U91, length, U21, cons, isNatIList, U71, U72, 0, U51, isNatList, s, tt, zeros, take, U52, U81, U11, U31, nil

Strategy

Context-sensitive strategy:
μ(isNatList#) = μ(zeros#) = μ(isNat) = μ(T) = μ(isNatIList) = μ(isNatIList#) = μ(0) = μ(isNatList) = μ(tt) = μ(zeros) = μ(isNat#) = μ(nil) = ∅
μ(U93#) = μ(U11#) = μ(U31#) = μ(length#) = μ(U91#) = μ(U21#) = μ(U81#) = μ(U62#) = μ(U52#) = μ(U41#) = μ(U62) = μ(U61) = μ(U93) = μ(U42) = μ(U92) = μ(U41) = μ(U72#) = μ(U91) = μ(length) = μ(U21) = μ(cons) = μ(U92#) = μ(U61#) = μ(U51#) = μ(U71) = μ(U42#) = μ(U72) = μ(U71#) = μ(U51) = μ(s) = μ(U81) = μ(U52) = μ(U11) = μ(U31) = {1}
μ(take#) = μ(take) = {1, 2}


The following SCCs where found

isNatIList#(V) → isNatList#(V)isNatList#(cons(V1, V2)) → U51#(isNat(V1), V2)
U51#(tt, V2) → isNatList#(V2)U61#(tt, V2) → isNatIList#(V2)
isNatIList#(cons(V1, V2)) → U41#(isNat(V1), V2)isNatList#(take(V1, V2)) → U61#(isNat(V1), V2)
U41#(tt, V2) → isNatIList#(V2)

Problem 8: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

isNatIList#(V) → isNatList#(V)isNatList#(cons(V1, V2)) → U51#(isNat(V1), V2)
U51#(tt, V2) → isNatList#(V2)U61#(tt, V2) → isNatIList#(V2)
isNatIList#(cons(V1, V2)) → U41#(isNat(V1), V2)isNatList#(take(V1, V2)) → U61#(isNat(V1), V2)
U41#(tt, V2) → isNatIList#(V2)

Rewrite Rules

zeros → cons(0, zeros)U11(tt) → tt
U21(tt) → ttU31(tt) → tt
U41(tt, V2) → U42(isNatIList(V2))U42(tt) → tt
U51(tt, V2) → U52(isNatList(V2))U52(tt) → tt
U61(tt, V2) → U62(isNatIList(V2))U62(tt) → tt
U71(tt, L, N) → U72(isNat(N), L)U72(tt, L) → s(length(L))
U81(tt) → nilU91(tt, IL, M, N) → U92(isNat(M), IL, M, N)
U92(tt, IL, M, N) → U93(isNat(N), IL, M, N)U93(tt, IL, M, N) → cons(N, take(M, IL))
isNat(0) → ttisNat(length(V1)) → U11(isNatList(V1))
isNat(s(V1)) → U21(isNat(V1))isNatIList(V) → U31(isNatList(V))
isNatIList(zeros) → ttisNatIList(cons(V1, V2)) → U41(isNat(V1), V2)
isNatList(nil) → ttisNatList(cons(V1, V2)) → U51(isNat(V1), V2)
isNatList(take(V1, V2)) → U61(isNat(V1), V2)length(nil) → 0
length(cons(N, L)) → U71(isNatList(L), L, N)take(0, IL) → U81(isNatIList(IL))
take(s(M), cons(N, IL)) → U91(isNatIList(IL), IL, M, N)

Original Signature

Termination of terms over the following signature is verified: isNat, U62, U61, U42, U93, U41, U92, U91, length, U21, cons, isNatIList, U71, U72, 0, U51, isNatList, s, tt, zeros, take, U52, U81, U11, U31, nil

Strategy

Context-sensitive strategy:
μ(isNatList#) = μ(zeros#) = μ(isNat) = μ(T) = μ(isNatIList) = μ(isNatIList#) = μ(0) = μ(isNatList) = μ(zeros) = μ(tt) = μ(isNat#) = μ(nil) = ∅
μ(U93#) = μ(U11#) = μ(U31#) = μ(length#) = μ(U21#) = μ(U91#) = μ(U81#) = μ(U62#) = μ(U52#) = μ(U41#) = μ(U62) = μ(U61) = μ(U93) = μ(U42) = μ(U92) = μ(U41) = μ(U72#) = μ(U91) = μ(length) = μ(U21) = μ(cons) = μ(U92#) = μ(U61#) = μ(U51#) = μ(U71) = μ(U72) = μ(U42#) = μ(U71#) = μ(s) = μ(U51) = μ(U52) = μ(U81) = μ(U11) = μ(U31) = {1}
μ(take#) = μ(take) = {1, 2}


Polynomial Interpretation

Standard Usable rules

U11(tt) → ttisNat(0) → tt
isNatList(nil) → ttU51(tt, V2) → U52(isNatList(V2))
isNat(length(V1)) → U11(isNatList(V1))U31(tt) → tt
U61(tt, V2) → U62(isNatIList(V2))isNatList(take(V1, V2)) → U61(isNat(V1), V2)
isNatList(cons(V1, V2)) → U51(isNat(V1), V2)isNat(s(V1)) → U21(isNat(V1))
U42(tt) → ttisNatIList(cons(V1, V2)) → U41(isNat(V1), V2)
isNatIList(V) → U31(isNatList(V))U21(tt) → tt
U62(tt) → ttU52(tt) → tt
isNatIList(zeros) → ttU41(tt, V2) → U42(isNatIList(V2))

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

isNatList#(take(V1, V2)) → U61#(isNat(V1), V2)

Problem 10: DependencyGraph



Dependency Pair Problem

Dependency Pairs

isNatIList#(V) → isNatList#(V)isNatList#(cons(V1, V2)) → U51#(isNat(V1), V2)
isNatIList#(cons(V1, V2)) → U41#(isNat(V1), V2)U61#(tt, V2) → isNatIList#(V2)
U51#(tt, V2) → isNatList#(V2)U41#(tt, V2) → isNatIList#(V2)

Rewrite Rules

zeros → cons(0, zeros)U11(tt) → tt
U21(tt) → ttU31(tt) → tt
U41(tt, V2) → U42(isNatIList(V2))U42(tt) → tt
U51(tt, V2) → U52(isNatList(V2))U52(tt) → tt
U61(tt, V2) → U62(isNatIList(V2))U62(tt) → tt
U71(tt, L, N) → U72(isNat(N), L)U72(tt, L) → s(length(L))
U81(tt) → nilU91(tt, IL, M, N) → U92(isNat(M), IL, M, N)
U92(tt, IL, M, N) → U93(isNat(N), IL, M, N)U93(tt, IL, M, N) → cons(N, take(M, IL))
isNat(0) → ttisNat(length(V1)) → U11(isNatList(V1))
isNat(s(V1)) → U21(isNat(V1))isNatIList(V) → U31(isNatList(V))
isNatIList(zeros) → ttisNatIList(cons(V1, V2)) → U41(isNat(V1), V2)
isNatList(nil) → ttisNatList(cons(V1, V2)) → U51(isNat(V1), V2)
isNatList(take(V1, V2)) → U61(isNat(V1), V2)length(nil) → 0
length(cons(N, L)) → U71(isNatList(L), L, N)take(0, IL) → U81(isNatIList(IL))
take(s(M), cons(N, IL)) → U91(isNatIList(IL), IL, M, N)

Original Signature

Termination of terms over the following signature is verified: isNat, U62, U61, U93, U42, U92, U41, U91, length, U21, cons, isNatIList, U71, U72, 0, U51, isNatList, s, tt, zeros, take, U52, U81, U11, U31, nil

Strategy

Context-sensitive strategy:
μ(isNatList#) = μ(zeros#) = μ(isNat) = μ(T) = μ(isNatIList) = μ(isNatIList#) = μ(0) = μ(isNatList) = μ(tt) = μ(zeros) = μ(isNat#) = μ(nil) = ∅
μ(U93#) = μ(U11#) = μ(U31#) = μ(length#) = μ(U91#) = μ(U21#) = μ(U81#) = μ(U62#) = μ(U52#) = μ(U41#) = μ(U62) = μ(U61) = μ(U93) = μ(U42) = μ(U92) = μ(U41) = μ(U72#) = μ(U91) = μ(length) = μ(U21) = μ(cons) = μ(U92#) = μ(U61#) = μ(U51#) = μ(U71) = μ(U42#) = μ(U72) = μ(U71#) = μ(U51) = μ(s) = μ(U81) = μ(U52) = μ(U11) = μ(U31) = {1}
μ(take#) = μ(take) = {1, 2}


The following SCCs where found

isNatIList#(cons(V1, V2)) → U41#(isNat(V1), V2)U41#(tt, V2) → isNatIList#(V2)

isNatList#(cons(V1, V2)) → U51#(isNat(V1), V2)U51#(tt, V2) → isNatList#(V2)

Problem 11: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

isNatList#(cons(V1, V2)) → U51#(isNat(V1), V2)U51#(tt, V2) → isNatList#(V2)

Rewrite Rules

zeros → cons(0, zeros)U11(tt) → tt
U21(tt) → ttU31(tt) → tt
U41(tt, V2) → U42(isNatIList(V2))U42(tt) → tt
U51(tt, V2) → U52(isNatList(V2))U52(tt) → tt
U61(tt, V2) → U62(isNatIList(V2))U62(tt) → tt
U71(tt, L, N) → U72(isNat(N), L)U72(tt, L) → s(length(L))
U81(tt) → nilU91(tt, IL, M, N) → U92(isNat(M), IL, M, N)
U92(tt, IL, M, N) → U93(isNat(N), IL, M, N)U93(tt, IL, M, N) → cons(N, take(M, IL))
isNat(0) → ttisNat(length(V1)) → U11(isNatList(V1))
isNat(s(V1)) → U21(isNat(V1))isNatIList(V) → U31(isNatList(V))
isNatIList(zeros) → ttisNatIList(cons(V1, V2)) → U41(isNat(V1), V2)
isNatList(nil) → ttisNatList(cons(V1, V2)) → U51(isNat(V1), V2)
isNatList(take(V1, V2)) → U61(isNat(V1), V2)length(nil) → 0
length(cons(N, L)) → U71(isNatList(L), L, N)take(0, IL) → U81(isNatIList(IL))
take(s(M), cons(N, IL)) → U91(isNatIList(IL), IL, M, N)

Original Signature

Termination of terms over the following signature is verified: isNat, U62, U61, U93, U42, U92, U41, U91, length, U21, cons, isNatIList, U71, U72, 0, U51, isNatList, s, tt, zeros, take, U52, U81, U11, U31, nil

Strategy

Context-sensitive strategy:
μ(isNatList#) = μ(zeros#) = μ(isNat) = μ(T) = μ(isNatIList) = μ(isNatIList#) = μ(0) = μ(isNatList) = μ(zeros) = μ(tt) = μ(isNat#) = μ(nil) = ∅
μ(U93#) = μ(U11#) = μ(U31#) = μ(length#) = μ(U21#) = μ(U91#) = μ(U81#) = μ(U62#) = μ(U52#) = μ(U41#) = μ(U62) = μ(U61) = μ(U93) = μ(U42) = μ(U92) = μ(U41) = μ(U72#) = μ(U91) = μ(length) = μ(U21) = μ(cons) = μ(U92#) = μ(U61#) = μ(U51#) = μ(U71) = μ(U72) = μ(U42#) = μ(U71#) = μ(s) = μ(U51) = μ(U52) = μ(U81) = μ(U11) = μ(U31) = {1}
μ(take#) = μ(take) = {1, 2}


Polynomial Interpretation

Standard Usable rules

U11(tt) → ttisNat(0) → tt
isNatList(nil) → ttU51(tt, V2) → U52(isNatList(V2))
isNat(length(V1)) → U11(isNatList(V1))U31(tt) → tt
U61(tt, V2) → U62(isNatIList(V2))isNatList(take(V1, V2)) → U61(isNat(V1), V2)
isNatList(cons(V1, V2)) → U51(isNat(V1), V2)isNat(s(V1)) → U21(isNat(V1))
U42(tt) → ttisNatIList(cons(V1, V2)) → U41(isNat(V1), V2)
isNatIList(V) → U31(isNatList(V))U21(tt) → tt
U62(tt) → ttU52(tt) → tt
isNatIList(zeros) → ttU41(tt, V2) → U42(isNatIList(V2))

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

isNatList#(cons(V1, V2)) → U51#(isNat(V1), V2)

Problem 13: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U51#(tt, V2) → isNatList#(V2)

Rewrite Rules

zeros → cons(0, zeros)U11(tt) → tt
U21(tt) → ttU31(tt) → tt
U41(tt, V2) → U42(isNatIList(V2))U42(tt) → tt
U51(tt, V2) → U52(isNatList(V2))U52(tt) → tt
U61(tt, V2) → U62(isNatIList(V2))U62(tt) → tt
U71(tt, L, N) → U72(isNat(N), L)U72(tt, L) → s(length(L))
U81(tt) → nilU91(tt, IL, M, N) → U92(isNat(M), IL, M, N)
U92(tt, IL, M, N) → U93(isNat(N), IL, M, N)U93(tt, IL, M, N) → cons(N, take(M, IL))
isNat(0) → ttisNat(length(V1)) → U11(isNatList(V1))
isNat(s(V1)) → U21(isNat(V1))isNatIList(V) → U31(isNatList(V))
isNatIList(zeros) → ttisNatIList(cons(V1, V2)) → U41(isNat(V1), V2)
isNatList(nil) → ttisNatList(cons(V1, V2)) → U51(isNat(V1), V2)
isNatList(take(V1, V2)) → U61(isNat(V1), V2)length(nil) → 0
length(cons(N, L)) → U71(isNatList(L), L, N)take(0, IL) → U81(isNatIList(IL))
take(s(M), cons(N, IL)) → U91(isNatIList(IL), IL, M, N)

Original Signature

Termination of terms over the following signature is verified: isNat, U62, U61, U42, U93, U41, U92, U91, length, U21, cons, isNatIList, U71, U72, 0, U51, isNatList, s, tt, zeros, take, U52, U81, U11, U31, nil

Strategy

Context-sensitive strategy:
μ(isNatList#) = μ(zeros#) = μ(isNat) = μ(T) = μ(isNatIList) = μ(isNatIList#) = μ(0) = μ(isNatList) = μ(tt) = μ(zeros) = μ(isNat#) = μ(nil) = ∅
μ(U93#) = μ(U11#) = μ(U31#) = μ(length#) = μ(U91#) = μ(U21#) = μ(U81#) = μ(U62#) = μ(U52#) = μ(U41#) = μ(U62) = μ(U61) = μ(U93) = μ(U42) = μ(U92) = μ(U41) = μ(U72#) = μ(U91) = μ(length) = μ(U21) = μ(cons) = μ(U92#) = μ(U61#) = μ(U51#) = μ(U71) = μ(U42#) = μ(U72) = μ(U71#) = μ(U51) = μ(s) = μ(U81) = μ(U52) = μ(U11) = μ(U31) = {1}
μ(take#) = μ(take) = {1, 2}


There are no SCCs!

Problem 12: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

isNatIList#(cons(V1, V2)) → U41#(isNat(V1), V2)U41#(tt, V2) → isNatIList#(V2)

Rewrite Rules

zeros → cons(0, zeros)U11(tt) → tt
U21(tt) → ttU31(tt) → tt
U41(tt, V2) → U42(isNatIList(V2))U42(tt) → tt
U51(tt, V2) → U52(isNatList(V2))U52(tt) → tt
U61(tt, V2) → U62(isNatIList(V2))U62(tt) → tt
U71(tt, L, N) → U72(isNat(N), L)U72(tt, L) → s(length(L))
U81(tt) → nilU91(tt, IL, M, N) → U92(isNat(M), IL, M, N)
U92(tt, IL, M, N) → U93(isNat(N), IL, M, N)U93(tt, IL, M, N) → cons(N, take(M, IL))
isNat(0) → ttisNat(length(V1)) → U11(isNatList(V1))
isNat(s(V1)) → U21(isNat(V1))isNatIList(V) → U31(isNatList(V))
isNatIList(zeros) → ttisNatIList(cons(V1, V2)) → U41(isNat(V1), V2)
isNatList(nil) → ttisNatList(cons(V1, V2)) → U51(isNat(V1), V2)
isNatList(take(V1, V2)) → U61(isNat(V1), V2)length(nil) → 0
length(cons(N, L)) → U71(isNatList(L), L, N)take(0, IL) → U81(isNatIList(IL))
take(s(M), cons(N, IL)) → U91(isNatIList(IL), IL, M, N)

Original Signature

Termination of terms over the following signature is verified: isNat, U62, U61, U93, U42, U92, U41, U91, length, U21, cons, isNatIList, U71, U72, 0, U51, isNatList, s, tt, zeros, take, U52, U81, U11, U31, nil

Strategy

Context-sensitive strategy:
μ(isNatList#) = μ(zeros#) = μ(isNat) = μ(T) = μ(isNatIList) = μ(isNatIList#) = μ(0) = μ(isNatList) = μ(zeros) = μ(tt) = μ(isNat#) = μ(nil) = ∅
μ(U93#) = μ(U11#) = μ(U31#) = μ(length#) = μ(U21#) = μ(U91#) = μ(U81#) = μ(U62#) = μ(U52#) = μ(U41#) = μ(U62) = μ(U61) = μ(U93) = μ(U42) = μ(U92) = μ(U41) = μ(U72#) = μ(U91) = μ(length) = μ(U21) = μ(cons) = μ(U92#) = μ(U61#) = μ(U51#) = μ(U71) = μ(U72) = μ(U42#) = μ(U71#) = μ(s) = μ(U51) = μ(U52) = μ(U81) = μ(U11) = μ(U31) = {1}
μ(take#) = μ(take) = {1, 2}


Polynomial Interpretation

Standard Usable rules

U11(tt) → ttisNat(0) → tt
isNatList(nil) → ttU51(tt, V2) → U52(isNatList(V2))
isNat(length(V1)) → U11(isNatList(V1))U31(tt) → tt
U61(tt, V2) → U62(isNatIList(V2))isNatList(take(V1, V2)) → U61(isNat(V1), V2)
isNatList(cons(V1, V2)) → U51(isNat(V1), V2)isNat(s(V1)) → U21(isNat(V1))
U42(tt) → ttisNatIList(cons(V1, V2)) → U41(isNat(V1), V2)
isNatIList(V) → U31(isNatList(V))U21(tt) → tt
U62(tt) → ttU52(tt) → tt
isNatIList(zeros) → ttU41(tt, V2) → U42(isNatIList(V2))

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

isNatIList#(cons(V1, V2)) → U41#(isNat(V1), V2)

Problem 14: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U41#(tt, V2) → isNatIList#(V2)

Rewrite Rules

zeros → cons(0, zeros)U11(tt) → tt
U21(tt) → ttU31(tt) → tt
U41(tt, V2) → U42(isNatIList(V2))U42(tt) → tt
U51(tt, V2) → U52(isNatList(V2))U52(tt) → tt
U61(tt, V2) → U62(isNatIList(V2))U62(tt) → tt
U71(tt, L, N) → U72(isNat(N), L)U72(tt, L) → s(length(L))
U81(tt) → nilU91(tt, IL, M, N) → U92(isNat(M), IL, M, N)
U92(tt, IL, M, N) → U93(isNat(N), IL, M, N)U93(tt, IL, M, N) → cons(N, take(M, IL))
isNat(0) → ttisNat(length(V1)) → U11(isNatList(V1))
isNat(s(V1)) → U21(isNat(V1))isNatIList(V) → U31(isNatList(V))
isNatIList(zeros) → ttisNatIList(cons(V1, V2)) → U41(isNat(V1), V2)
isNatList(nil) → ttisNatList(cons(V1, V2)) → U51(isNat(V1), V2)
isNatList(take(V1, V2)) → U61(isNat(V1), V2)length(nil) → 0
length(cons(N, L)) → U71(isNatList(L), L, N)take(0, IL) → U81(isNatIList(IL))
take(s(M), cons(N, IL)) → U91(isNatIList(IL), IL, M, N)

Original Signature

Termination of terms over the following signature is verified: isNat, U62, U61, U42, U93, U41, U92, U91, length, U21, cons, isNatIList, U71, U72, 0, U51, isNatList, s, tt, zeros, take, U52, U81, U11, U31, nil

Strategy

Context-sensitive strategy:
μ(isNatList#) = μ(zeros#) = μ(isNat) = μ(T) = μ(isNatIList) = μ(isNatIList#) = μ(0) = μ(isNatList) = μ(tt) = μ(zeros) = μ(isNat#) = μ(nil) = ∅
μ(U93#) = μ(U11#) = μ(U31#) = μ(length#) = μ(U91#) = μ(U21#) = μ(U81#) = μ(U62#) = μ(U52#) = μ(U41#) = μ(U62) = μ(U61) = μ(U93) = μ(U42) = μ(U92) = μ(U41) = μ(U72#) = μ(U91) = μ(length) = μ(U21) = μ(cons) = μ(U92#) = μ(U61#) = μ(U51#) = μ(U71) = μ(U42#) = μ(U72) = μ(U71#) = μ(U51) = μ(s) = μ(U81) = μ(U52) = μ(U11) = μ(U31) = {1}
μ(take#) = μ(take) = {1, 2}


There are no SCCs!

Problem 3: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

U71#(tt, L, N) → U72#(isNat(N), L)U72#(tt, L) → length#(L)
length#(cons(N, L)) → U71#(isNatList(L), L, N)

Rewrite Rules

zeros → cons(0, zeros)U11(tt) → tt
U21(tt) → ttU31(tt) → tt
U41(tt, V2) → U42(isNatIList(V2))U42(tt) → tt
U51(tt, V2) → U52(isNatList(V2))U52(tt) → tt
U61(tt, V2) → U62(isNatIList(V2))U62(tt) → tt
U71(tt, L, N) → U72(isNat(N), L)U72(tt, L) → s(length(L))
U81(tt) → nilU91(tt, IL, M, N) → U92(isNat(M), IL, M, N)
U92(tt, IL, M, N) → U93(isNat(N), IL, M, N)U93(tt, IL, M, N) → cons(N, take(M, IL))
isNat(0) → ttisNat(length(V1)) → U11(isNatList(V1))
isNat(s(V1)) → U21(isNat(V1))isNatIList(V) → U31(isNatList(V))
isNatIList(zeros) → ttisNatIList(cons(V1, V2)) → U41(isNat(V1), V2)
isNatList(nil) → ttisNatList(cons(V1, V2)) → U51(isNat(V1), V2)
isNatList(take(V1, V2)) → U61(isNat(V1), V2)length(nil) → 0
length(cons(N, L)) → U71(isNatList(L), L, N)take(0, IL) → U81(isNatIList(IL))
take(s(M), cons(N, IL)) → U91(isNatIList(IL), IL, M, N)

Original Signature

Termination of terms over the following signature is verified: isNat, U62, U61, U93, U42, U92, U41, U91, length, U21, cons, isNatIList, U71, U72, 0, U51, isNatList, s, tt, zeros, take, U52, U81, U11, U31, nil

Strategy

Context-sensitive strategy:
μ(isNatList#) = μ(zeros#) = μ(isNat) = μ(T) = μ(isNatIList) = μ(isNatIList#) = μ(0) = μ(isNatList) = μ(zeros) = μ(tt) = μ(isNat#) = μ(nil) = ∅
μ(U93#) = μ(U11#) = μ(U31#) = μ(length#) = μ(U21#) = μ(U91#) = μ(U81#) = μ(U62#) = μ(U52#) = μ(U41#) = μ(U62) = μ(U61) = μ(U93) = μ(U42) = μ(U92) = μ(U41) = μ(U72#) = μ(U91) = μ(length) = μ(U21) = μ(cons) = μ(U92#) = μ(U61#) = μ(U51#) = μ(U71) = μ(U72) = μ(U42#) = μ(U71#) = μ(s) = μ(U51) = μ(U52) = μ(U81) = μ(U11) = μ(U31) = {1}
μ(take#) = μ(take) = {1, 2}


Polynomial Interpretation

Standard Usable rules

U51(tt, V2) → U52(isNatList(V2))U61(tt, V2) → U62(isNatIList(V2))
U31(tt) → ttisNat(length(V1)) → U11(isNatList(V1))
isNatList(take(V1, V2)) → U61(isNat(V1), V2)U91(tt, IL, M, N) → U92(isNat(M), IL, M, N)
isNatList(cons(V1, V2)) → U51(isNat(V1), V2)take(s(M), cons(N, IL)) → U91(isNatIList(IL), IL, M, N)
length(cons(N, L)) → U71(isNatList(L), L, N)U71(tt, L, N) → U72(isNat(N), L)
isNatIList(cons(V1, V2)) → U41(isNat(V1), V2)take(0, IL) → U81(isNatIList(IL))
U21(tt) → ttU62(tt) → tt
isNatIList(zeros) → ttlength(nil) → 0
U11(tt) → ttisNat(0) → tt
isNatList(nil) → ttzeros → cons(0, zeros)
isNat(s(V1)) → U21(isNat(V1))U42(tt) → tt
U92(tt, IL, M, N) → U93(isNat(N), IL, M, N)U93(tt, IL, M, N) → cons(N, take(M, IL))
isNatIList(V) → U31(isNatList(V))U72(tt, L) → s(length(L))
U81(tt) → nilU52(tt) → tt
U41(tt, V2) → U42(isNatIList(V2))

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

U72#(tt, L) → length#(L)

Problem 6: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U71#(tt, L, N) → U72#(isNat(N), L)length#(cons(N, L)) → U71#(isNatList(L), L, N)

Rewrite Rules

zeros → cons(0, zeros)U11(tt) → tt
U21(tt) → ttU31(tt) → tt
U41(tt, V2) → U42(isNatIList(V2))U42(tt) → tt
U51(tt, V2) → U52(isNatList(V2))U52(tt) → tt
U61(tt, V2) → U62(isNatIList(V2))U62(tt) → tt
U71(tt, L, N) → U72(isNat(N), L)U72(tt, L) → s(length(L))
U81(tt) → nilU91(tt, IL, M, N) → U92(isNat(M), IL, M, N)
U92(tt, IL, M, N) → U93(isNat(N), IL, M, N)U93(tt, IL, M, N) → cons(N, take(M, IL))
isNat(0) → ttisNat(length(V1)) → U11(isNatList(V1))
isNat(s(V1)) → U21(isNat(V1))isNatIList(V) → U31(isNatList(V))
isNatIList(zeros) → ttisNatIList(cons(V1, V2)) → U41(isNat(V1), V2)
isNatList(nil) → ttisNatList(cons(V1, V2)) → U51(isNat(V1), V2)
isNatList(take(V1, V2)) → U61(isNat(V1), V2)length(nil) → 0
length(cons(N, L)) → U71(isNatList(L), L, N)take(0, IL) → U81(isNatIList(IL))
take(s(M), cons(N, IL)) → U91(isNatIList(IL), IL, M, N)

Original Signature

Termination of terms over the following signature is verified: isNat, U62, U61, U42, U93, U41, U92, U91, length, U21, cons, isNatIList, U71, U72, 0, U51, isNatList, s, tt, zeros, take, U52, U81, U11, U31, nil

Strategy

Context-sensitive strategy:
μ(isNatList#) = μ(zeros#) = μ(isNat) = μ(T) = μ(isNatIList) = μ(isNatIList#) = μ(0) = μ(isNatList) = μ(tt) = μ(zeros) = μ(isNat#) = μ(nil) = ∅
μ(U93#) = μ(U11#) = μ(U31#) = μ(length#) = μ(U91#) = μ(U21#) = μ(U81#) = μ(U62#) = μ(U52#) = μ(U41#) = μ(U62) = μ(U61) = μ(U93) = μ(U42) = μ(U92) = μ(U41) = μ(U72#) = μ(U91) = μ(length) = μ(U21) = μ(cons) = μ(U92#) = μ(U61#) = μ(U51#) = μ(U71) = μ(U42#) = μ(U72) = μ(U71#) = μ(U51) = μ(s) = μ(U81) = μ(U52) = μ(U11) = μ(U31) = {1}
μ(take#) = μ(take) = {1, 2}


There are no SCCs!

Problem 4: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

T(take(x_1, x_2)) → T(x_2)U91#(tt, IL, M, N) → U92#(isNat(M), IL, M, N)
T(take(x_1, x_2)) → T(x_1)T(take(M, IL)) → take#(M, IL)
U92#(tt, IL, M, N) → U93#(isNat(N), IL, M, N)take#(s(M), cons(N, IL)) → U91#(isNatIList(IL), IL, M, N)
U93#(tt, IL, M, N) → T(N)

Rewrite Rules

zeros → cons(0, zeros)U11(tt) → tt
U21(tt) → ttU31(tt) → tt
U41(tt, V2) → U42(isNatIList(V2))U42(tt) → tt
U51(tt, V2) → U52(isNatList(V2))U52(tt) → tt
U61(tt, V2) → U62(isNatIList(V2))U62(tt) → tt
U71(tt, L, N) → U72(isNat(N), L)U72(tt, L) → s(length(L))
U81(tt) → nilU91(tt, IL, M, N) → U92(isNat(M), IL, M, N)
U92(tt, IL, M, N) → U93(isNat(N), IL, M, N)U93(tt, IL, M, N) → cons(N, take(M, IL))
isNat(0) → ttisNat(length(V1)) → U11(isNatList(V1))
isNat(s(V1)) → U21(isNat(V1))isNatIList(V) → U31(isNatList(V))
isNatIList(zeros) → ttisNatIList(cons(V1, V2)) → U41(isNat(V1), V2)
isNatList(nil) → ttisNatList(cons(V1, V2)) → U51(isNat(V1), V2)
isNatList(take(V1, V2)) → U61(isNat(V1), V2)length(nil) → 0
length(cons(N, L)) → U71(isNatList(L), L, N)take(0, IL) → U81(isNatIList(IL))
take(s(M), cons(N, IL)) → U91(isNatIList(IL), IL, M, N)

Original Signature

Termination of terms over the following signature is verified: isNat, U62, U61, U93, U42, U92, U41, U91, length, U21, cons, isNatIList, U71, U72, 0, U51, isNatList, s, tt, zeros, take, U52, U81, U11, U31, nil

Strategy

Context-sensitive strategy:
μ(isNatList#) = μ(zeros#) = μ(isNat) = μ(T) = μ(isNatIList) = μ(isNatIList#) = μ(0) = μ(isNatList) = μ(zeros) = μ(tt) = μ(isNat#) = μ(nil) = ∅
μ(U93#) = μ(U11#) = μ(U31#) = μ(length#) = μ(U21#) = μ(U91#) = μ(U81#) = μ(U62#) = μ(U52#) = μ(U41#) = μ(U62) = μ(U61) = μ(U93) = μ(U42) = μ(U92) = μ(U41) = μ(U72#) = μ(U91) = μ(length) = μ(U21) = μ(cons) = μ(U92#) = μ(U61#) = μ(U51#) = μ(U71) = μ(U72) = μ(U42#) = μ(U71#) = μ(s) = μ(U51) = μ(U52) = μ(U81) = μ(U11) = μ(U31) = {1}
μ(take#) = μ(take) = {1, 2}


Polynomial Interpretation

Standard Usable rules

U51(tt, V2) → U52(isNatList(V2))U61(tt, V2) → U62(isNatIList(V2))
U31(tt) → ttisNat(length(V1)) → U11(isNatList(V1))
isNatList(take(V1, V2)) → U61(isNat(V1), V2)U91(tt, IL, M, N) → U92(isNat(M), IL, M, N)
isNatList(cons(V1, V2)) → U51(isNat(V1), V2)take(s(M), cons(N, IL)) → U91(isNatIList(IL), IL, M, N)
length(cons(N, L)) → U71(isNatList(L), L, N)U71(tt, L, N) → U72(isNat(N), L)
isNatIList(cons(V1, V2)) → U41(isNat(V1), V2)take(0, IL) → U81(isNatIList(IL))
U21(tt) → ttU62(tt) → tt
isNatIList(zeros) → ttlength(nil) → 0
U11(tt) → ttisNat(0) → tt
isNatList(nil) → ttzeros → cons(0, zeros)
isNat(s(V1)) → U21(isNat(V1))U42(tt) → tt
U92(tt, IL, M, N) → U93(isNat(N), IL, M, N)U93(tt, IL, M, N) → cons(N, take(M, IL))
isNatIList(V) → U31(isNatList(V))U72(tt, L) → s(length(L))
U81(tt) → nilU52(tt) → tt
U41(tt, V2) → U42(isNatIList(V2))

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

U91#(tt, IL, M, N) → U92#(isNat(M), IL, M, N)

Problem 7: DependencyGraph



Dependency Pair Problem

Dependency Pairs

T(take(x_1, x_2)) → T(x_2)T(take(x_1, x_2)) → T(x_1)
U92#(tt, IL, M, N) → U93#(isNat(N), IL, M, N)T(take(M, IL)) → take#(M, IL)
U93#(tt, IL, M, N) → T(N)take#(s(M), cons(N, IL)) → U91#(isNatIList(IL), IL, M, N)

Rewrite Rules

zeros → cons(0, zeros)U11(tt) → tt
U21(tt) → ttU31(tt) → tt
U41(tt, V2) → U42(isNatIList(V2))U42(tt) → tt
U51(tt, V2) → U52(isNatList(V2))U52(tt) → tt
U61(tt, V2) → U62(isNatIList(V2))U62(tt) → tt
U71(tt, L, N) → U72(isNat(N), L)U72(tt, L) → s(length(L))
U81(tt) → nilU91(tt, IL, M, N) → U92(isNat(M), IL, M, N)
U92(tt, IL, M, N) → U93(isNat(N), IL, M, N)U93(tt, IL, M, N) → cons(N, take(M, IL))
isNat(0) → ttisNat(length(V1)) → U11(isNatList(V1))
isNat(s(V1)) → U21(isNat(V1))isNatIList(V) → U31(isNatList(V))
isNatIList(zeros) → ttisNatIList(cons(V1, V2)) → U41(isNat(V1), V2)
isNatList(nil) → ttisNatList(cons(V1, V2)) → U51(isNat(V1), V2)
isNatList(take(V1, V2)) → U61(isNat(V1), V2)length(nil) → 0
length(cons(N, L)) → U71(isNatList(L), L, N)take(0, IL) → U81(isNatIList(IL))
take(s(M), cons(N, IL)) → U91(isNatIList(IL), IL, M, N)

Original Signature

Termination of terms over the following signature is verified: isNat, U62, U61, U42, U93, U41, U92, U91, length, U21, cons, isNatIList, U71, U72, 0, U51, isNatList, s, tt, zeros, take, U52, U81, U11, U31, nil

Strategy

Context-sensitive strategy:
μ(isNatList#) = μ(zeros#) = μ(isNat) = μ(T) = μ(isNatIList) = μ(isNatIList#) = μ(0) = μ(isNatList) = μ(tt) = μ(zeros) = μ(isNat#) = μ(nil) = ∅
μ(U93#) = μ(U11#) = μ(U31#) = μ(length#) = μ(U91#) = μ(U21#) = μ(U81#) = μ(U62#) = μ(U52#) = μ(U41#) = μ(U62) = μ(U61) = μ(U93) = μ(U42) = μ(U92) = μ(U41) = μ(U72#) = μ(U91) = μ(length) = μ(U21) = μ(cons) = μ(U92#) = μ(U61#) = μ(U51#) = μ(U71) = μ(U42#) = μ(U72) = μ(U71#) = μ(U51) = μ(s) = μ(U81) = μ(U52) = μ(U11) = μ(U31) = {1}
μ(take#) = μ(take) = {1, 2}


The following SCCs where found

T(take(x_1, x_2)) → T(x_2)T(take(x_1, x_2)) → T(x_1)

Problem 9: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

T(take(x_1, x_2)) → T(x_2)T(take(x_1, x_2)) → T(x_1)

Rewrite Rules

zeros → cons(0, zeros)U11(tt) → tt
U21(tt) → ttU31(tt) → tt
U41(tt, V2) → U42(isNatIList(V2))U42(tt) → tt
U51(tt, V2) → U52(isNatList(V2))U52(tt) → tt
U61(tt, V2) → U62(isNatIList(V2))U62(tt) → tt
U71(tt, L, N) → U72(isNat(N), L)U72(tt, L) → s(length(L))
U81(tt) → nilU91(tt, IL, M, N) → U92(isNat(M), IL, M, N)
U92(tt, IL, M, N) → U93(isNat(N), IL, M, N)U93(tt, IL, M, N) → cons(N, take(M, IL))
isNat(0) → ttisNat(length(V1)) → U11(isNatList(V1))
isNat(s(V1)) → U21(isNat(V1))isNatIList(V) → U31(isNatList(V))
isNatIList(zeros) → ttisNatIList(cons(V1, V2)) → U41(isNat(V1), V2)
isNatList(nil) → ttisNatList(cons(V1, V2)) → U51(isNat(V1), V2)
isNatList(take(V1, V2)) → U61(isNat(V1), V2)length(nil) → 0
length(cons(N, L)) → U71(isNatList(L), L, N)take(0, IL) → U81(isNatIList(IL))
take(s(M), cons(N, IL)) → U91(isNatIList(IL), IL, M, N)

Original Signature

Termination of terms over the following signature is verified: isNat, U62, U61, U42, U93, U41, U92, U91, length, U21, cons, isNatIList, U71, U72, 0, U51, isNatList, s, tt, zeros, take, U52, U81, U11, U31, nil

Strategy

Context-sensitive strategy:
μ(isNatList#) = μ(zeros#) = μ(isNat) = μ(T) = μ(isNatIList) = μ(isNatIList#) = μ(0) = μ(isNatList) = μ(zeros) = μ(tt) = μ(isNat#) = μ(nil) = ∅
μ(U93#) = μ(U11#) = μ(U31#) = μ(length#) = μ(U21#) = μ(U91#) = μ(U81#) = μ(U62#) = μ(U52#) = μ(U41#) = μ(U62) = μ(U61) = μ(U93) = μ(U42) = μ(U92) = μ(U41) = μ(U72#) = μ(U91) = μ(length) = μ(U21) = μ(cons) = μ(U92#) = μ(U61#) = μ(U51#) = μ(U71) = μ(U72) = μ(U42#) = μ(U71#) = μ(s) = μ(U51) = μ(U52) = μ(U81) = μ(U11) = μ(U31) = {1}
μ(take#) = μ(take) = {1, 2}


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:

T(take(x_1, x_2)) → T(x_2)T(take(x_1, x_2)) → T(x_1)