TIMEOUT

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (1074ms).
 | – Problem 2 was processed with processor PolynomialLinearRange4 (3529ms).
 |    | – Problem 4 was processed with processor DependencyGraph (230ms).
 |    |    | – Problem 5 was processed with processor PolynomialLinearRange4 (2147ms).
 |    |    |    | – Problem 8 was processed with processor DependencyGraph (50ms).
 |    |    |    |    | – Problem 9 remains open; application of the following processors failed [PolynomialLinearRange4 (295ms), DependencyGraph (1ms), PolynomialLinearRange4 (243ms), DependencyGraph (1ms), PolynomialLinearRange4 (258ms), DependencyGraph (1ms), ReductionPairSAT (1316ms), DependencyGraph (0ms)].
 |    |    |    |    | – Problem 10 was processed with processor PolynomialLinearRange4 (414ms).
 |    |    |    |    |    | – Problem 12 was processed with processor PolynomialLinearRange4 (379ms).
 |    |    |    |    |    |    | – Problem 13 remains open; application of the following processors failed [DependencyGraph (5ms), PolynomialLinearRange4 (227ms), DependencyGraph (5ms), ReductionPairSAT (1198ms), DependencyGraph (5ms)].
 |    |    |    |    | – Problem 11 remains open; application of the following processors failed [PolynomialLinearRange4 (228ms), DependencyGraph (1ms), PolynomialLinearRange4 (221ms), DependencyGraph (1ms), PolynomialLinearRange4 (216ms), DependencyGraph (1ms), ReductionPairSAT (1575ms), DependencyGraph (0ms)].
 |    |    | – Problem 6 remains open; application of the following processors failed [PolynomialLinearRange4 (291ms), DependencyGraph (1ms), PolynomialLinearRange4 (298ms), DependencyGraph (0ms), PolynomialLinearRange4 (292ms), DependencyGraph (0ms), PolynomialLinearRange4 (285ms), DependencyGraph (0ms), ReductionPairSAT (1197ms), DependencyGraph (1ms)].
 |    |    | – Problem 7 was processed with processor PolynomialLinearRange4 (48ms).
 | – Problem 3 remains open; application of the following processors failed [SubtermCriterion (0ms), DependencyGraph (29ms), PolynomialLinearRange4iUR (0ms), DependencyGraph (1ms), PolynomialOrderingProcessor (0ms), DependencyGraph (1ms), PolynomialLinearRange4 (324ms), DependencyGraph (0ms), PolynomialLinearRange4 (354ms), DependencyGraph (1ms), PolynomialLinearRange4 (313ms), DependencyGraph (1ms), PolynomialLinearRange4 (295ms), DependencyGraph (0ms), PolynomialLinearRange4 (295ms), DependencyGraph (1ms), ReductionPairSAT (1771ms), DependencyGraph (1ms), SizeChangePrinciple (timeout)].

The following open problems remain:



Open Dependency Pair Problem 3

Dependency Pairs

length#(cons(N, L))U71#(and(and(isNatList(L), isNatIListKind(L)), and(isNat(N), isNatKind(N))), L)U71#(tt, L)length#(L)

Rewrite Rules

zeroscons(0, zeros)U11(tt, V1)U12(isNatList(V1))
U12(tt)ttU21(tt, V1)U22(isNat(V1))
U22(tt)ttU31(tt, V)U32(isNatList(V))
U32(tt)ttU41(tt, V1, V2)U42(isNat(V1), V2)
U42(tt, V2)U43(isNatIList(V2))U43(tt)tt
U51(tt, V1, V2)U52(isNat(V1), V2)U52(tt, V2)U53(isNatList(V2))
U53(tt)ttU61(tt, V1, V2)U62(isNat(V1), V2)
U62(tt, V2)U63(isNatIList(V2))U63(tt)tt
U71(tt, L)s(length(L))U81(tt)nil
U91(tt, IL, M, N)cons(N, take(M, IL))and(tt, X)X
isNat(0)ttisNat(length(V1))U11(isNatIListKind(V1), V1)
isNat(s(V1))U21(isNatKind(V1), V1)isNatIList(V)U31(isNatIListKind(V), V)
isNatIList(zeros)ttisNatIList(cons(V1, V2))U41(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
isNatIListKind(nil)ttisNatIListKind(zeros)tt
isNatIListKind(cons(V1, V2))and(isNatKind(V1), isNatIListKind(V2))isNatIListKind(take(V1, V2))and(isNatKind(V1), isNatIListKind(V2))
isNatKind(0)ttisNatKind(length(V1))isNatIListKind(V1)
isNatKind(s(V1))isNatKind(V1)isNatList(nil)tt
isNatList(cons(V1, V2))U51(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)isNatList(take(V1, V2))U61(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
length(nil)0length(cons(N, L))U71(and(and(isNatList(L), isNatIListKind(L)), and(isNat(N), isNatKind(N))), L)
take(0, IL)U81(and(isNatIList(IL), isNatIListKind(IL)))take(s(M), cons(N, IL))U91(and(and(isNatIList(IL), isNatIListKind(IL)), and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))), IL, M, N)

Original Signature

Termination of terms over the following signature is verified: isNatIListKind, isNat, U63, U62, U43, U61, U42, U41, U91, length, U21, U22, cons, isNatIList, isNatKind, and, U71, 0, isNatList, U51, s, tt, zeros, take, U53, U81, U52, U11, U12, U31, U32, nil




Open Dependency Pair Problem 6

Dependency Pairs

isNat#(s(V1))U21#(isNatKind(V1), V1)U21#(tt, V1)isNat#(V1)

Rewrite Rules

zeroscons(0, zeros)U11(tt, V1)U12(isNatList(V1))
U12(tt)ttU21(tt, V1)U22(isNat(V1))
U22(tt)ttU31(tt, V)U32(isNatList(V))
U32(tt)ttU41(tt, V1, V2)U42(isNat(V1), V2)
U42(tt, V2)U43(isNatIList(V2))U43(tt)tt
U51(tt, V1, V2)U52(isNat(V1), V2)U52(tt, V2)U53(isNatList(V2))
U53(tt)ttU61(tt, V1, V2)U62(isNat(V1), V2)
U62(tt, V2)U63(isNatIList(V2))U63(tt)tt
U71(tt, L)s(length(L))U81(tt)nil
U91(tt, IL, M, N)cons(N, take(M, IL))and(tt, X)X
isNat(0)ttisNat(length(V1))U11(isNatIListKind(V1), V1)
isNat(s(V1))U21(isNatKind(V1), V1)isNatIList(V)U31(isNatIListKind(V), V)
isNatIList(zeros)ttisNatIList(cons(V1, V2))U41(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
isNatIListKind(nil)ttisNatIListKind(zeros)tt
isNatIListKind(cons(V1, V2))and(isNatKind(V1), isNatIListKind(V2))isNatIListKind(take(V1, V2))and(isNatKind(V1), isNatIListKind(V2))
isNatKind(0)ttisNatKind(length(V1))isNatIListKind(V1)
isNatKind(s(V1))isNatKind(V1)isNatList(nil)tt
isNatList(cons(V1, V2))U51(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)isNatList(take(V1, V2))U61(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
length(nil)0length(cons(N, L))U71(and(and(isNatList(L), isNatIListKind(L)), and(isNat(N), isNatKind(N))), L)
take(0, IL)U81(and(isNatIList(IL), isNatIListKind(IL)))take(s(M), cons(N, IL))U91(and(and(isNatIList(IL), isNatIListKind(IL)), and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))), IL, M, N)

Original Signature

Termination of terms over the following signature is verified: isNatIListKind, isNat, U63, U62, U61, U43, U42, U41, U91, length, U21, cons, U22, isNatIList, isNatKind, and, U71, 0, isNatList, U51, s, tt, zeros, take, U53, U52, U81, U11, U12, U31, U32, nil




Open Dependency Pair Problem 9

Dependency Pairs

U42#(tt, V2)isNatIList#(V2)U41#(tt, V1, V2)U42#(isNat(V1), V2)
isNatIList#(cons(V1, V2))U41#(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)

Rewrite Rules

zeroscons(0, zeros)U11(tt, V1)U12(isNatList(V1))
U12(tt)ttU21(tt, V1)U22(isNat(V1))
U22(tt)ttU31(tt, V)U32(isNatList(V))
U32(tt)ttU41(tt, V1, V2)U42(isNat(V1), V2)
U42(tt, V2)U43(isNatIList(V2))U43(tt)tt
U51(tt, V1, V2)U52(isNat(V1), V2)U52(tt, V2)U53(isNatList(V2))
U53(tt)ttU61(tt, V1, V2)U62(isNat(V1), V2)
U62(tt, V2)U63(isNatIList(V2))U63(tt)tt
U71(tt, L)s(length(L))U81(tt)nil
U91(tt, IL, M, N)cons(N, take(M, IL))and(tt, X)X
isNat(0)ttisNat(length(V1))U11(isNatIListKind(V1), V1)
isNat(s(V1))U21(isNatKind(V1), V1)isNatIList(V)U31(isNatIListKind(V), V)
isNatIList(zeros)ttisNatIList(cons(V1, V2))U41(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
isNatIListKind(nil)ttisNatIListKind(zeros)tt
isNatIListKind(cons(V1, V2))and(isNatKind(V1), isNatIListKind(V2))isNatIListKind(take(V1, V2))and(isNatKind(V1), isNatIListKind(V2))
isNatKind(0)ttisNatKind(length(V1))isNatIListKind(V1)
isNatKind(s(V1))isNatKind(V1)isNatList(nil)tt
isNatList(cons(V1, V2))U51(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)isNatList(take(V1, V2))U61(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
length(nil)0length(cons(N, L))U71(and(and(isNatList(L), isNatIListKind(L)), and(isNat(N), isNatKind(N))), L)
take(0, IL)U81(and(isNatIList(IL), isNatIListKind(IL)))take(s(M), cons(N, IL))U91(and(and(isNatIList(IL), isNatIListKind(IL)), and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))), IL, M, N)

Original Signature

Termination of terms over the following signature is verified: isNatIListKind, isNat, U63, U62, U43, U61, U42, U41, U91, length, U21, U22, cons, isNatIList, isNatKind, and, U71, 0, isNatList, U51, s, tt, zeros, take, U53, U81, U52, U11, U12, U31, U32, nil




Open Dependency Pair Problem 11

Dependency Pairs

isNatList#(cons(V1, V2))U51#(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)U52#(tt, V2)isNatList#(V2)
U51#(tt, V1, V2)U52#(isNat(V1), V2)

Rewrite Rules

zeroscons(0, zeros)U11(tt, V1)U12(isNatList(V1))
U12(tt)ttU21(tt, V1)U22(isNat(V1))
U22(tt)ttU31(tt, V)U32(isNatList(V))
U32(tt)ttU41(tt, V1, V2)U42(isNat(V1), V2)
U42(tt, V2)U43(isNatIList(V2))U43(tt)tt
U51(tt, V1, V2)U52(isNat(V1), V2)U52(tt, V2)U53(isNatList(V2))
U53(tt)ttU61(tt, V1, V2)U62(isNat(V1), V2)
U62(tt, V2)U63(isNatIList(V2))U63(tt)tt
U71(tt, L)s(length(L))U81(tt)nil
U91(tt, IL, M, N)cons(N, take(M, IL))and(tt, X)X
isNat(0)ttisNat(length(V1))U11(isNatIListKind(V1), V1)
isNat(s(V1))U21(isNatKind(V1), V1)isNatIList(V)U31(isNatIListKind(V), V)
isNatIList(zeros)ttisNatIList(cons(V1, V2))U41(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
isNatIListKind(nil)ttisNatIListKind(zeros)tt
isNatIListKind(cons(V1, V2))and(isNatKind(V1), isNatIListKind(V2))isNatIListKind(take(V1, V2))and(isNatKind(V1), isNatIListKind(V2))
isNatKind(0)ttisNatKind(length(V1))isNatIListKind(V1)
isNatKind(s(V1))isNatKind(V1)isNatList(nil)tt
isNatList(cons(V1, V2))U51(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)isNatList(take(V1, V2))U61(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
length(nil)0length(cons(N, L))U71(and(and(isNatList(L), isNatIListKind(L)), and(isNat(N), isNatKind(N))), L)
take(0, IL)U81(and(isNatIList(IL), isNatIListKind(IL)))take(s(M), cons(N, IL))U91(and(and(isNatIList(IL), isNatIListKind(IL)), and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))), IL, M, N)

Original Signature

Termination of terms over the following signature is verified: isNatIListKind, isNat, U63, U62, U43, U61, U42, U41, U91, length, U21, U22, cons, isNatIList, isNatKind, and, U71, 0, isNatList, U51, s, tt, zeros, take, U53, U81, U52, U11, U12, U31, U32, nil




Open Dependency Pair Problem 13

Dependency Pairs

and#(tt, X)T(X)isNatIListKind#(cons(V1, V2))and#(isNatKind(V1), isNatIListKind(V2))
T(isNatIListKind(V2))isNatIListKind#(V2)T(isNatKind(x_1))T(x_1)
T(and(x_1, x_2))T(x_1)T(and(x_1, x_2))T(x_2)
T(isNatIListKind(L))isNatIListKind#(L)T(isNatIListKind(IL))isNatIListKind#(IL)

Rewrite Rules

zeroscons(0, zeros)U11(tt, V1)U12(isNatList(V1))
U12(tt)ttU21(tt, V1)U22(isNat(V1))
U22(tt)ttU31(tt, V)U32(isNatList(V))
U32(tt)ttU41(tt, V1, V2)U42(isNat(V1), V2)
U42(tt, V2)U43(isNatIList(V2))U43(tt)tt
U51(tt, V1, V2)U52(isNat(V1), V2)U52(tt, V2)U53(isNatList(V2))
U53(tt)ttU61(tt, V1, V2)U62(isNat(V1), V2)
U62(tt, V2)U63(isNatIList(V2))U63(tt)tt
U71(tt, L)s(length(L))U81(tt)nil
U91(tt, IL, M, N)cons(N, take(M, IL))and(tt, X)X
isNat(0)ttisNat(length(V1))U11(isNatIListKind(V1), V1)
isNat(s(V1))U21(isNatKind(V1), V1)isNatIList(V)U31(isNatIListKind(V), V)
isNatIList(zeros)ttisNatIList(cons(V1, V2))U41(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
isNatIListKind(nil)ttisNatIListKind(zeros)tt
isNatIListKind(cons(V1, V2))and(isNatKind(V1), isNatIListKind(V2))isNatIListKind(take(V1, V2))and(isNatKind(V1), isNatIListKind(V2))
isNatKind(0)ttisNatKind(length(V1))isNatIListKind(V1)
isNatKind(s(V1))isNatKind(V1)isNatList(nil)tt
isNatList(cons(V1, V2))U51(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)isNatList(take(V1, V2))U61(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
length(nil)0length(cons(N, L))U71(and(and(isNatList(L), isNatIListKind(L)), and(isNat(N), isNatKind(N))), L)
take(0, IL)U81(and(isNatIList(IL), isNatIListKind(IL)))take(s(M), cons(N, IL))U91(and(and(isNatIList(IL), isNatIListKind(IL)), and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))), IL, M, N)

Original Signature

Termination of terms over the following signature is verified: isNatIListKind, isNat, U63, U62, U43, U61, U42, U41, U91, length, U21, U22, cons, isNatIList, isNatKind, and, U71, 0, isNatList, U51, s, tt, zeros, take, U53, U81, U52, U11, U12, U31, U32, nil


Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

isNatIList#(cons(V1, V2))isNatKind#(V1)isNat#(s(V1))isNatKind#(V1)
isNat#(s(V1))U21#(isNatKind(V1), V1)U31#(tt, V)isNatList#(V)
take#(s(M), cons(N, IL))and#(isNatIList(IL), isNatIListKind(IL))T(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))))and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))
isNatKind#(length(V1))isNatIListKind#(V1)U42#(tt, V2)isNatIList#(V2)
T(and(x_1, x_2))T(x_1)isNatList#(cons(V1, V2))and#(isNatKind(V1), isNatIListKind(V2))
U71#(tt, L)length#(L)isNatKind#(s(V1))isNatKind#(V1)
isNatIList#(V)U31#(isNatIListKind(V), V)T(zeros)zeros#
T(isNatIListKind(V2))isNatIListKind#(V2)U41#(tt, V1, V2)U42#(isNat(V1), V2)
U61#(tt, V1, V2)isNat#(V1)isNatIList#(cons(V1, V2))U41#(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
isNatList#(cons(V1, V2))isNatKind#(V1)isNatIList#(cons(V1, V2))and#(isNatKind(V1), isNatIListKind(V2))
U21#(tt, V1)isNat#(V1)and#(tt, X)T(X)
T(isNatKind(M))isNatKind#(M)isNatList#(take(V1, V2))isNatKind#(V1)
U11#(tt, V1)U12#(isNatList(V1))T(and(isNat(N), isNatKind(N)))and#(isNat(N), isNatKind(N))
T(take(x_1, x_2))T(x_1)isNat#(length(V1))isNatIListKind#(V1)
length#(cons(N, L))and#(and(isNatList(L), isNatIListKind(L)), and(isNat(N), isNatKind(N)))T(isNatIListKind(L))isNatIListKind#(L)
isNatList#(take(V1, V2))and#(isNatKind(V1), isNatIListKind(V2))take#(0, IL)isNatIList#(IL)
isNat#(length(V1))U11#(isNatIListKind(V1), V1)U71#(tt, L)T(L)
U31#(tt, V)U32#(isNatList(V))length#(cons(N, L))U71#(and(and(isNatList(L), isNatIListKind(L)), and(isNat(N), isNatKind(N))), L)
T(isNatKind(x_1))T(x_1)T(and(x_1, x_2))T(x_2)
U62#(tt, V2)U63#(isNatIList(V2))isNatIListKind#(cons(V1, V2))isNatKind#(V1)
T(take(M, IL))take#(M, IL)isNatIList#(V)isNatIListKind#(V)
take#(0, IL)U81#(and(isNatIList(IL), isNatIListKind(IL)))U42#(tt, V2)U43#(isNatIList(V2))
T(and(isNat(M), isNatKind(M)))and#(isNat(M), isNatKind(M))U62#(tt, V2)isNatIList#(V2)
isNatList#(cons(V1, V2))U51#(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)T(isNat(x_1))T(x_1)
U52#(tt, V2)U53#(isNatList(V2))isNatIListKind#(take(V1, V2))isNatKind#(V1)
U52#(tt, V2)isNatList#(V2)take#(s(M), cons(N, IL))U91#(and(and(isNatIList(IL), isNatIListKind(IL)), and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))), IL, M, N)
take#(s(M), cons(N, IL))isNatIList#(IL)T(isNatIListKind(IL))isNatIListKind#(IL)
isNatIListKind#(cons(V1, V2))and#(isNatKind(V1), isNatIListKind(V2))T(take(x_1, x_2))T(x_2)
take#(s(M), cons(N, IL))and#(and(isNatIList(IL), isNatIListKind(IL)), and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))))take#(0, IL)and#(isNatIList(IL), isNatIListKind(IL))
U51#(tt, V1, V2)U52#(isNat(V1), V2)U21#(tt, V1)U22#(isNat(V1))
T(isNatIListKind(x_1))T(x_1)U61#(tt, V1, V2)U62#(isNat(V1), V2)
U51#(tt, V1, V2)isNat#(V1)T(isNatKind(N))isNatKind#(N)
T(isNat(M))isNat#(M)U91#(tt, IL, M, N)T(N)
isNatIListKind#(take(V1, V2))and#(isNatKind(V1), isNatIListKind(V2))U41#(tt, V1, V2)isNat#(V1)
U11#(tt, V1)isNatList#(V1)length#(cons(N, L))and#(isNatList(L), isNatIListKind(L))
T(isNat(N))isNat#(N)length#(cons(N, L))isNatList#(L)
isNatList#(take(V1, V2))U61#(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)

Rewrite Rules

zeroscons(0, zeros)U11(tt, V1)U12(isNatList(V1))
U12(tt)ttU21(tt, V1)U22(isNat(V1))
U22(tt)ttU31(tt, V)U32(isNatList(V))
U32(tt)ttU41(tt, V1, V2)U42(isNat(V1), V2)
U42(tt, V2)U43(isNatIList(V2))U43(tt)tt
U51(tt, V1, V2)U52(isNat(V1), V2)U52(tt, V2)U53(isNatList(V2))
U53(tt)ttU61(tt, V1, V2)U62(isNat(V1), V2)
U62(tt, V2)U63(isNatIList(V2))U63(tt)tt
U71(tt, L)s(length(L))U81(tt)nil
U91(tt, IL, M, N)cons(N, take(M, IL))and(tt, X)X
isNat(0)ttisNat(length(V1))U11(isNatIListKind(V1), V1)
isNat(s(V1))U21(isNatKind(V1), V1)isNatIList(V)U31(isNatIListKind(V), V)
isNatIList(zeros)ttisNatIList(cons(V1, V2))U41(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
isNatIListKind(nil)ttisNatIListKind(zeros)tt
isNatIListKind(cons(V1, V2))and(isNatKind(V1), isNatIListKind(V2))isNatIListKind(take(V1, V2))and(isNatKind(V1), isNatIListKind(V2))
isNatKind(0)ttisNatKind(length(V1))isNatIListKind(V1)
isNatKind(s(V1))isNatKind(V1)isNatList(nil)tt
isNatList(cons(V1, V2))U51(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)isNatList(take(V1, V2))U61(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
length(nil)0length(cons(N, L))U71(and(and(isNatList(L), isNatIListKind(L)), and(isNat(N), isNatKind(N))), L)
take(0, IL)U81(and(isNatIList(IL), isNatIListKind(IL)))take(s(M), cons(N, IL))U91(and(and(isNatIList(IL), isNatIListKind(IL)), and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))), IL, M, N)

Original Signature

Termination of terms over the following signature is verified: isNatIListKind, isNat, U63, U62, U61, U43, U42, U41, U91, length, U21, cons, U22, isNatIList, isNatKind, and, U71, 0, isNatList, U51, s, tt, zeros, take, U53, U52, U81, U11, U12, U31, U32, nil

Strategy

Context-sensitive strategy:
μ(isNatIListKind#) = μ(zeros#) = μ(isNatIList) = μ(isNatKind) = μ(isNatIList#) = μ(0) = μ(isNatKind#) = μ(zeros) = μ(isNatList#) = μ(isNatIListKind) = μ(isNat) = μ(T) = μ(isNatList) = μ(tt) = μ(isNat#) = μ(nil) = ∅
μ(U11#) = μ(U31#) = μ(U21#) = μ(U62#) = μ(U52#) = μ(U63) = μ(U62) = μ(U41#) = μ(U61) = μ(U21) = μ(U22) = μ(U12#) = μ(U22#) = μ(U61#) = μ(U51#) = μ(and) = μ(U71) = μ(U42#) = μ(U71#) = μ(U32#) = μ(U31) = μ(U32) = μ(length#) = μ(U91#) = μ(U81#) = μ(and#) = μ(U43#) = μ(U43) = μ(U42) = μ(U41) = μ(U91) = μ(length) = μ(cons) = μ(U63#) = μ(U53#) = μ(U51) = μ(s) = μ(U53) = μ(U52) = μ(U81) = μ(U11) = μ(U12) = {1}
μ(take#) = μ(take) = {1, 2}


The following SCCs where found

length#(cons(N, L)) → U71#(and(and(isNatList(L), isNatIListKind(L)), and(isNat(N), isNatKind(N))), L)U71#(tt, L) → length#(L)

isNatIList#(cons(V1, V2)) → isNatKind#(V1)isNat#(s(V1)) → isNatKind#(V1)
isNat#(s(V1)) → U21#(isNatKind(V1), V1)U31#(tt, V) → isNatList#(V)
take#(s(M), cons(N, IL)) → and#(isNatIList(IL), isNatIListKind(IL))isNatKind#(length(V1)) → isNatIListKind#(V1)
T(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))) → and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))U42#(tt, V2) → isNatIList#(V2)
T(and(x_1, x_2)) → T(x_1)isNatList#(cons(V1, V2)) → and#(isNatKind(V1), isNatIListKind(V2))
isNatKind#(s(V1)) → isNatKind#(V1)isNatIList#(V) → U31#(isNatIListKind(V), V)
T(isNatIListKind(V2)) → isNatIListKind#(V2)U41#(tt, V1, V2) → U42#(isNat(V1), V2)
U61#(tt, V1, V2) → isNat#(V1)isNatIList#(cons(V1, V2)) → U41#(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
isNatIList#(cons(V1, V2)) → and#(isNatKind(V1), isNatIListKind(V2))isNatList#(cons(V1, V2)) → isNatKind#(V1)
U21#(tt, V1) → isNat#(V1)and#(tt, X) → T(X)
T(isNatKind(M)) → isNatKind#(M)isNatList#(take(V1, V2)) → isNatKind#(V1)
T(and(isNat(N), isNatKind(N))) → and#(isNat(N), isNatKind(N))T(take(x_1, x_2)) → T(x_1)
isNat#(length(V1)) → isNatIListKind#(V1)T(isNatIListKind(L)) → isNatIListKind#(L)
isNatList#(take(V1, V2)) → and#(isNatKind(V1), isNatIListKind(V2))take#(0, IL) → isNatIList#(IL)
isNat#(length(V1)) → U11#(isNatIListKind(V1), V1)T(isNatKind(x_1)) → T(x_1)
T(and(x_1, x_2)) → T(x_2)isNatIListKind#(cons(V1, V2)) → isNatKind#(V1)
T(take(M, IL)) → take#(M, IL)isNatIList#(V) → isNatIListKind#(V)
T(and(isNat(M), isNatKind(M))) → and#(isNat(M), isNatKind(M))U62#(tt, V2) → isNatIList#(V2)
isNatList#(cons(V1, V2)) → U51#(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)T(isNat(x_1)) → T(x_1)
isNatIListKind#(take(V1, V2)) → isNatKind#(V1)U52#(tt, V2) → isNatList#(V2)
take#(s(M), cons(N, IL)) → isNatIList#(IL)take#(s(M), cons(N, IL)) → U91#(and(and(isNatIList(IL), isNatIListKind(IL)), and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))), IL, M, N)
T(isNatIListKind(IL)) → isNatIListKind#(IL)T(take(x_1, x_2)) → T(x_2)
isNatIListKind#(cons(V1, V2)) → and#(isNatKind(V1), isNatIListKind(V2))take#(s(M), cons(N, IL)) → and#(and(isNatIList(IL), isNatIListKind(IL)), and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))))
take#(0, IL) → and#(isNatIList(IL), isNatIListKind(IL))U51#(tt, V1, V2) → U52#(isNat(V1), V2)
T(isNatIListKind(x_1)) → T(x_1)U61#(tt, V1, V2) → U62#(isNat(V1), V2)
U51#(tt, V1, V2) → isNat#(V1)T(isNatKind(N)) → isNatKind#(N)
T(isNat(M)) → isNat#(M)U91#(tt, IL, M, N) → T(N)
isNatIListKind#(take(V1, V2)) → and#(isNatKind(V1), isNatIListKind(V2))U41#(tt, V1, V2) → isNat#(V1)
U11#(tt, V1) → isNatList#(V1)T(isNat(N)) → isNat#(N)
isNatList#(take(V1, V2)) → U61#(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)

Problem 2: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

isNatIList#(cons(V1, V2))isNatKind#(V1)isNat#(s(V1))isNatKind#(V1)
isNat#(s(V1))U21#(isNatKind(V1), V1)U31#(tt, V)isNatList#(V)
take#(s(M), cons(N, IL))and#(isNatIList(IL), isNatIListKind(IL))T(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))))and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))
isNatKind#(length(V1))isNatIListKind#(V1)U42#(tt, V2)isNatIList#(V2)
T(and(x_1, x_2))T(x_1)isNatList#(cons(V1, V2))and#(isNatKind(V1), isNatIListKind(V2))
isNatKind#(s(V1))isNatKind#(V1)T(isNatIListKind(V2))isNatIListKind#(V2)
isNatIList#(V)U31#(isNatIListKind(V), V)U41#(tt, V1, V2)U42#(isNat(V1), V2)
U61#(tt, V1, V2)isNat#(V1)isNatIList#(cons(V1, V2))U41#(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
isNatIList#(cons(V1, V2))and#(isNatKind(V1), isNatIListKind(V2))isNatList#(cons(V1, V2))isNatKind#(V1)
U21#(tt, V1)isNat#(V1)and#(tt, X)T(X)
T(isNatKind(M))isNatKind#(M)isNatList#(take(V1, V2))isNatKind#(V1)
T(and(isNat(N), isNatKind(N)))and#(isNat(N), isNatKind(N))T(take(x_1, x_2))T(x_1)
isNat#(length(V1))isNatIListKind#(V1)T(isNatIListKind(L))isNatIListKind#(L)
isNatList#(take(V1, V2))and#(isNatKind(V1), isNatIListKind(V2))take#(0, IL)isNatIList#(IL)
isNat#(length(V1))U11#(isNatIListKind(V1), V1)T(isNatKind(x_1))T(x_1)
T(and(x_1, x_2))T(x_2)isNatIListKind#(cons(V1, V2))isNatKind#(V1)
isNatIList#(V)isNatIListKind#(V)T(take(M, IL))take#(M, IL)
U62#(tt, V2)isNatIList#(V2)T(and(isNat(M), isNatKind(M)))and#(isNat(M), isNatKind(M))
isNatList#(cons(V1, V2))U51#(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)T(isNat(x_1))T(x_1)
U52#(tt, V2)isNatList#(V2)isNatIListKind#(take(V1, V2))isNatKind#(V1)
T(isNatIListKind(IL))isNatIListKind#(IL)take#(s(M), cons(N, IL))U91#(and(and(isNatIList(IL), isNatIListKind(IL)), and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))), IL, M, N)
take#(s(M), cons(N, IL))isNatIList#(IL)isNatIListKind#(cons(V1, V2))and#(isNatKind(V1), isNatIListKind(V2))
T(take(x_1, x_2))T(x_2)take#(s(M), cons(N, IL))and#(and(isNatIList(IL), isNatIListKind(IL)), and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))))
take#(0, IL)and#(isNatIList(IL), isNatIListKind(IL))U51#(tt, V1, V2)U52#(isNat(V1), V2)
T(isNatIListKind(x_1))T(x_1)U61#(tt, V1, V2)U62#(isNat(V1), V2)
U51#(tt, V1, V2)isNat#(V1)T(isNatKind(N))isNatKind#(N)
T(isNat(M))isNat#(M)U91#(tt, IL, M, N)T(N)
isNatIListKind#(take(V1, V2))and#(isNatKind(V1), isNatIListKind(V2))U41#(tt, V1, V2)isNat#(V1)
U11#(tt, V1)isNatList#(V1)T(isNat(N))isNat#(N)
isNatList#(take(V1, V2))U61#(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)

Rewrite Rules

zeroscons(0, zeros)U11(tt, V1)U12(isNatList(V1))
U12(tt)ttU21(tt, V1)U22(isNat(V1))
U22(tt)ttU31(tt, V)U32(isNatList(V))
U32(tt)ttU41(tt, V1, V2)U42(isNat(V1), V2)
U42(tt, V2)U43(isNatIList(V2))U43(tt)tt
U51(tt, V1, V2)U52(isNat(V1), V2)U52(tt, V2)U53(isNatList(V2))
U53(tt)ttU61(tt, V1, V2)U62(isNat(V1), V2)
U62(tt, V2)U63(isNatIList(V2))U63(tt)tt
U71(tt, L)s(length(L))U81(tt)nil
U91(tt, IL, M, N)cons(N, take(M, IL))and(tt, X)X
isNat(0)ttisNat(length(V1))U11(isNatIListKind(V1), V1)
isNat(s(V1))U21(isNatKind(V1), V1)isNatIList(V)U31(isNatIListKind(V), V)
isNatIList(zeros)ttisNatIList(cons(V1, V2))U41(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
isNatIListKind(nil)ttisNatIListKind(zeros)tt
isNatIListKind(cons(V1, V2))and(isNatKind(V1), isNatIListKind(V2))isNatIListKind(take(V1, V2))and(isNatKind(V1), isNatIListKind(V2))
isNatKind(0)ttisNatKind(length(V1))isNatIListKind(V1)
isNatKind(s(V1))isNatKind(V1)isNatList(nil)tt
isNatList(cons(V1, V2))U51(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)isNatList(take(V1, V2))U61(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
length(nil)0length(cons(N, L))U71(and(and(isNatList(L), isNatIListKind(L)), and(isNat(N), isNatKind(N))), L)
take(0, IL)U81(and(isNatIList(IL), isNatIListKind(IL)))take(s(M), cons(N, IL))U91(and(and(isNatIList(IL), isNatIListKind(IL)), and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))), IL, M, N)

Original Signature

Termination of terms over the following signature is verified: isNatIListKind, isNat, U63, U62, U61, U43, U42, U41, U91, length, U21, cons, U22, isNatIList, isNatKind, and, U71, 0, isNatList, U51, s, tt, zeros, take, U53, U52, U81, U11, U12, U31, U32, nil

Strategy

Context-sensitive strategy:
μ(isNatIListKind#) = μ(zeros#) = μ(isNatIList) = μ(isNatKind) = μ(isNatIList#) = μ(0) = μ(isNatKind#) = μ(zeros) = μ(isNatList#) = μ(isNatIListKind) = μ(isNat) = μ(T) = μ(isNatList) = μ(tt) = μ(isNat#) = μ(nil) = ∅
μ(U11#) = μ(U31#) = μ(U21#) = μ(U62#) = μ(U52#) = μ(U63) = μ(U62) = μ(U41#) = μ(U61) = μ(U21) = μ(U22) = μ(U12#) = μ(U22#) = μ(U61#) = μ(U51#) = μ(U71) = μ(and) = μ(U42#) = μ(U71#) = μ(U32#) = μ(U31) = μ(U32) = μ(length#) = μ(U91#) = μ(U81#) = μ(and#) = μ(U43#) = μ(U43) = μ(U42) = μ(U41) = μ(U91) = μ(length) = μ(cons) = μ(U63#) = μ(U53#) = μ(s) = μ(U51) = μ(U53) = μ(U81) = μ(U52) = μ(U11) = μ(U12) = {1}
μ(take#) = μ(take) = {1, 2}


Polynomial Interpretation

Standard Usable rules

isNat(length(V1))U11(isNatIListKind(V1), V1)isNatIListKind(nil)tt
isNatIListKind(take(V1, V2))and(isNatKind(V1), isNatIListKind(V2))U63(tt)tt
isNatIList(V)U31(isNatIListKind(V), V)U21(tt, V1)U22(isNat(V1))
isNatIListKind(cons(V1, V2))and(isNatKind(V1), isNatIListKind(V2))U53(tt)tt
U51(tt, V1, V2)U52(isNat(V1), V2)isNatList(take(V1, V2))U61(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
isNat(s(V1))U21(isNatKind(V1), V1)isNatKind(s(V1))isNatKind(V1)
length(cons(N, L))U71(and(and(isNatList(L), isNatIListKind(L)), and(isNat(N), isNatKind(N))), L)U32(tt)tt
U11(tt, V1)U12(isNatList(V1))isNatKind(0)tt
take(0, IL)U81(and(isNatIList(IL), isNatIListKind(IL)))U22(tt)tt
isNatIList(zeros)ttlength(nil)0
U43(tt)ttU91(tt, IL, M, N)cons(N, take(M, IL))
isNat(0)ttisNatList(nil)tt
U42(tt, V2)U43(isNatIList(V2))U31(tt, V)U32(isNatList(V))
zeroscons(0, zeros)U12(tt)tt
isNatIList(cons(V1, V2))U41(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)U71(tt, L)s(length(L))
isNatKind(length(V1))isNatIListKind(V1)U41(tt, V1, V2)U42(isNat(V1), V2)
U81(tt)nilU61(tt, V1, V2)U62(isNat(V1), V2)
and(tt, X)XU52(tt, V2)U53(isNatList(V2))
isNatList(cons(V1, V2))U51(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)U62(tt, V2)U63(isNatIList(V2))
take(s(M), cons(N, IL))U91(and(and(isNatIList(IL), isNatIListKind(IL)), and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))), IL, M, N)isNatIListKind(zeros)tt

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

isNatKind#(length(V1))isNatIListKind#(V1)isNat#(length(V1))isNatIListKind#(V1)
isNat#(length(V1))U11#(isNatIListKind(V1), V1)

Problem 4: DependencyGraph



Dependency Pair Problem

Dependency Pairs

isNatIList#(cons(V1, V2))isNatKind#(V1)isNat#(s(V1))isNatKind#(V1)
isNat#(s(V1))U21#(isNatKind(V1), V1)U31#(tt, V)isNatList#(V)
take#(s(M), cons(N, IL))and#(isNatIList(IL), isNatIListKind(IL))T(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))))and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))
U42#(tt, V2)isNatIList#(V2)T(and(x_1, x_2))T(x_1)
isNatList#(cons(V1, V2))and#(isNatKind(V1), isNatIListKind(V2))isNatKind#(s(V1))isNatKind#(V1)
T(isNatIListKind(V2))isNatIListKind#(V2)isNatIList#(V)U31#(isNatIListKind(V), V)
U61#(tt, V1, V2)isNat#(V1)U41#(tt, V1, V2)U42#(isNat(V1), V2)
isNatIList#(cons(V1, V2))U41#(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)isNatList#(cons(V1, V2))isNatKind#(V1)
isNatIList#(cons(V1, V2))and#(isNatKind(V1), isNatIListKind(V2))U21#(tt, V1)isNat#(V1)
T(isNatKind(M))isNatKind#(M)and#(tt, X)T(X)
isNatList#(take(V1, V2))isNatKind#(V1)T(and(isNat(N), isNatKind(N)))and#(isNat(N), isNatKind(N))
T(take(x_1, x_2))T(x_1)T(isNatIListKind(L))isNatIListKind#(L)
isNatList#(take(V1, V2))and#(isNatKind(V1), isNatIListKind(V2))take#(0, IL)isNatIList#(IL)
T(isNatKind(x_1))T(x_1)T(and(x_1, x_2))T(x_2)
isNatIListKind#(cons(V1, V2))isNatKind#(V1)isNatIList#(V)isNatIListKind#(V)
T(take(M, IL))take#(M, IL)U62#(tt, V2)isNatIList#(V2)
T(and(isNat(M), isNatKind(M)))and#(isNat(M), isNatKind(M))isNatList#(cons(V1, V2))U51#(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
T(isNat(x_1))T(x_1)U52#(tt, V2)isNatList#(V2)
isNatIListKind#(take(V1, V2))isNatKind#(V1)T(isNatIListKind(IL))isNatIListKind#(IL)
take#(s(M), cons(N, IL))U91#(and(and(isNatIList(IL), isNatIListKind(IL)), and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))), IL, M, N)take#(s(M), cons(N, IL))isNatIList#(IL)
isNatIListKind#(cons(V1, V2))and#(isNatKind(V1), isNatIListKind(V2))T(take(x_1, x_2))T(x_2)
take#(s(M), cons(N, IL))and#(and(isNatIList(IL), isNatIListKind(IL)), and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))))take#(0, IL)and#(isNatIList(IL), isNatIListKind(IL))
U51#(tt, V1, V2)U52#(isNat(V1), V2)T(isNatIListKind(x_1))T(x_1)
U61#(tt, V1, V2)U62#(isNat(V1), V2)U51#(tt, V1, V2)isNat#(V1)
T(isNatKind(N))isNatKind#(N)T(isNat(M))isNat#(M)
U91#(tt, IL, M, N)T(N)isNatIListKind#(take(V1, V2))and#(isNatKind(V1), isNatIListKind(V2))
U41#(tt, V1, V2)isNat#(V1)U11#(tt, V1)isNatList#(V1)
T(isNat(N))isNat#(N)isNatList#(take(V1, V2))U61#(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)

Rewrite Rules

zeroscons(0, zeros)U11(tt, V1)U12(isNatList(V1))
U12(tt)ttU21(tt, V1)U22(isNat(V1))
U22(tt)ttU31(tt, V)U32(isNatList(V))
U32(tt)ttU41(tt, V1, V2)U42(isNat(V1), V2)
U42(tt, V2)U43(isNatIList(V2))U43(tt)tt
U51(tt, V1, V2)U52(isNat(V1), V2)U52(tt, V2)U53(isNatList(V2))
U53(tt)ttU61(tt, V1, V2)U62(isNat(V1), V2)
U62(tt, V2)U63(isNatIList(V2))U63(tt)tt
U71(tt, L)s(length(L))U81(tt)nil
U91(tt, IL, M, N)cons(N, take(M, IL))and(tt, X)X
isNat(0)ttisNat(length(V1))U11(isNatIListKind(V1), V1)
isNat(s(V1))U21(isNatKind(V1), V1)isNatIList(V)U31(isNatIListKind(V), V)
isNatIList(zeros)ttisNatIList(cons(V1, V2))U41(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
isNatIListKind(nil)ttisNatIListKind(zeros)tt
isNatIListKind(cons(V1, V2))and(isNatKind(V1), isNatIListKind(V2))isNatIListKind(take(V1, V2))and(isNatKind(V1), isNatIListKind(V2))
isNatKind(0)ttisNatKind(length(V1))isNatIListKind(V1)
isNatKind(s(V1))isNatKind(V1)isNatList(nil)tt
isNatList(cons(V1, V2))U51(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)isNatList(take(V1, V2))U61(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
length(nil)0length(cons(N, L))U71(and(and(isNatList(L), isNatIListKind(L)), and(isNat(N), isNatKind(N))), L)
take(0, IL)U81(and(isNatIList(IL), isNatIListKind(IL)))take(s(M), cons(N, IL))U91(and(and(isNatIList(IL), isNatIListKind(IL)), and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))), IL, M, N)

Original Signature

Termination of terms over the following signature is verified: isNatIListKind, isNat, U63, U62, U43, U61, U42, U41, U91, length, U21, U22, cons, isNatIList, isNatKind, and, U71, 0, isNatList, U51, s, tt, zeros, take, U53, U81, U52, U11, U12, U31, U32, nil

Strategy

Context-sensitive strategy:
μ(isNatIListKind#) = μ(zeros#) = μ(isNatIList) = μ(isNatKind) = μ(isNatIList#) = μ(0) = μ(isNatKind#) = μ(zeros) = μ(isNatList#) = μ(isNatIListKind) = μ(isNat) = μ(T) = μ(isNatList) = μ(tt) = μ(isNat#) = μ(nil) = ∅
μ(U11#) = μ(U31#) = μ(U21#) = μ(U62#) = μ(U52#) = μ(U63) = μ(U62) = μ(U41#) = μ(U61) = μ(U21) = μ(U22) = μ(U12#) = μ(U22#) = μ(U61#) = μ(U51#) = μ(and) = μ(U71) = μ(U42#) = μ(U71#) = μ(U32#) = μ(U31) = μ(U32) = μ(length#) = μ(U91#) = μ(U81#) = μ(and#) = μ(U43#) = μ(U43) = μ(U42) = μ(U41) = μ(U91) = μ(length) = μ(cons) = μ(U63#) = μ(U53#) = μ(U51) = μ(s) = μ(U53) = μ(U52) = μ(U81) = μ(U11) = μ(U12) = {1}
μ(take#) = μ(take) = {1, 2}


The following SCCs where found

isNatKind#(s(V1)) → isNatKind#(V1)

isNat#(s(V1)) → U21#(isNatKind(V1), V1)U21#(tt, V1) → isNat#(V1)

U62#(tt, V2) → isNatIList#(V2)T(and(isNat(M), isNatKind(M))) → and#(isNat(M), isNatKind(M))
U31#(tt, V) → isNatList#(V)take#(s(M), cons(N, IL)) → and#(isNatIList(IL), isNatIListKind(IL))
T(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))) → and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))isNatList#(cons(V1, V2)) → U51#(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
U42#(tt, V2) → isNatIList#(V2)T(isNat(x_1)) → T(x_1)
T(and(x_1, x_2)) → T(x_1)isNatList#(cons(V1, V2)) → and#(isNatKind(V1), isNatIListKind(V2))
U52#(tt, V2) → isNatList#(V2)take#(s(M), cons(N, IL)) → isNatIList#(IL)
T(isNatIListKind(IL)) → isNatIListKind#(IL)take#(s(M), cons(N, IL)) → U91#(and(and(isNatIList(IL), isNatIListKind(IL)), and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))), IL, M, N)
isNatIListKind#(cons(V1, V2)) → and#(isNatKind(V1), isNatIListKind(V2))T(take(x_1, x_2)) → T(x_2)
isNatIList#(V) → U31#(isNatIListKind(V), V)T(isNatIListKind(V2)) → isNatIListKind#(V2)
take#(s(M), cons(N, IL)) → and#(and(isNatIList(IL), isNatIListKind(IL)), and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))))take#(0, IL) → and#(isNatIList(IL), isNatIListKind(IL))
U41#(tt, V1, V2) → U42#(isNat(V1), V2)isNatIList#(cons(V1, V2)) → U41#(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
isNatIList#(cons(V1, V2)) → and#(isNatKind(V1), isNatIListKind(V2))U51#(tt, V1, V2) → U52#(isNat(V1), V2)
and#(tt, X) → T(X)T(isNatIListKind(x_1)) → T(x_1)
T(and(isNat(N), isNatKind(N))) → and#(isNat(N), isNatKind(N))U61#(tt, V1, V2) → U62#(isNat(V1), V2)
T(take(x_1, x_2)) → T(x_1)U91#(tt, IL, M, N) → T(N)
T(isNatIListKind(L)) → isNatIListKind#(L)isNatIListKind#(take(V1, V2)) → and#(isNatKind(V1), isNatIListKind(V2))
isNatList#(take(V1, V2)) → and#(isNatKind(V1), isNatIListKind(V2))take#(0, IL) → isNatIList#(IL)
T(isNatKind(x_1)) → T(x_1)T(and(x_1, x_2)) → T(x_2)
T(take(M, IL)) → take#(M, IL)isNatIList#(V) → isNatIListKind#(V)
isNatList#(take(V1, V2)) → U61#(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)

Problem 5: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

U62#(tt, V2)isNatIList#(V2)T(and(isNat(M), isNatKind(M)))and#(isNat(M), isNatKind(M))
U31#(tt, V)isNatList#(V)take#(s(M), cons(N, IL))and#(isNatIList(IL), isNatIListKind(IL))
T(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))))and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))isNatList#(cons(V1, V2))U51#(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
U42#(tt, V2)isNatIList#(V2)T(isNat(x_1))T(x_1)
T(and(x_1, x_2))T(x_1)isNatList#(cons(V1, V2))and#(isNatKind(V1), isNatIListKind(V2))
U52#(tt, V2)isNatList#(V2)T(isNatIListKind(IL))isNatIListKind#(IL)
take#(s(M), cons(N, IL))U91#(and(and(isNatIList(IL), isNatIListKind(IL)), and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))), IL, M, N)take#(s(M), cons(N, IL))isNatIList#(IL)
T(take(x_1, x_2))T(x_2)isNatIListKind#(cons(V1, V2))and#(isNatKind(V1), isNatIListKind(V2))
T(isNatIListKind(V2))isNatIListKind#(V2)isNatIList#(V)U31#(isNatIListKind(V), V)
take#(s(M), cons(N, IL))and#(and(isNatIList(IL), isNatIListKind(IL)), and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))))take#(0, IL)and#(isNatIList(IL), isNatIListKind(IL))
U41#(tt, V1, V2)U42#(isNat(V1), V2)isNatIList#(cons(V1, V2))U41#(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
isNatIList#(cons(V1, V2))and#(isNatKind(V1), isNatIListKind(V2))U51#(tt, V1, V2)U52#(isNat(V1), V2)
and#(tt, X)T(X)T(isNatIListKind(x_1))T(x_1)
T(and(isNat(N), isNatKind(N)))and#(isNat(N), isNatKind(N))U61#(tt, V1, V2)U62#(isNat(V1), V2)
T(take(x_1, x_2))T(x_1)U91#(tt, IL, M, N)T(N)
T(isNatIListKind(L))isNatIListKind#(L)isNatIListKind#(take(V1, V2))and#(isNatKind(V1), isNatIListKind(V2))
isNatList#(take(V1, V2))and#(isNatKind(V1), isNatIListKind(V2))take#(0, IL)isNatIList#(IL)
T(isNatKind(x_1))T(x_1)T(and(x_1, x_2))T(x_2)
T(take(M, IL))take#(M, IL)isNatIList#(V)isNatIListKind#(V)
isNatList#(take(V1, V2))U61#(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)

Rewrite Rules

zeroscons(0, zeros)U11(tt, V1)U12(isNatList(V1))
U12(tt)ttU21(tt, V1)U22(isNat(V1))
U22(tt)ttU31(tt, V)U32(isNatList(V))
U32(tt)ttU41(tt, V1, V2)U42(isNat(V1), V2)
U42(tt, V2)U43(isNatIList(V2))U43(tt)tt
U51(tt, V1, V2)U52(isNat(V1), V2)U52(tt, V2)U53(isNatList(V2))
U53(tt)ttU61(tt, V1, V2)U62(isNat(V1), V2)
U62(tt, V2)U63(isNatIList(V2))U63(tt)tt
U71(tt, L)s(length(L))U81(tt)nil
U91(tt, IL, M, N)cons(N, take(M, IL))and(tt, X)X
isNat(0)ttisNat(length(V1))U11(isNatIListKind(V1), V1)
isNat(s(V1))U21(isNatKind(V1), V1)isNatIList(V)U31(isNatIListKind(V), V)
isNatIList(zeros)ttisNatIList(cons(V1, V2))U41(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
isNatIListKind(nil)ttisNatIListKind(zeros)tt
isNatIListKind(cons(V1, V2))and(isNatKind(V1), isNatIListKind(V2))isNatIListKind(take(V1, V2))and(isNatKind(V1), isNatIListKind(V2))
isNatKind(0)ttisNatKind(length(V1))isNatIListKind(V1)
isNatKind(s(V1))isNatKind(V1)isNatList(nil)tt
isNatList(cons(V1, V2))U51(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)isNatList(take(V1, V2))U61(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
length(nil)0length(cons(N, L))U71(and(and(isNatList(L), isNatIListKind(L)), and(isNat(N), isNatKind(N))), L)
take(0, IL)U81(and(isNatIList(IL), isNatIListKind(IL)))take(s(M), cons(N, IL))U91(and(and(isNatIList(IL), isNatIListKind(IL)), and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))), IL, M, N)

Original Signature

Termination of terms over the following signature is verified: isNatIListKind, isNat, U63, U62, U43, U61, U42, U41, U91, length, U21, U22, cons, isNatIList, isNatKind, and, U71, 0, isNatList, U51, s, tt, zeros, take, U53, U81, U52, U11, U12, U31, U32, nil

Strategy

Context-sensitive strategy:
μ(isNatIListKind#) = μ(zeros#) = μ(isNatIList) = μ(isNatKind) = μ(isNatIList#) = μ(0) = μ(isNatKind#) = μ(zeros) = μ(isNatList#) = μ(isNatIListKind) = μ(isNat) = μ(T) = μ(isNatList) = μ(tt) = μ(isNat#) = μ(nil) = ∅
μ(U11#) = μ(U31#) = μ(U21#) = μ(U62#) = μ(U52#) = μ(U63) = μ(U62) = μ(U41#) = μ(U61) = μ(U21) = μ(U22) = μ(U12#) = μ(U22#) = μ(U61#) = μ(U51#) = μ(U71) = μ(and) = μ(U42#) = μ(U71#) = μ(U32#) = μ(U31) = μ(U32) = μ(length#) = μ(U91#) = μ(U81#) = μ(and#) = μ(U43#) = μ(U43) = μ(U42) = μ(U41) = μ(U91) = μ(length) = μ(cons) = μ(U63#) = μ(U53#) = μ(s) = μ(U51) = μ(U53) = μ(U81) = μ(U52) = μ(U11) = μ(U12) = {1}
μ(take#) = μ(take) = {1, 2}


Polynomial Interpretation

Standard Usable rules

isNat(length(V1))U11(isNatIListKind(V1), V1)isNatIListKind(nil)tt
isNatIListKind(take(V1, V2))and(isNatKind(V1), isNatIListKind(V2))U63(tt)tt
isNatIList(V)U31(isNatIListKind(V), V)U21(tt, V1)U22(isNat(V1))
isNatIListKind(cons(V1, V2))and(isNatKind(V1), isNatIListKind(V2))U53(tt)tt
U51(tt, V1, V2)U52(isNat(V1), V2)isNatList(take(V1, V2))U61(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
isNat(s(V1))U21(isNatKind(V1), V1)isNatKind(s(V1))isNatKind(V1)
length(cons(N, L))U71(and(and(isNatList(L), isNatIListKind(L)), and(isNat(N), isNatKind(N))), L)U32(tt)tt
U11(tt, V1)U12(isNatList(V1))isNatKind(0)tt
take(0, IL)U81(and(isNatIList(IL), isNatIListKind(IL)))U22(tt)tt
isNatIList(zeros)ttlength(nil)0
U43(tt)ttU91(tt, IL, M, N)cons(N, take(M, IL))
isNat(0)ttisNatList(nil)tt
U42(tt, V2)U43(isNatIList(V2))U31(tt, V)U32(isNatList(V))
zeroscons(0, zeros)U12(tt)tt
isNatIList(cons(V1, V2))U41(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)U71(tt, L)s(length(L))
isNatKind(length(V1))isNatIListKind(V1)U41(tt, V1, V2)U42(isNat(V1), V2)
U81(tt)nilU61(tt, V1, V2)U62(isNat(V1), V2)
and(tt, X)XU52(tt, V2)U53(isNatList(V2))
isNatList(cons(V1, V2))U51(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)U62(tt, V2)U63(isNatIList(V2))
take(s(M), cons(N, IL))U91(and(and(isNatIList(IL), isNatIListKind(IL)), and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))), IL, M, N)isNatIListKind(zeros)tt

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

U31#(tt, V)isNatList#(V)take#(s(M), cons(N, IL))and#(isNatIList(IL), isNatIListKind(IL))
T(take(x_1, x_2))T(x_2)take#(s(M), cons(N, IL))and#(and(isNatIList(IL), isNatIListKind(IL)), and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))))
take#(0, IL)and#(isNatIList(IL), isNatIListKind(IL))isNatIList#(cons(V1, V2))and#(isNatKind(V1), isNatIListKind(V2))
U61#(tt, V1, V2)U62#(isNat(V1), V2)T(take(x_1, x_2))T(x_1)
U91#(tt, IL, M, N)T(N)isNatList#(take(V1, V2))and#(isNatKind(V1), isNatIListKind(V2))
isNatIListKind#(take(V1, V2))and#(isNatKind(V1), isNatIListKind(V2))isNatIList#(V)isNatIListKind#(V)

Problem 8: DependencyGraph



Dependency Pair Problem

Dependency Pairs

T(and(isNat(M), isNatKind(M)))and#(isNat(M), isNatKind(M))U62#(tt, V2)isNatIList#(V2)
isNatList#(cons(V1, V2))U51#(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)T(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))))and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))
U42#(tt, V2)isNatIList#(V2)T(and(x_1, x_2))T(x_1)
T(isNat(x_1))T(x_1)isNatList#(cons(V1, V2))and#(isNatKind(V1), isNatIListKind(V2))
U52#(tt, V2)isNatList#(V2)take#(s(M), cons(N, IL))isNatIList#(IL)
take#(s(M), cons(N, IL))U91#(and(and(isNatIList(IL), isNatIListKind(IL)), and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))), IL, M, N)T(isNatIListKind(IL))isNatIListKind#(IL)
isNatIListKind#(cons(V1, V2))and#(isNatKind(V1), isNatIListKind(V2))T(isNatIListKind(V2))isNatIListKind#(V2)
isNatIList#(V)U31#(isNatIListKind(V), V)U41#(tt, V1, V2)U42#(isNat(V1), V2)
isNatIList#(cons(V1, V2))U41#(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)U51#(tt, V1, V2)U52#(isNat(V1), V2)
and#(tt, X)T(X)T(isNatIListKind(x_1))T(x_1)
T(and(isNat(N), isNatKind(N)))and#(isNat(N), isNatKind(N))T(isNatIListKind(L))isNatIListKind#(L)
take#(0, IL)isNatIList#(IL)T(isNatKind(x_1))T(x_1)
T(and(x_1, x_2))T(x_2)T(take(M, IL))take#(M, IL)
isNatList#(take(V1, V2))U61#(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)

Rewrite Rules

zeroscons(0, zeros)U11(tt, V1)U12(isNatList(V1))
U12(tt)ttU21(tt, V1)U22(isNat(V1))
U22(tt)ttU31(tt, V)U32(isNatList(V))
U32(tt)ttU41(tt, V1, V2)U42(isNat(V1), V2)
U42(tt, V2)U43(isNatIList(V2))U43(tt)tt
U51(tt, V1, V2)U52(isNat(V1), V2)U52(tt, V2)U53(isNatList(V2))
U53(tt)ttU61(tt, V1, V2)U62(isNat(V1), V2)
U62(tt, V2)U63(isNatIList(V2))U63(tt)tt
U71(tt, L)s(length(L))U81(tt)nil
U91(tt, IL, M, N)cons(N, take(M, IL))and(tt, X)X
isNat(0)ttisNat(length(V1))U11(isNatIListKind(V1), V1)
isNat(s(V1))U21(isNatKind(V1), V1)isNatIList(V)U31(isNatIListKind(V), V)
isNatIList(zeros)ttisNatIList(cons(V1, V2))U41(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
isNatIListKind(nil)ttisNatIListKind(zeros)tt
isNatIListKind(cons(V1, V2))and(isNatKind(V1), isNatIListKind(V2))isNatIListKind(take(V1, V2))and(isNatKind(V1), isNatIListKind(V2))
isNatKind(0)ttisNatKind(length(V1))isNatIListKind(V1)
isNatKind(s(V1))isNatKind(V1)isNatList(nil)tt
isNatList(cons(V1, V2))U51(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)isNatList(take(V1, V2))U61(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
length(nil)0length(cons(N, L))U71(and(and(isNatList(L), isNatIListKind(L)), and(isNat(N), isNatKind(N))), L)
take(0, IL)U81(and(isNatIList(IL), isNatIListKind(IL)))take(s(M), cons(N, IL))U91(and(and(isNatIList(IL), isNatIListKind(IL)), and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))), IL, M, N)

Original Signature

Termination of terms over the following signature is verified: isNatIListKind, isNat, U63, U62, U61, U43, U42, U41, U91, length, U21, cons, U22, isNatIList, isNatKind, and, U71, 0, isNatList, U51, s, tt, zeros, take, U53, U52, U81, U11, U12, U31, U32, nil

Strategy

Context-sensitive strategy:
μ(isNatIListKind#) = μ(zeros#) = μ(isNatIList) = μ(isNatKind) = μ(isNatIList#) = μ(0) = μ(isNatKind#) = μ(zeros) = μ(isNatList#) = μ(isNatIListKind) = μ(isNat) = μ(T) = μ(isNatList) = μ(tt) = μ(isNat#) = μ(nil) = ∅
μ(U11#) = μ(U31#) = μ(U21#) = μ(U62#) = μ(U52#) = μ(U63) = μ(U62) = μ(U41#) = μ(U61) = μ(U21) = μ(U22) = μ(U12#) = μ(U22#) = μ(U61#) = μ(U51#) = μ(and) = μ(U71) = μ(U42#) = μ(U71#) = μ(U32#) = μ(U31) = μ(U32) = μ(length#) = μ(U91#) = μ(U81#) = μ(and#) = μ(U43#) = μ(U43) = μ(U42) = μ(U41) = μ(U91) = μ(length) = μ(cons) = μ(U63#) = μ(U53#) = μ(U51) = μ(s) = μ(U53) = μ(U52) = μ(U81) = μ(U11) = μ(U12) = {1}
μ(take#) = μ(take) = {1, 2}


The following SCCs where found

T(and(isNat(M), isNatKind(M))) → and#(isNat(M), isNatKind(M))and#(tt, X) → T(X)
T(isNatIListKind(x_1)) → T(x_1)T(and(isNat(N), isNatKind(N))) → and#(isNat(N), isNatKind(N))
T(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))) → and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))T(isNat(x_1)) → T(x_1)
T(and(x_1, x_2)) → T(x_1)T(isNatIListKind(L)) → isNatIListKind#(L)
T(isNatIListKind(IL)) → isNatIListKind#(IL)isNatIListKind#(cons(V1, V2)) → and#(isNatKind(V1), isNatIListKind(V2))
T(isNatIListKind(V2)) → isNatIListKind#(V2)T(isNatKind(x_1)) → T(x_1)
T(and(x_1, x_2)) → T(x_2)

isNatList#(cons(V1, V2)) → U51#(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)U52#(tt, V2) → isNatList#(V2)
U51#(tt, V1, V2) → U52#(isNat(V1), V2)

U42#(tt, V2) → isNatIList#(V2)U41#(tt, V1, V2) → U42#(isNat(V1), V2)
isNatIList#(cons(V1, V2)) → U41#(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)

Problem 10: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

and#(tt, X)T(X)T(and(isNat(M), isNatKind(M)))and#(isNat(M), isNatKind(M))
T(isNatIListKind(x_1))T(x_1)T(and(isNat(N), isNatKind(N)))and#(isNat(N), isNatKind(N))
T(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))))and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))T(and(x_1, x_2))T(x_1)
T(isNat(x_1))T(x_1)T(isNatIListKind(L))isNatIListKind#(L)
T(isNatIListKind(IL))isNatIListKind#(IL)isNatIListKind#(cons(V1, V2))and#(isNatKind(V1), isNatIListKind(V2))
T(isNatIListKind(V2))isNatIListKind#(V2)T(isNatKind(x_1))T(x_1)
T(and(x_1, x_2))T(x_2)

Rewrite Rules

zeroscons(0, zeros)U11(tt, V1)U12(isNatList(V1))
U12(tt)ttU21(tt, V1)U22(isNat(V1))
U22(tt)ttU31(tt, V)U32(isNatList(V))
U32(tt)ttU41(tt, V1, V2)U42(isNat(V1), V2)
U42(tt, V2)U43(isNatIList(V2))U43(tt)tt
U51(tt, V1, V2)U52(isNat(V1), V2)U52(tt, V2)U53(isNatList(V2))
U53(tt)ttU61(tt, V1, V2)U62(isNat(V1), V2)
U62(tt, V2)U63(isNatIList(V2))U63(tt)tt
U71(tt, L)s(length(L))U81(tt)nil
U91(tt, IL, M, N)cons(N, take(M, IL))and(tt, X)X
isNat(0)ttisNat(length(V1))U11(isNatIListKind(V1), V1)
isNat(s(V1))U21(isNatKind(V1), V1)isNatIList(V)U31(isNatIListKind(V), V)
isNatIList(zeros)ttisNatIList(cons(V1, V2))U41(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
isNatIListKind(nil)ttisNatIListKind(zeros)tt
isNatIListKind(cons(V1, V2))and(isNatKind(V1), isNatIListKind(V2))isNatIListKind(take(V1, V2))and(isNatKind(V1), isNatIListKind(V2))
isNatKind(0)ttisNatKind(length(V1))isNatIListKind(V1)
isNatKind(s(V1))isNatKind(V1)isNatList(nil)tt
isNatList(cons(V1, V2))U51(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)isNatList(take(V1, V2))U61(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
length(nil)0length(cons(N, L))U71(and(and(isNatList(L), isNatIListKind(L)), and(isNat(N), isNatKind(N))), L)
take(0, IL)U81(and(isNatIList(IL), isNatIListKind(IL)))take(s(M), cons(N, IL))U91(and(and(isNatIList(IL), isNatIListKind(IL)), and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))), IL, M, N)

Original Signature

Termination of terms over the following signature is verified: isNatIListKind, isNat, U63, U62, U61, U43, U42, U41, U91, length, U21, cons, U22, isNatIList, isNatKind, and, U71, 0, isNatList, U51, s, tt, zeros, take, U53, U52, U81, U11, U12, U31, U32, nil

Strategy

Context-sensitive strategy:
μ(isNatIListKind#) = μ(zeros#) = μ(isNatIList) = μ(isNatKind) = μ(isNatIList#) = μ(0) = μ(isNatKind#) = μ(zeros) = μ(isNatList#) = μ(isNatIListKind) = μ(isNat) = μ(T) = μ(isNatList) = μ(tt) = μ(isNat#) = μ(nil) = ∅
μ(U11#) = μ(U31#) = μ(U21#) = μ(U62#) = μ(U52#) = μ(U63) = μ(U62) = μ(U41#) = μ(U61) = μ(U21) = μ(U22) = μ(U12#) = μ(U22#) = μ(U61#) = μ(U51#) = μ(U71) = μ(and) = μ(U42#) = μ(U71#) = μ(U32#) = μ(U31) = μ(U32) = μ(length#) = μ(U91#) = μ(U81#) = μ(and#) = μ(U43#) = μ(U43) = μ(U42) = μ(U41) = μ(U91) = μ(length) = μ(cons) = μ(U63#) = μ(U53#) = μ(s) = μ(U51) = μ(U53) = μ(U81) = μ(U52) = μ(U11) = μ(U12) = {1}
μ(take#) = μ(take) = {1, 2}


Polynomial Interpretation

Standard Usable rules

isNat(length(V1))U11(isNatIListKind(V1), V1)isNatIListKind(nil)tt
isNatIListKind(take(V1, V2))and(isNatKind(V1), isNatIListKind(V2))U63(tt)tt
isNatIList(V)U31(isNatIListKind(V), V)U21(tt, V1)U22(isNat(V1))
isNatIListKind(cons(V1, V2))and(isNatKind(V1), isNatIListKind(V2))U53(tt)tt
U51(tt, V1, V2)U52(isNat(V1), V2)isNatList(take(V1, V2))U61(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
isNat(s(V1))U21(isNatKind(V1), V1)isNatKind(s(V1))isNatKind(V1)
length(cons(N, L))U71(and(and(isNatList(L), isNatIListKind(L)), and(isNat(N), isNatKind(N))), L)U32(tt)tt
U11(tt, V1)U12(isNatList(V1))isNatKind(0)tt
take(0, IL)U81(and(isNatIList(IL), isNatIListKind(IL)))U22(tt)tt
isNatIList(zeros)ttlength(nil)0
U43(tt)ttU91(tt, IL, M, N)cons(N, take(M, IL))
isNat(0)ttisNatList(nil)tt
U42(tt, V2)U43(isNatIList(V2))U31(tt, V)U32(isNatList(V))
zeroscons(0, zeros)U12(tt)tt
isNatIList(cons(V1, V2))U41(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)U71(tt, L)s(length(L))
isNatKind(length(V1))isNatIListKind(V1)U41(tt, V1, V2)U42(isNat(V1), V2)
U81(tt)nilU61(tt, V1, V2)U62(isNat(V1), V2)
and(tt, X)XU52(tt, V2)U53(isNatList(V2))
isNatList(cons(V1, V2))U51(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)U62(tt, V2)U63(isNatIList(V2))
take(s(M), cons(N, IL))U91(and(and(isNatIList(IL), isNatIListKind(IL)), and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))), IL, M, N)isNatIListKind(zeros)tt

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

T(isNatIListKind(x_1))T(x_1)

Problem 12: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

T(and(isNat(M), isNatKind(M)))and#(isNat(M), isNatKind(M))and#(tt, X)T(X)
T(and(isNat(N), isNatKind(N)))and#(isNat(N), isNatKind(N))isNatIListKind#(cons(V1, V2))and#(isNatKind(V1), isNatIListKind(V2))
T(isNatIListKind(V2))isNatIListKind#(V2)T(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))))and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))
T(isNatKind(x_1))T(x_1)T(isNat(x_1))T(x_1)
T(and(x_1, x_2))T(x_1)T(and(x_1, x_2))T(x_2)
T(isNatIListKind(L))isNatIListKind#(L)T(isNatIListKind(IL))isNatIListKind#(IL)

Rewrite Rules

zeroscons(0, zeros)U11(tt, V1)U12(isNatList(V1))
U12(tt)ttU21(tt, V1)U22(isNat(V1))
U22(tt)ttU31(tt, V)U32(isNatList(V))
U32(tt)ttU41(tt, V1, V2)U42(isNat(V1), V2)
U42(tt, V2)U43(isNatIList(V2))U43(tt)tt
U51(tt, V1, V2)U52(isNat(V1), V2)U52(tt, V2)U53(isNatList(V2))
U53(tt)ttU61(tt, V1, V2)U62(isNat(V1), V2)
U62(tt, V2)U63(isNatIList(V2))U63(tt)tt
U71(tt, L)s(length(L))U81(tt)nil
U91(tt, IL, M, N)cons(N, take(M, IL))and(tt, X)X
isNat(0)ttisNat(length(V1))U11(isNatIListKind(V1), V1)
isNat(s(V1))U21(isNatKind(V1), V1)isNatIList(V)U31(isNatIListKind(V), V)
isNatIList(zeros)ttisNatIList(cons(V1, V2))U41(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
isNatIListKind(nil)ttisNatIListKind(zeros)tt
isNatIListKind(cons(V1, V2))and(isNatKind(V1), isNatIListKind(V2))isNatIListKind(take(V1, V2))and(isNatKind(V1), isNatIListKind(V2))
isNatKind(0)ttisNatKind(length(V1))isNatIListKind(V1)
isNatKind(s(V1))isNatKind(V1)isNatList(nil)tt
isNatList(cons(V1, V2))U51(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)isNatList(take(V1, V2))U61(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
length(nil)0length(cons(N, L))U71(and(and(isNatList(L), isNatIListKind(L)), and(isNat(N), isNatKind(N))), L)
take(0, IL)U81(and(isNatIList(IL), isNatIListKind(IL)))take(s(M), cons(N, IL))U91(and(and(isNatIList(IL), isNatIListKind(IL)), and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))), IL, M, N)

Original Signature

Termination of terms over the following signature is verified: isNatIListKind, isNat, U63, U62, U43, U61, U42, U41, U91, length, U21, U22, cons, isNatIList, isNatKind, and, U71, 0, isNatList, U51, s, tt, zeros, take, U53, U81, U52, U11, U12, U31, U32, nil

Strategy

Context-sensitive strategy:
μ(isNatIListKind#) = μ(zeros#) = μ(isNatIList) = μ(isNatKind) = μ(isNatIList#) = μ(0) = μ(isNatKind#) = μ(zeros) = μ(isNatList#) = μ(isNatIListKind) = μ(isNat) = μ(T) = μ(isNatList) = μ(tt) = μ(isNat#) = μ(nil) = ∅
μ(U11#) = μ(U31#) = μ(U21#) = μ(U62#) = μ(U52#) = μ(U63) = μ(U62) = μ(U41#) = μ(U61) = μ(U21) = μ(U22) = μ(U12#) = μ(U22#) = μ(U61#) = μ(U51#) = μ(and) = μ(U71) = μ(U42#) = μ(U71#) = μ(U32#) = μ(U31) = μ(U32) = μ(length#) = μ(U91#) = μ(U81#) = μ(and#) = μ(U43#) = μ(U43) = μ(U42) = μ(U41) = μ(U91) = μ(length) = μ(cons) = μ(U63#) = μ(U53#) = μ(U51) = μ(s) = μ(U53) = μ(U52) = μ(U81) = μ(U11) = μ(U12) = {1}
μ(take#) = μ(take) = {1, 2}


Polynomial Interpretation

Standard Usable rules

isNat(length(V1))U11(isNatIListKind(V1), V1)isNatIListKind(nil)tt
isNatIListKind(take(V1, V2))and(isNatKind(V1), isNatIListKind(V2))U63(tt)tt
isNatIList(V)U31(isNatIListKind(V), V)U21(tt, V1)U22(isNat(V1))
isNatIListKind(cons(V1, V2))and(isNatKind(V1), isNatIListKind(V2))U53(tt)tt
U51(tt, V1, V2)U52(isNat(V1), V2)isNatList(take(V1, V2))U61(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
isNat(s(V1))U21(isNatKind(V1), V1)isNatKind(s(V1))isNatKind(V1)
length(cons(N, L))U71(and(and(isNatList(L), isNatIListKind(L)), and(isNat(N), isNatKind(N))), L)U32(tt)tt
U11(tt, V1)U12(isNatList(V1))isNatKind(0)tt
take(0, IL)U81(and(isNatIList(IL), isNatIListKind(IL)))U22(tt)tt
isNatIList(zeros)ttlength(nil)0
U43(tt)ttU91(tt, IL, M, N)cons(N, take(M, IL))
isNat(0)ttisNatList(nil)tt
U42(tt, V2)U43(isNatIList(V2))U31(tt, V)U32(isNatList(V))
zeroscons(0, zeros)U12(tt)tt
isNatIList(cons(V1, V2))U41(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)U71(tt, L)s(length(L))
isNatKind(length(V1))isNatIListKind(V1)U41(tt, V1, V2)U42(isNat(V1), V2)
U81(tt)nilU61(tt, V1, V2)U62(isNat(V1), V2)
and(tt, X)XU52(tt, V2)U53(isNatList(V2))
isNatList(cons(V1, V2))U51(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)U62(tt, V2)U63(isNatIList(V2))
take(s(M), cons(N, IL))U91(and(and(isNatIList(IL), isNatIListKind(IL)), and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))), IL, M, N)isNatIListKind(zeros)tt

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

T(and(isNat(M), isNatKind(M)))and#(isNat(M), isNatKind(M))T(and(isNat(N), isNatKind(N)))and#(isNat(N), isNatKind(N))
T(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))))and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))T(isNat(x_1))T(x_1)

Problem 7: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

isNatKind#(s(V1))isNatKind#(V1)

Rewrite Rules

zeroscons(0, zeros)U11(tt, V1)U12(isNatList(V1))
U12(tt)ttU21(tt, V1)U22(isNat(V1))
U22(tt)ttU31(tt, V)U32(isNatList(V))
U32(tt)ttU41(tt, V1, V2)U42(isNat(V1), V2)
U42(tt, V2)U43(isNatIList(V2))U43(tt)tt
U51(tt, V1, V2)U52(isNat(V1), V2)U52(tt, V2)U53(isNatList(V2))
U53(tt)ttU61(tt, V1, V2)U62(isNat(V1), V2)
U62(tt, V2)U63(isNatIList(V2))U63(tt)tt
U71(tt, L)s(length(L))U81(tt)nil
U91(tt, IL, M, N)cons(N, take(M, IL))and(tt, X)X
isNat(0)ttisNat(length(V1))U11(isNatIListKind(V1), V1)
isNat(s(V1))U21(isNatKind(V1), V1)isNatIList(V)U31(isNatIListKind(V), V)
isNatIList(zeros)ttisNatIList(cons(V1, V2))U41(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
isNatIListKind(nil)ttisNatIListKind(zeros)tt
isNatIListKind(cons(V1, V2))and(isNatKind(V1), isNatIListKind(V2))isNatIListKind(take(V1, V2))and(isNatKind(V1), isNatIListKind(V2))
isNatKind(0)ttisNatKind(length(V1))isNatIListKind(V1)
isNatKind(s(V1))isNatKind(V1)isNatList(nil)tt
isNatList(cons(V1, V2))U51(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)isNatList(take(V1, V2))U61(and(isNatKind(V1), isNatIListKind(V2)), V1, V2)
length(nil)0length(cons(N, L))U71(and(and(isNatList(L), isNatIListKind(L)), and(isNat(N), isNatKind(N))), L)
take(0, IL)U81(and(isNatIList(IL), isNatIListKind(IL)))take(s(M), cons(N, IL))U91(and(and(isNatIList(IL), isNatIListKind(IL)), and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))), IL, M, N)

Original Signature

Termination of terms over the following signature is verified: isNatIListKind, isNat, U63, U62, U43, U61, U42, U41, U91, length, U21, U22, cons, isNatIList, isNatKind, and, U71, 0, isNatList, U51, s, tt, zeros, take, U53, U81, U52, U11, U12, U31, U32, nil

Strategy

Context-sensitive strategy:
μ(isNatIListKind#) = μ(zeros#) = μ(isNatIList) = μ(isNatKind) = μ(isNatIList#) = μ(0) = μ(isNatKind#) = μ(zeros) = μ(isNatList#) = μ(isNatIListKind) = μ(isNat) = μ(T) = μ(isNatList) = μ(tt) = μ(isNat#) = μ(nil) = ∅
μ(U11#) = μ(U31#) = μ(U21#) = μ(U62#) = μ(U52#) = μ(U63) = μ(U62) = μ(U41#) = μ(U61) = μ(U21) = μ(U22) = μ(U12#) = μ(U22#) = μ(U61#) = μ(U51#) = μ(U71) = μ(and) = μ(U42#) = μ(U71#) = μ(U32#) = μ(U31) = μ(U32) = μ(length#) = μ(U91#) = μ(U81#) = μ(and#) = μ(U43#) = μ(U43) = μ(U42) = μ(U41) = μ(U91) = μ(length) = μ(cons) = μ(U63#) = μ(U53#) = μ(s) = μ(U51) = μ(U53) = μ(U81) = μ(U52) = μ(U11) = μ(U12) = {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:

isNatKind#(s(V1))isNatKind#(V1)