YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (781ms).
 | – Problem 2 was processed with processor PolynomialLinearRange4 (186ms).
 | – Problem 3 was processed with processor PolynomialLinearRange4 (307ms).
 |    | – Problem 6 was processed with processor DependencyGraph (13ms).
 |    |    | – Problem 9 was processed with processor PolynomialLinearRange4 (41ms).
 |    |    |    | – Problem 10 was processed with processor DependencyGraph (2ms).
 | – Problem 4 was processed with processor PolynomialLinearRange4 (452ms).
 |    | – Problem 7 was processed with processor DependencyGraph (3ms).
 | – Problem 5 was processed with processor PolynomialLinearRange4 (132ms).
 |    | – Problem 8 was processed with processor DependencyGraph (3ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

isNatIList#(cons(V1, V2)) → isNatKind#(V1)U93#(tt, L, N) → isNatKind#(N)
isNat#(s(V1)) → isNatKind#(V1)U45#(tt, V2) → isNatIList#(V2)
isNat#(s(V1)) → U21#(isNatKind(V1), V1)isNatKind#(length(V1)) → isNatIListKind#(V1)
isNatList#(cons(V1, V2)) → U81#(isNatKind(V1), V1, V2)U11#(tt, V1) → isNatIListKind#(V1)
U83#(tt, V1, V2) → U84#(isNatIListKind(V2), V1, V2)U41#(tt, V1, V2) → isNatKind#(V1)
U32#(tt, V) → isNatList#(V)isNatKind#(s(V1)) → isNatKind#(V1)
U85#(tt, V2) → U86#(isNatList(V2))isNatIList#(V) → U31#(isNatIListKind(V), V)
T(zeros) → zeros#U41#(tt, V1, V2) → U42#(isNatKind(V1), V1, V2)
U81#(tt, V1, V2) → U82#(isNatKind(V1), V1, V2)U84#(tt, V1, V2) → isNat#(V1)
U43#(tt, V1, V2) → isNatIListKind#(V2)isNatList#(cons(V1, V2)) → isNatKind#(V1)
U42#(tt, V1, V2) → U43#(isNatIListKind(V2), V1, V2)U94#(tt, L) → length#(L)
U84#(tt, V1, V2) → U85#(isNat(V1), V2)U22#(tt, V1) → U23#(isNat(V1))
U31#(tt, V) → isNatIListKind#(V)U92#(tt, L, N) → U93#(isNat(N), L, N)
U82#(tt, V1, V2) → U83#(isNatIListKind(V2), V1, V2)isNat#(length(V1)) → isNatIListKind#(V1)
U43#(tt, V1, V2) → U44#(isNatIListKind(V2), V1, V2)U93#(tt, L, N) → U94#(isNatKind(N), L)
U42#(tt, V1, V2) → isNatIListKind#(V2)U21#(tt, V1) → isNatKind#(V1)
isNat#(length(V1)) → U11#(isNatIListKind(V1), V1)U83#(tt, V1, V2) → isNatIListKind#(V2)
isNatIListKind#(cons(V1, V2)) → isNatKind#(V1)isNatIList#(V) → isNatIListKind#(V)
U44#(tt, V1, V2) → isNat#(V1)length#(cons(N, L)) → U91#(isNatList(L), L, N)
U51#(tt, V2) → U52#(isNatIListKind(V2))U22#(tt, V1) → isNat#(V1)
U21#(tt, V1) → U22#(isNatKind(V1), V1)U82#(tt, V1, V2) → isNatIListKind#(V2)
U85#(tt, V2) → isNatList#(V2)U91#(tt, L, N) → isNatIListKind#(L)
U45#(tt, V2) → U46#(isNatIList(V2))U31#(tt, V) → U32#(isNatIListKind(V), V)
isNatIListKind#(cons(V1, V2)) → U51#(isNatKind(V1), V2)U12#(tt, V1) → isNatList#(V1)
U94#(tt, L) → T(L)U51#(tt, V2) → isNatIListKind#(V2)
isNatKind#(s(V1)) → U71#(isNatKind(V1))U92#(tt, L, N) → isNat#(N)
U32#(tt, V) → U33#(isNatList(V))isNatIList#(cons(V1, V2)) → U41#(isNatKind(V1), V1, V2)
U11#(tt, V1) → U12#(isNatIListKind(V1), V1)U12#(tt, V1) → U13#(isNatList(V1))
U91#(tt, L, N) → U92#(isNatIListKind(L), L, N)U44#(tt, V1, V2) → U45#(isNat(V1), V2)
isNatKind#(length(V1)) → U61#(isNatIListKind(V1))U81#(tt, V1, V2) → isNatKind#(V1)
length#(cons(N, L)) → isNatList#(L)

Rewrite Rules

zeros → cons(0, zeros)U11(tt, V1) → U12(isNatIListKind(V1), V1)
U12(tt, V1) → U13(isNatList(V1))U13(tt) → tt
U21(tt, V1) → U22(isNatKind(V1), V1)U22(tt, V1) → U23(isNat(V1))
U23(tt) → ttU31(tt, V) → U32(isNatIListKind(V), V)
U32(tt, V) → U33(isNatList(V))U33(tt) → tt
U41(tt, V1, V2) → U42(isNatKind(V1), V1, V2)U42(tt, V1, V2) → U43(isNatIListKind(V2), V1, V2)
U43(tt, V1, V2) → U44(isNatIListKind(V2), V1, V2)U44(tt, V1, V2) → U45(isNat(V1), V2)
U45(tt, V2) → U46(isNatIList(V2))U46(tt) → tt
U51(tt, V2) → U52(isNatIListKind(V2))U52(tt) → tt
U61(tt) → ttU71(tt) → tt
U81(tt, V1, V2) → U82(isNatKind(V1), V1, V2)U82(tt, V1, V2) → U83(isNatIListKind(V2), V1, V2)
U83(tt, V1, V2) → U84(isNatIListKind(V2), V1, V2)U84(tt, V1, V2) → U85(isNat(V1), V2)
U85(tt, V2) → U86(isNatList(V2))U86(tt) → tt
U91(tt, L, N) → U92(isNatIListKind(L), L, N)U92(tt, L, N) → U93(isNat(N), L, N)
U93(tt, L, N) → U94(isNatKind(N), L)U94(tt, L) → s(length(L))
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(isNatKind(V1), V1, V2)
isNatIListKind(nil) → ttisNatIListKind(zeros) → tt
isNatIListKind(cons(V1, V2)) → U51(isNatKind(V1), V2)isNatKind(0) → tt
isNatKind(length(V1)) → U61(isNatIListKind(V1))isNatKind(s(V1)) → U71(isNatKind(V1))
isNatList(nil) → ttisNatList(cons(V1, V2)) → U81(isNatKind(V1), V1, V2)
length(nil) → 0length(cons(N, L)) → U91(isNatList(L), L, N)

Original Signature

Termination of terms over the following signature is verified: isNatIListKind, U94, U46, isNat, U45, U44, U43, U61, U42, U93, U41, U92, U91, length, U23, U21, U22, cons, isNatIList, isNatKind, U83, U84, U85, U86, U71, 0, U51, isNatList, s, zeros, tt, U82, U52, U81, U11, U12, U31, U13, U32, U33, nil

Strategy

Context-sensitive strategy:
μ(isNatIListKind#) = μ(zeros#) = μ(isNatIList) = μ(isNatKind) = μ(isNatIList#) = μ(0) = μ(isNatKind#) = μ(zeros) = μ(isNatList#) = μ(isNatIListKind) = μ(isNat) = μ(T) = μ(isNatList) = μ(tt) = μ(isNat#) = μ(nil) = ∅
μ(U93#) = μ(U11#) = μ(U31#) = μ(U21#) = μ(U52#) = μ(U41#) = μ(U61) = μ(U45#) = μ(U86#) = μ(U23) = μ(U21) = μ(U22) = μ(U12#) = μ(U94#) = μ(U22#) = μ(U61#) = μ(U51#) = μ(U71) = μ(U42#) = μ(U71#) = μ(U46#) = μ(U32#) = μ(U85#) = μ(U31) = μ(U32) = μ(U33) = μ(U13#) = μ(length#) = μ(U91#) = μ(U81#) = μ(U23#) = μ(U94) = μ(U46) = μ(U45) = μ(U43#) = μ(U44) = μ(U43) = μ(U93) = μ(U42) = μ(U41) = μ(U92) = μ(U91) = μ(length) = μ(U84#) = μ(U33#) = μ(cons) = μ(U92#) = μ(U83) = μ(U84) = μ(U82#) = μ(U85) = μ(U86) = μ(U44#) = μ(U51) = μ(s) = μ(U82) = μ(U81) = μ(U52) = μ(U11) = μ(U12) = μ(U13) = μ(U83#) = {1}


The following SCCs where found

U91#(tt, L, N) → U92#(isNatIListKind(L), L, N)length#(cons(N, L)) → U91#(isNatList(L), L, N)
U92#(tt, L, N) → U93#(isNat(N), L, N)U93#(tt, L, N) → U94#(isNatKind(N), L)
U94#(tt, L) → length#(L)

U44#(tt, V1, V2) → U45#(isNat(V1), V2)U45#(tt, V2) → isNatIList#(V2)
U41#(tt, V1, V2) → U42#(isNatKind(V1), V1, V2)isNatIList#(cons(V1, V2)) → U41#(isNatKind(V1), V1, V2)
U43#(tt, V1, V2) → U44#(isNatIListKind(V2), V1, V2)U42#(tt, V1, V2) → U43#(isNatIListKind(V2), V1, V2)

isNat#(s(V1)) → U21#(isNatKind(V1), V1)U22#(tt, V1) → isNat#(V1)
U82#(tt, V1, V2) → U83#(isNatIListKind(V2), V1, V2)isNatList#(cons(V1, V2)) → U81#(isNatKind(V1), V1, V2)
U11#(tt, V1) → U12#(isNatIListKind(V1), V1)U83#(tt, V1, V2) → U84#(isNatIListKind(V2), V1, V2)
U21#(tt, V1) → U22#(isNatKind(V1), V1)U85#(tt, V2) → isNatList#(V2)
isNat#(length(V1)) → U11#(isNatIListKind(V1), V1)U81#(tt, V1, V2) → U82#(isNatKind(V1), V1, V2)
U12#(tt, V1) → isNatList#(V1)U84#(tt, V1, V2) → isNat#(V1)
U84#(tt, V1, V2) → U85#(isNat(V1), V2)

isNatIListKind#(cons(V1, V2)) → U51#(isNatKind(V1), V2)isNatKind#(s(V1)) → isNatKind#(V1)
U51#(tt, V2) → isNatIListKind#(V2)isNatKind#(length(V1)) → isNatIListKind#(V1)
isNatIListKind#(cons(V1, V2)) → isNatKind#(V1)

Problem 2: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

isNatIListKind#(cons(V1, V2)) → U51#(isNatKind(V1), V2)isNatKind#(s(V1)) → isNatKind#(V1)
U51#(tt, V2) → isNatIListKind#(V2)isNatKind#(length(V1)) → isNatIListKind#(V1)
isNatIListKind#(cons(V1, V2)) → isNatKind#(V1)

Rewrite Rules

zeros → cons(0, zeros)U11(tt, V1) → U12(isNatIListKind(V1), V1)
U12(tt, V1) → U13(isNatList(V1))U13(tt) → tt
U21(tt, V1) → U22(isNatKind(V1), V1)U22(tt, V1) → U23(isNat(V1))
U23(tt) → ttU31(tt, V) → U32(isNatIListKind(V), V)
U32(tt, V) → U33(isNatList(V))U33(tt) → tt
U41(tt, V1, V2) → U42(isNatKind(V1), V1, V2)U42(tt, V1, V2) → U43(isNatIListKind(V2), V1, V2)
U43(tt, V1, V2) → U44(isNatIListKind(V2), V1, V2)U44(tt, V1, V2) → U45(isNat(V1), V2)
U45(tt, V2) → U46(isNatIList(V2))U46(tt) → tt
U51(tt, V2) → U52(isNatIListKind(V2))U52(tt) → tt
U61(tt) → ttU71(tt) → tt
U81(tt, V1, V2) → U82(isNatKind(V1), V1, V2)U82(tt, V1, V2) → U83(isNatIListKind(V2), V1, V2)
U83(tt, V1, V2) → U84(isNatIListKind(V2), V1, V2)U84(tt, V1, V2) → U85(isNat(V1), V2)
U85(tt, V2) → U86(isNatList(V2))U86(tt) → tt
U91(tt, L, N) → U92(isNatIListKind(L), L, N)U92(tt, L, N) → U93(isNat(N), L, N)
U93(tt, L, N) → U94(isNatKind(N), L)U94(tt, L) → s(length(L))
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(isNatKind(V1), V1, V2)
isNatIListKind(nil) → ttisNatIListKind(zeros) → tt
isNatIListKind(cons(V1, V2)) → U51(isNatKind(V1), V2)isNatKind(0) → tt
isNatKind(length(V1)) → U61(isNatIListKind(V1))isNatKind(s(V1)) → U71(isNatKind(V1))
isNatList(nil) → ttisNatList(cons(V1, V2)) → U81(isNatKind(V1), V1, V2)
length(nil) → 0length(cons(N, L)) → U91(isNatList(L), L, N)

Original Signature

Termination of terms over the following signature is verified: isNatIListKind, U94, U46, isNat, U45, U44, U43, U61, U42, U93, U41, U92, U91, length, U23, U21, U22, cons, isNatIList, isNatKind, U83, U84, U85, U86, U71, 0, U51, isNatList, s, zeros, tt, U82, U52, U81, U11, U12, U31, U13, U32, U33, nil

Strategy

Context-sensitive strategy:
μ(isNatIListKind#) = μ(zeros#) = μ(isNatIList) = μ(isNatKind) = μ(isNatIList#) = μ(0) = μ(isNatKind#) = μ(zeros) = μ(isNatList#) = μ(isNatIListKind) = μ(isNat) = μ(T) = μ(isNatList) = μ(tt) = μ(isNat#) = μ(nil) = ∅
μ(U93#) = μ(U11#) = μ(U31#) = μ(U21#) = μ(U52#) = μ(U41#) = μ(U61) = μ(U45#) = μ(U86#) = μ(U23) = μ(U21) = μ(U22) = μ(U12#) = μ(U22#) = μ(U94#) = μ(U61#) = μ(U51#) = μ(U71) = μ(U42#) = μ(U71#) = μ(U46#) = μ(U32#) = μ(U85#) = μ(U31) = μ(U32) = μ(U33) = μ(U13#) = μ(length#) = μ(U91#) = μ(U81#) = μ(U23#) = μ(U94) = μ(U46) = μ(U45) = μ(U43#) = μ(U44) = μ(U43) = μ(U42) = μ(U93) = μ(U92) = μ(U41) = μ(U91) = μ(length) = μ(cons) = μ(U33#) = μ(U84#) = μ(U92#) = μ(U83) = μ(U84) = μ(U85) = μ(U82#) = μ(U86) = μ(U44#) = μ(s) = μ(U51) = μ(U82) = μ(U52) = μ(U81) = μ(U11) = μ(U12) = μ(U13) = μ(U83#) = {1}


Polynomial Interpretation

Standard Usable rules

U61(tt) → ttisNatIListKind(nil) → tt
U71(tt) → ttisNatKind(s(V1)) → U71(isNatKind(V1))
isNatKind(0) → ttisNatIListKind(cons(V1, V2)) → U51(isNatKind(V1), V2)
U52(tt) → ttU51(tt, V2) → U52(isNatIListKind(V2))
isNatIListKind(zeros) → ttisNatKind(length(V1)) → U61(isNatIListKind(V1))

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

isNatKind#(s(V1)) → isNatKind#(V1)isNatIListKind#(cons(V1, V2)) → U51#(isNatKind(V1), V2)
U51#(tt, V2) → isNatIListKind#(V2)isNatKind#(length(V1)) → isNatIListKind#(V1)
isNatIListKind#(cons(V1, V2)) → isNatKind#(V1)

Problem 3: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

isNat#(s(V1)) → U21#(isNatKind(V1), V1)U22#(tt, V1) → isNat#(V1)
U82#(tt, V1, V2) → U83#(isNatIListKind(V2), V1, V2)U11#(tt, V1) → U12#(isNatIListKind(V1), V1)
isNatList#(cons(V1, V2)) → U81#(isNatKind(V1), V1, V2)U83#(tt, V1, V2) → U84#(isNatIListKind(V2), V1, V2)
U21#(tt, V1) → U22#(isNatKind(V1), V1)U85#(tt, V2) → isNatList#(V2)
isNat#(length(V1)) → U11#(isNatIListKind(V1), V1)U81#(tt, V1, V2) → U82#(isNatKind(V1), V1, V2)
U12#(tt, V1) → isNatList#(V1)U84#(tt, V1, V2) → isNat#(V1)
U84#(tt, V1, V2) → U85#(isNat(V1), V2)

Rewrite Rules

zeros → cons(0, zeros)U11(tt, V1) → U12(isNatIListKind(V1), V1)
U12(tt, V1) → U13(isNatList(V1))U13(tt) → tt
U21(tt, V1) → U22(isNatKind(V1), V1)U22(tt, V1) → U23(isNat(V1))
U23(tt) → ttU31(tt, V) → U32(isNatIListKind(V), V)
U32(tt, V) → U33(isNatList(V))U33(tt) → tt
U41(tt, V1, V2) → U42(isNatKind(V1), V1, V2)U42(tt, V1, V2) → U43(isNatIListKind(V2), V1, V2)
U43(tt, V1, V2) → U44(isNatIListKind(V2), V1, V2)U44(tt, V1, V2) → U45(isNat(V1), V2)
U45(tt, V2) → U46(isNatIList(V2))U46(tt) → tt
U51(tt, V2) → U52(isNatIListKind(V2))U52(tt) → tt
U61(tt) → ttU71(tt) → tt
U81(tt, V1, V2) → U82(isNatKind(V1), V1, V2)U82(tt, V1, V2) → U83(isNatIListKind(V2), V1, V2)
U83(tt, V1, V2) → U84(isNatIListKind(V2), V1, V2)U84(tt, V1, V2) → U85(isNat(V1), V2)
U85(tt, V2) → U86(isNatList(V2))U86(tt) → tt
U91(tt, L, N) → U92(isNatIListKind(L), L, N)U92(tt, L, N) → U93(isNat(N), L, N)
U93(tt, L, N) → U94(isNatKind(N), L)U94(tt, L) → s(length(L))
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(isNatKind(V1), V1, V2)
isNatIListKind(nil) → ttisNatIListKind(zeros) → tt
isNatIListKind(cons(V1, V2)) → U51(isNatKind(V1), V2)isNatKind(0) → tt
isNatKind(length(V1)) → U61(isNatIListKind(V1))isNatKind(s(V1)) → U71(isNatKind(V1))
isNatList(nil) → ttisNatList(cons(V1, V2)) → U81(isNatKind(V1), V1, V2)
length(nil) → 0length(cons(N, L)) → U91(isNatList(L), L, N)

Original Signature

Termination of terms over the following signature is verified: isNatIListKind, U94, U46, isNat, U45, U44, U43, U61, U42, U93, U41, U92, U91, length, U23, U21, U22, cons, isNatIList, isNatKind, U83, U84, U85, U86, U71, 0, U51, isNatList, s, zeros, tt, U82, U52, U81, U11, U12, U31, U13, U32, U33, nil

Strategy

Context-sensitive strategy:
μ(isNatIListKind#) = μ(zeros#) = μ(isNatIList) = μ(isNatKind) = μ(isNatIList#) = μ(0) = μ(isNatKind#) = μ(zeros) = μ(isNatList#) = μ(isNatIListKind) = μ(isNat) = μ(T) = μ(isNatList) = μ(tt) = μ(isNat#) = μ(nil) = ∅
μ(U93#) = μ(U11#) = μ(U31#) = μ(U21#) = μ(U52#) = μ(U41#) = μ(U61) = μ(U45#) = μ(U86#) = μ(U23) = μ(U21) = μ(U22) = μ(U12#) = μ(U22#) = μ(U94#) = μ(U61#) = μ(U51#) = μ(U71) = μ(U42#) = μ(U71#) = μ(U46#) = μ(U32#) = μ(U85#) = μ(U31) = μ(U32) = μ(U33) = μ(U13#) = μ(length#) = μ(U91#) = μ(U81#) = μ(U23#) = μ(U94) = μ(U46) = μ(U45) = μ(U43#) = μ(U44) = μ(U43) = μ(U42) = μ(U93) = μ(U92) = μ(U41) = μ(U91) = μ(length) = μ(cons) = μ(U33#) = μ(U84#) = μ(U92#) = μ(U83) = μ(U84) = μ(U85) = μ(U82#) = μ(U86) = μ(U44#) = μ(s) = μ(U51) = μ(U82) = μ(U52) = μ(U81) = μ(U11) = μ(U12) = μ(U13) = μ(U83#) = {1}


Polynomial Interpretation

Standard Usable rules

isNat(length(V1)) → U11(isNatIListKind(V1), V1)isNatIListKind(nil) → tt
isNat(s(V1)) → U21(isNatKind(V1), V1)isNatKind(length(V1)) → U61(isNatIListKind(V1))
U12(tt, V1) → U13(isNatList(V1))U13(tt) → tt
U11(tt, V1) → U12(isNatIListKind(V1), V1)isNatKind(0) → tt
U85(tt, V2) → U86(isNatList(V2))U81(tt, V1, V2) → U82(isNatKind(V1), V1, V2)
U61(tt) → ttisNat(0) → tt
isNatList(nil) → ttU86(tt) → tt
U71(tt) → ttU23(tt) → tt
U82(tt, V1, V2) → U83(isNatIListKind(V2), V1, V2)U84(tt, V1, V2) → U85(isNat(V1), V2)
isNatKind(s(V1)) → U71(isNatKind(V1))isNatList(cons(V1, V2)) → U81(isNatKind(V1), V1, V2)
U22(tt, V1) → U23(isNat(V1))U21(tt, V1) → U22(isNatKind(V1), V1)
U83(tt, V1, V2) → U84(isNatIListKind(V2), V1, V2)U51(tt, V2) → U52(isNatIListKind(V2))
U52(tt) → ttisNatIListKind(cons(V1, V2)) → U51(isNatKind(V1), V2)
isNatIListKind(zeros) → tt

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

U11#(tt, V1) → U12#(isNatIListKind(V1), V1)isNat#(length(V1)) → U11#(isNatIListKind(V1), V1)
U81#(tt, V1, V2) → U82#(isNatKind(V1), V1, V2)

Problem 6: DependencyGraph



Dependency Pair Problem

Dependency Pairs

isNat#(s(V1)) → U21#(isNatKind(V1), V1)U22#(tt, V1) → isNat#(V1)
U82#(tt, V1, V2) → U83#(isNatIListKind(V2), V1, V2)U12#(tt, V1) → isNatList#(V1)
isNatList#(cons(V1, V2)) → U81#(isNatKind(V1), V1, V2)U84#(tt, V1, V2) → isNat#(V1)
U83#(tt, V1, V2) → U84#(isNatIListKind(V2), V1, V2)U21#(tt, V1) → U22#(isNatKind(V1), V1)
U85#(tt, V2) → isNatList#(V2)U84#(tt, V1, V2) → U85#(isNat(V1), V2)

Rewrite Rules

zeros → cons(0, zeros)U11(tt, V1) → U12(isNatIListKind(V1), V1)
U12(tt, V1) → U13(isNatList(V1))U13(tt) → tt
U21(tt, V1) → U22(isNatKind(V1), V1)U22(tt, V1) → U23(isNat(V1))
U23(tt) → ttU31(tt, V) → U32(isNatIListKind(V), V)
U32(tt, V) → U33(isNatList(V))U33(tt) → tt
U41(tt, V1, V2) → U42(isNatKind(V1), V1, V2)U42(tt, V1, V2) → U43(isNatIListKind(V2), V1, V2)
U43(tt, V1, V2) → U44(isNatIListKind(V2), V1, V2)U44(tt, V1, V2) → U45(isNat(V1), V2)
U45(tt, V2) → U46(isNatIList(V2))U46(tt) → tt
U51(tt, V2) → U52(isNatIListKind(V2))U52(tt) → tt
U61(tt) → ttU71(tt) → tt
U81(tt, V1, V2) → U82(isNatKind(V1), V1, V2)U82(tt, V1, V2) → U83(isNatIListKind(V2), V1, V2)
U83(tt, V1, V2) → U84(isNatIListKind(V2), V1, V2)U84(tt, V1, V2) → U85(isNat(V1), V2)
U85(tt, V2) → U86(isNatList(V2))U86(tt) → tt
U91(tt, L, N) → U92(isNatIListKind(L), L, N)U92(tt, L, N) → U93(isNat(N), L, N)
U93(tt, L, N) → U94(isNatKind(N), L)U94(tt, L) → s(length(L))
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(isNatKind(V1), V1, V2)
isNatIListKind(nil) → ttisNatIListKind(zeros) → tt
isNatIListKind(cons(V1, V2)) → U51(isNatKind(V1), V2)isNatKind(0) → tt
isNatKind(length(V1)) → U61(isNatIListKind(V1))isNatKind(s(V1)) → U71(isNatKind(V1))
isNatList(nil) → ttisNatList(cons(V1, V2)) → U81(isNatKind(V1), V1, V2)
length(nil) → 0length(cons(N, L)) → U91(isNatList(L), L, N)

Original Signature

Termination of terms over the following signature is verified: isNatIListKind, U94, isNat, U46, U45, U44, U61, U43, U93, U42, U92, U41, U91, length, U23, U21, U22, cons, isNatIList, isNatKind, U83, U84, U85, U86, U71, 0, s, isNatList, U51, tt, zeros, U82, U81, U52, U11, U12, U13, U31, U32, U33, nil

Strategy

Context-sensitive strategy:
μ(isNatIListKind#) = μ(zeros#) = μ(isNatIList) = μ(isNatKind) = μ(isNatIList#) = μ(0) = μ(isNatKind#) = μ(zeros) = μ(isNatList#) = μ(isNatIListKind) = μ(isNat) = μ(T) = μ(isNatList) = μ(tt) = μ(isNat#) = μ(nil) = ∅
μ(U93#) = μ(U11#) = μ(U31#) = μ(U21#) = μ(U52#) = μ(U41#) = μ(U61) = μ(U45#) = μ(U86#) = μ(U23) = μ(U21) = μ(U22) = μ(U12#) = μ(U94#) = μ(U22#) = μ(U61#) = μ(U51#) = μ(U71) = μ(U42#) = μ(U71#) = μ(U46#) = μ(U32#) = μ(U85#) = μ(U31) = μ(U32) = μ(U33) = μ(U13#) = μ(length#) = μ(U91#) = μ(U81#) = μ(U23#) = μ(U94) = μ(U46) = μ(U45) = μ(U43#) = μ(U44) = μ(U43) = μ(U93) = μ(U42) = μ(U41) = μ(U92) = μ(U91) = μ(length) = μ(U84#) = μ(U33#) = μ(cons) = μ(U92#) = μ(U83) = μ(U84) = μ(U82#) = μ(U85) = μ(U86) = μ(U44#) = μ(U51) = μ(s) = μ(U82) = μ(U81) = μ(U52) = μ(U11) = μ(U12) = μ(U13) = μ(U83#) = {1}


The following SCCs where found

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

Problem 9: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

zeros → cons(0, zeros)U11(tt, V1) → U12(isNatIListKind(V1), V1)
U12(tt, V1) → U13(isNatList(V1))U13(tt) → tt
U21(tt, V1) → U22(isNatKind(V1), V1)U22(tt, V1) → U23(isNat(V1))
U23(tt) → ttU31(tt, V) → U32(isNatIListKind(V), V)
U32(tt, V) → U33(isNatList(V))U33(tt) → tt
U41(tt, V1, V2) → U42(isNatKind(V1), V1, V2)U42(tt, V1, V2) → U43(isNatIListKind(V2), V1, V2)
U43(tt, V1, V2) → U44(isNatIListKind(V2), V1, V2)U44(tt, V1, V2) → U45(isNat(V1), V2)
U45(tt, V2) → U46(isNatIList(V2))U46(tt) → tt
U51(tt, V2) → U52(isNatIListKind(V2))U52(tt) → tt
U61(tt) → ttU71(tt) → tt
U81(tt, V1, V2) → U82(isNatKind(V1), V1, V2)U82(tt, V1, V2) → U83(isNatIListKind(V2), V1, V2)
U83(tt, V1, V2) → U84(isNatIListKind(V2), V1, V2)U84(tt, V1, V2) → U85(isNat(V1), V2)
U85(tt, V2) → U86(isNatList(V2))U86(tt) → tt
U91(tt, L, N) → U92(isNatIListKind(L), L, N)U92(tt, L, N) → U93(isNat(N), L, N)
U93(tt, L, N) → U94(isNatKind(N), L)U94(tt, L) → s(length(L))
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(isNatKind(V1), V1, V2)
isNatIListKind(nil) → ttisNatIListKind(zeros) → tt
isNatIListKind(cons(V1, V2)) → U51(isNatKind(V1), V2)isNatKind(0) → tt
isNatKind(length(V1)) → U61(isNatIListKind(V1))isNatKind(s(V1)) → U71(isNatKind(V1))
isNatList(nil) → ttisNatList(cons(V1, V2)) → U81(isNatKind(V1), V1, V2)
length(nil) → 0length(cons(N, L)) → U91(isNatList(L), L, N)

Original Signature

Termination of terms over the following signature is verified: isNatIListKind, U94, isNat, U46, U45, U44, U61, U43, U93, U42, U92, U41, U91, length, U23, U21, U22, cons, isNatIList, isNatKind, U83, U84, U85, U86, U71, 0, s, isNatList, U51, tt, zeros, U82, U81, U52, U11, U12, U13, U31, U32, U33, nil

Strategy

Context-sensitive strategy:
μ(isNatIListKind#) = μ(zeros#) = μ(isNatIList) = μ(isNatKind) = μ(isNatIList#) = μ(0) = μ(isNatKind#) = μ(zeros) = μ(isNatList#) = μ(isNatIListKind) = μ(isNat) = μ(T) = μ(isNatList) = μ(tt) = μ(isNat#) = μ(nil) = ∅
μ(U93#) = μ(U11#) = μ(U31#) = μ(U21#) = μ(U52#) = μ(U41#) = μ(U61) = μ(U45#) = μ(U86#) = μ(U23) = μ(U21) = μ(U22) = μ(U12#) = μ(U22#) = μ(U94#) = μ(U61#) = μ(U51#) = μ(U71) = μ(U42#) = μ(U71#) = μ(U46#) = μ(U32#) = μ(U85#) = μ(U31) = μ(U32) = μ(U33) = μ(U13#) = μ(length#) = μ(U91#) = μ(U81#) = μ(U23#) = μ(U94) = μ(U46) = μ(U45) = μ(U43#) = μ(U44) = μ(U43) = μ(U42) = μ(U93) = μ(U92) = μ(U41) = μ(U91) = μ(length) = μ(cons) = μ(U33#) = μ(U84#) = μ(U92#) = μ(U83) = μ(U84) = μ(U85) = μ(U82#) = μ(U86) = μ(U44#) = μ(s) = μ(U51) = μ(U82) = μ(U52) = μ(U81) = μ(U11) = μ(U12) = μ(U13) = μ(U83#) = {1}


Polynomial Interpretation

Standard Usable rules

U61(tt) → ttisNatIListKind(nil) → tt
U71(tt) → ttisNatKind(s(V1)) → U71(isNatKind(V1))
isNatKind(0) → ttisNatIListKind(cons(V1, V2)) → U51(isNatKind(V1), V2)
U52(tt) → ttU51(tt, V2) → U52(isNatIListKind(V2))
isNatIListKind(zeros) → ttisNatKind(length(V1)) → U61(isNatIListKind(V1))

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

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

Problem 10: DependencyGraph



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

zeros → cons(0, zeros)U11(tt, V1) → U12(isNatIListKind(V1), V1)
U12(tt, V1) → U13(isNatList(V1))U13(tt) → tt
U21(tt, V1) → U22(isNatKind(V1), V1)U22(tt, V1) → U23(isNat(V1))
U23(tt) → ttU31(tt, V) → U32(isNatIListKind(V), V)
U32(tt, V) → U33(isNatList(V))U33(tt) → tt
U41(tt, V1, V2) → U42(isNatKind(V1), V1, V2)U42(tt, V1, V2) → U43(isNatIListKind(V2), V1, V2)
U43(tt, V1, V2) → U44(isNatIListKind(V2), V1, V2)U44(tt, V1, V2) → U45(isNat(V1), V2)
U45(tt, V2) → U46(isNatIList(V2))U46(tt) → tt
U51(tt, V2) → U52(isNatIListKind(V2))U52(tt) → tt
U61(tt) → ttU71(tt) → tt
U81(tt, V1, V2) → U82(isNatKind(V1), V1, V2)U82(tt, V1, V2) → U83(isNatIListKind(V2), V1, V2)
U83(tt, V1, V2) → U84(isNatIListKind(V2), V1, V2)U84(tt, V1, V2) → U85(isNat(V1), V2)
U85(tt, V2) → U86(isNatList(V2))U86(tt) → tt
U91(tt, L, N) → U92(isNatIListKind(L), L, N)U92(tt, L, N) → U93(isNat(N), L, N)
U93(tt, L, N) → U94(isNatKind(N), L)U94(tt, L) → s(length(L))
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(isNatKind(V1), V1, V2)
isNatIListKind(nil) → ttisNatIListKind(zeros) → tt
isNatIListKind(cons(V1, V2)) → U51(isNatKind(V1), V2)isNatKind(0) → tt
isNatKind(length(V1)) → U61(isNatIListKind(V1))isNatKind(s(V1)) → U71(isNatKind(V1))
isNatList(nil) → ttisNatList(cons(V1, V2)) → U81(isNatKind(V1), V1, V2)
length(nil) → 0length(cons(N, L)) → U91(isNatList(L), L, N)

Original Signature

Termination of terms over the following signature is verified: isNatIListKind, U94, U46, isNat, U45, U44, U43, U61, U42, U93, U41, U92, U91, length, U23, U21, U22, cons, isNatIList, isNatKind, U83, U84, U85, U86, U71, 0, U51, isNatList, s, zeros, tt, U82, U52, U81, U11, U12, U31, U13, U32, U33, nil

Strategy

Context-sensitive strategy:
μ(isNatIListKind#) = μ(zeros#) = μ(isNatIList) = μ(isNatKind) = μ(isNatIList#) = μ(0) = μ(isNatKind#) = μ(zeros) = μ(isNatList#) = μ(isNatIListKind) = μ(isNat) = μ(T) = μ(isNatList) = μ(tt) = μ(isNat#) = μ(nil) = ∅
μ(U93#) = μ(U11#) = μ(U31#) = μ(U21#) = μ(U52#) = μ(U41#) = μ(U61) = μ(U45#) = μ(U86#) = μ(U23) = μ(U21) = μ(U22) = μ(U12#) = μ(U94#) = μ(U22#) = μ(U61#) = μ(U51#) = μ(U71) = μ(U42#) = μ(U71#) = μ(U46#) = μ(U32#) = μ(U85#) = μ(U31) = μ(U32) = μ(U33) = μ(U13#) = μ(length#) = μ(U91#) = μ(U81#) = μ(U23#) = μ(U94) = μ(U46) = μ(U45) = μ(U43#) = μ(U44) = μ(U43) = μ(U93) = μ(U42) = μ(U41) = μ(U92) = μ(U91) = μ(length) = μ(U84#) = μ(U33#) = μ(cons) = μ(U92#) = μ(U83) = μ(U84) = μ(U82#) = μ(U85) = μ(U86) = μ(U44#) = μ(U51) = μ(s) = μ(U82) = μ(U81) = μ(U52) = μ(U11) = μ(U12) = μ(U13) = μ(U83#) = {1}


There are no SCCs!

Problem 4: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

U91#(tt, L, N) → U92#(isNatIListKind(L), L, N)length#(cons(N, L)) → U91#(isNatList(L), L, N)
U92#(tt, L, N) → U93#(isNat(N), L, N)U93#(tt, L, N) → U94#(isNatKind(N), L)
U94#(tt, L) → length#(L)

Rewrite Rules

zeros → cons(0, zeros)U11(tt, V1) → U12(isNatIListKind(V1), V1)
U12(tt, V1) → U13(isNatList(V1))U13(tt) → tt
U21(tt, V1) → U22(isNatKind(V1), V1)U22(tt, V1) → U23(isNat(V1))
U23(tt) → ttU31(tt, V) → U32(isNatIListKind(V), V)
U32(tt, V) → U33(isNatList(V))U33(tt) → tt
U41(tt, V1, V2) → U42(isNatKind(V1), V1, V2)U42(tt, V1, V2) → U43(isNatIListKind(V2), V1, V2)
U43(tt, V1, V2) → U44(isNatIListKind(V2), V1, V2)U44(tt, V1, V2) → U45(isNat(V1), V2)
U45(tt, V2) → U46(isNatIList(V2))U46(tt) → tt
U51(tt, V2) → U52(isNatIListKind(V2))U52(tt) → tt
U61(tt) → ttU71(tt) → tt
U81(tt, V1, V2) → U82(isNatKind(V1), V1, V2)U82(tt, V1, V2) → U83(isNatIListKind(V2), V1, V2)
U83(tt, V1, V2) → U84(isNatIListKind(V2), V1, V2)U84(tt, V1, V2) → U85(isNat(V1), V2)
U85(tt, V2) → U86(isNatList(V2))U86(tt) → tt
U91(tt, L, N) → U92(isNatIListKind(L), L, N)U92(tt, L, N) → U93(isNat(N), L, N)
U93(tt, L, N) → U94(isNatKind(N), L)U94(tt, L) → s(length(L))
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(isNatKind(V1), V1, V2)
isNatIListKind(nil) → ttisNatIListKind(zeros) → tt
isNatIListKind(cons(V1, V2)) → U51(isNatKind(V1), V2)isNatKind(0) → tt
isNatKind(length(V1)) → U61(isNatIListKind(V1))isNatKind(s(V1)) → U71(isNatKind(V1))
isNatList(nil) → ttisNatList(cons(V1, V2)) → U81(isNatKind(V1), V1, V2)
length(nil) → 0length(cons(N, L)) → U91(isNatList(L), L, N)

Original Signature

Termination of terms over the following signature is verified: isNatIListKind, U94, U46, isNat, U45, U44, U43, U61, U42, U93, U41, U92, U91, length, U23, U21, U22, cons, isNatIList, isNatKind, U83, U84, U85, U86, U71, 0, U51, isNatList, s, zeros, tt, U82, U52, U81, U11, U12, U31, U13, U32, U33, nil

Strategy

Context-sensitive strategy:
μ(isNatIListKind#) = μ(zeros#) = μ(isNatIList) = μ(isNatKind) = μ(isNatIList#) = μ(0) = μ(isNatKind#) = μ(zeros) = μ(isNatList#) = μ(isNatIListKind) = μ(isNat) = μ(T) = μ(isNatList) = μ(tt) = μ(isNat#) = μ(nil) = ∅
μ(U93#) = μ(U11#) = μ(U31#) = μ(U21#) = μ(U52#) = μ(U41#) = μ(U61) = μ(U45#) = μ(U86#) = μ(U23) = μ(U21) = μ(U22) = μ(U12#) = μ(U22#) = μ(U94#) = μ(U61#) = μ(U51#) = μ(U71) = μ(U42#) = μ(U71#) = μ(U46#) = μ(U32#) = μ(U85#) = μ(U31) = μ(U32) = μ(U33) = μ(U13#) = μ(length#) = μ(U91#) = μ(U81#) = μ(U23#) = μ(U94) = μ(U46) = μ(U45) = μ(U43#) = μ(U44) = μ(U43) = μ(U42) = μ(U93) = μ(U92) = μ(U41) = μ(U91) = μ(length) = μ(cons) = μ(U33#) = μ(U84#) = μ(U92#) = μ(U83) = μ(U84) = μ(U85) = μ(U82#) = μ(U86) = μ(U44#) = μ(s) = μ(U51) = μ(U82) = μ(U52) = μ(U81) = μ(U11) = μ(U12) = μ(U13) = μ(U83#) = {1}


Polynomial Interpretation

Standard Usable rules

isNat(length(V1)) → U11(isNatIListKind(V1), V1)isNatIListKind(nil) → tt
isNatIList(V) → U31(isNatIListKind(V), V)U45(tt, V2) → U46(isNatIList(V2))
isNat(s(V1)) → U21(isNatKind(V1), V1)isNatKind(length(V1)) → U61(isNatIListKind(V1))
U42(tt, V1, V2) → U43(isNatIListKind(V2), V1, V2)U33(tt) → tt
U13(tt) → ttU12(tt, V1) → U13(isNatList(V1))
U41(tt, V1, V2) → U42(isNatKind(V1), V1, V2)U93(tt, L, N) → U94(isNatKind(N), L)
U11(tt, V1) → U12(isNatIListKind(V1), V1)length(cons(N, L)) → U91(isNatList(L), L, N)
isNatKind(0) → ttU85(tt, V2) → U86(isNatList(V2))
U44(tt, V1, V2) → U45(isNat(V1), V2)isNatIList(zeros) → tt
length(nil) → 0U94(tt, L) → s(length(L))
U32(tt, V) → U33(isNatList(V))isNat(0) → tt
U61(tt) → ttU81(tt, V1, V2) → U82(isNatKind(V1), V1, V2)
isNatList(nil) → ttU86(tt) → tt
U23(tt) → ttzeros → cons(0, zeros)
U71(tt) → ttU43(tt, V1, V2) → U44(isNatIListKind(V2), V1, V2)
U82(tt, V1, V2) → U83(isNatIListKind(V2), V1, V2)U84(tt, V1, V2) → U85(isNat(V1), V2)
isNatIList(cons(V1, V2)) → U41(isNatKind(V1), V1, V2)U92(tt, L, N) → U93(isNat(N), L, N)
isNatKind(s(V1)) → U71(isNatKind(V1))isNatList(cons(V1, V2)) → U81(isNatKind(V1), V1, V2)
U22(tt, V1) → U23(isNat(V1))U21(tt, V1) → U22(isNatKind(V1), V1)
U31(tt, V) → U32(isNatIListKind(V), V)U83(tt, V1, V2) → U84(isNatIListKind(V2), V1, V2)
isNatIListKind(cons(V1, V2)) → U51(isNatKind(V1), V2)U91(tt, L, N) → U92(isNatIListKind(L), L, N)
U51(tt, V2) → U52(isNatIListKind(V2))U52(tt) → tt
isNatIListKind(zeros) → ttU46(tt) → tt

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

U92#(tt, L, N) → U93#(isNat(N), L, N)

Problem 7: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U91#(tt, L, N) → U92#(isNatIListKind(L), L, N)length#(cons(N, L)) → U91#(isNatList(L), L, N)
U93#(tt, L, N) → U94#(isNatKind(N), L)U94#(tt, L) → length#(L)

Rewrite Rules

zeros → cons(0, zeros)U11(tt, V1) → U12(isNatIListKind(V1), V1)
U12(tt, V1) → U13(isNatList(V1))U13(tt) → tt
U21(tt, V1) → U22(isNatKind(V1), V1)U22(tt, V1) → U23(isNat(V1))
U23(tt) → ttU31(tt, V) → U32(isNatIListKind(V), V)
U32(tt, V) → U33(isNatList(V))U33(tt) → tt
U41(tt, V1, V2) → U42(isNatKind(V1), V1, V2)U42(tt, V1, V2) → U43(isNatIListKind(V2), V1, V2)
U43(tt, V1, V2) → U44(isNatIListKind(V2), V1, V2)U44(tt, V1, V2) → U45(isNat(V1), V2)
U45(tt, V2) → U46(isNatIList(V2))U46(tt) → tt
U51(tt, V2) → U52(isNatIListKind(V2))U52(tt) → tt
U61(tt) → ttU71(tt) → tt
U81(tt, V1, V2) → U82(isNatKind(V1), V1, V2)U82(tt, V1, V2) → U83(isNatIListKind(V2), V1, V2)
U83(tt, V1, V2) → U84(isNatIListKind(V2), V1, V2)U84(tt, V1, V2) → U85(isNat(V1), V2)
U85(tt, V2) → U86(isNatList(V2))U86(tt) → tt
U91(tt, L, N) → U92(isNatIListKind(L), L, N)U92(tt, L, N) → U93(isNat(N), L, N)
U93(tt, L, N) → U94(isNatKind(N), L)U94(tt, L) → s(length(L))
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(isNatKind(V1), V1, V2)
isNatIListKind(nil) → ttisNatIListKind(zeros) → tt
isNatIListKind(cons(V1, V2)) → U51(isNatKind(V1), V2)isNatKind(0) → tt
isNatKind(length(V1)) → U61(isNatIListKind(V1))isNatKind(s(V1)) → U71(isNatKind(V1))
isNatList(nil) → ttisNatList(cons(V1, V2)) → U81(isNatKind(V1), V1, V2)
length(nil) → 0length(cons(N, L)) → U91(isNatList(L), L, N)

Original Signature

Termination of terms over the following signature is verified: isNatIListKind, U94, isNat, U46, U45, U44, U61, U43, U93, U42, U92, U41, U91, length, U23, U21, U22, cons, isNatIList, isNatKind, U83, U84, U85, U86, U71, 0, s, isNatList, U51, tt, zeros, U82, U81, U52, U11, U12, U13, U31, U32, U33, nil

Strategy

Context-sensitive strategy:
μ(isNatIListKind#) = μ(zeros#) = μ(isNatIList) = μ(isNatKind) = μ(isNatIList#) = μ(0) = μ(isNatKind#) = μ(zeros) = μ(isNatList#) = μ(isNatIListKind) = μ(isNat) = μ(T) = μ(isNatList) = μ(tt) = μ(isNat#) = μ(nil) = ∅
μ(U93#) = μ(U11#) = μ(U31#) = μ(U21#) = μ(U52#) = μ(U41#) = μ(U61) = μ(U45#) = μ(U86#) = μ(U23) = μ(U21) = μ(U22) = μ(U12#) = μ(U94#) = μ(U22#) = μ(U61#) = μ(U51#) = μ(U71) = μ(U42#) = μ(U71#) = μ(U46#) = μ(U32#) = μ(U85#) = μ(U31) = μ(U32) = μ(U33) = μ(U13#) = μ(length#) = μ(U91#) = μ(U81#) = μ(U23#) = μ(U94) = μ(U46) = μ(U45) = μ(U43#) = μ(U44) = μ(U43) = μ(U93) = μ(U42) = μ(U41) = μ(U92) = μ(U91) = μ(length) = μ(U84#) = μ(U33#) = μ(cons) = μ(U92#) = μ(U83) = μ(U84) = μ(U82#) = μ(U85) = μ(U86) = μ(U44#) = μ(U51) = μ(s) = μ(U82) = μ(U81) = μ(U52) = μ(U11) = μ(U12) = μ(U13) = μ(U83#) = {1}


There are no SCCs!

Problem 5: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

U44#(tt, V1, V2) → U45#(isNat(V1), V2)U45#(tt, V2) → isNatIList#(V2)
U41#(tt, V1, V2) → U42#(isNatKind(V1), V1, V2)isNatIList#(cons(V1, V2)) → U41#(isNatKind(V1), V1, V2)
U43#(tt, V1, V2) → U44#(isNatIListKind(V2), V1, V2)U42#(tt, V1, V2) → U43#(isNatIListKind(V2), V1, V2)

Rewrite Rules

zeros → cons(0, zeros)U11(tt, V1) → U12(isNatIListKind(V1), V1)
U12(tt, V1) → U13(isNatList(V1))U13(tt) → tt
U21(tt, V1) → U22(isNatKind(V1), V1)U22(tt, V1) → U23(isNat(V1))
U23(tt) → ttU31(tt, V) → U32(isNatIListKind(V), V)
U32(tt, V) → U33(isNatList(V))U33(tt) → tt
U41(tt, V1, V2) → U42(isNatKind(V1), V1, V2)U42(tt, V1, V2) → U43(isNatIListKind(V2), V1, V2)
U43(tt, V1, V2) → U44(isNatIListKind(V2), V1, V2)U44(tt, V1, V2) → U45(isNat(V1), V2)
U45(tt, V2) → U46(isNatIList(V2))U46(tt) → tt
U51(tt, V2) → U52(isNatIListKind(V2))U52(tt) → tt
U61(tt) → ttU71(tt) → tt
U81(tt, V1, V2) → U82(isNatKind(V1), V1, V2)U82(tt, V1, V2) → U83(isNatIListKind(V2), V1, V2)
U83(tt, V1, V2) → U84(isNatIListKind(V2), V1, V2)U84(tt, V1, V2) → U85(isNat(V1), V2)
U85(tt, V2) → U86(isNatList(V2))U86(tt) → tt
U91(tt, L, N) → U92(isNatIListKind(L), L, N)U92(tt, L, N) → U93(isNat(N), L, N)
U93(tt, L, N) → U94(isNatKind(N), L)U94(tt, L) → s(length(L))
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(isNatKind(V1), V1, V2)
isNatIListKind(nil) → ttisNatIListKind(zeros) → tt
isNatIListKind(cons(V1, V2)) → U51(isNatKind(V1), V2)isNatKind(0) → tt
isNatKind(length(V1)) → U61(isNatIListKind(V1))isNatKind(s(V1)) → U71(isNatKind(V1))
isNatList(nil) → ttisNatList(cons(V1, V2)) → U81(isNatKind(V1), V1, V2)
length(nil) → 0length(cons(N, L)) → U91(isNatList(L), L, N)

Original Signature

Termination of terms over the following signature is verified: isNatIListKind, U94, U46, isNat, U45, U44, U43, U61, U42, U93, U41, U92, U91, length, U23, U21, U22, cons, isNatIList, isNatKind, U83, U84, U85, U86, U71, 0, U51, isNatList, s, zeros, tt, U82, U52, U81, U11, U12, U31, U13, U32, U33, nil

Strategy

Context-sensitive strategy:
μ(isNatIListKind#) = μ(zeros#) = μ(isNatIList) = μ(isNatKind) = μ(isNatIList#) = μ(0) = μ(isNatKind#) = μ(zeros) = μ(isNatList#) = μ(isNatIListKind) = μ(isNat) = μ(T) = μ(isNatList) = μ(tt) = μ(isNat#) = μ(nil) = ∅
μ(U93#) = μ(U11#) = μ(U31#) = μ(U21#) = μ(U52#) = μ(U41#) = μ(U61) = μ(U45#) = μ(U86#) = μ(U23) = μ(U21) = μ(U22) = μ(U12#) = μ(U22#) = μ(U94#) = μ(U61#) = μ(U51#) = μ(U71) = μ(U42#) = μ(U71#) = μ(U46#) = μ(U32#) = μ(U85#) = μ(U31) = μ(U32) = μ(U33) = μ(U13#) = μ(length#) = μ(U91#) = μ(U81#) = μ(U23#) = μ(U94) = μ(U46) = μ(U45) = μ(U43#) = μ(U44) = μ(U43) = μ(U42) = μ(U93) = μ(U92) = μ(U41) = μ(U91) = μ(length) = μ(cons) = μ(U33#) = μ(U84#) = μ(U92#) = μ(U83) = μ(U84) = μ(U85) = μ(U82#) = μ(U86) = μ(U44#) = μ(s) = μ(U51) = μ(U82) = μ(U52) = μ(U81) = μ(U11) = μ(U12) = μ(U13) = μ(U83#) = {1}


Polynomial Interpretation

Standard Usable rules

isNat(length(V1)) → U11(isNatIListKind(V1), V1)isNatIListKind(nil) → tt
isNat(s(V1)) → U21(isNatKind(V1), V1)isNatKind(length(V1)) → U61(isNatIListKind(V1))
U12(tt, V1) → U13(isNatList(V1))U13(tt) → tt
U11(tt, V1) → U12(isNatIListKind(V1), V1)isNatKind(0) → tt
U85(tt, V2) → U86(isNatList(V2))U81(tt, V1, V2) → U82(isNatKind(V1), V1, V2)
U61(tt) → ttisNat(0) → tt
isNatList(nil) → ttU86(tt) → tt
U71(tt) → ttU23(tt) → tt
U82(tt, V1, V2) → U83(isNatIListKind(V2), V1, V2)U84(tt, V1, V2) → U85(isNat(V1), V2)
isNatKind(s(V1)) → U71(isNatKind(V1))isNatList(cons(V1, V2)) → U81(isNatKind(V1), V1, V2)
U22(tt, V1) → U23(isNat(V1))U21(tt, V1) → U22(isNatKind(V1), V1)
U83(tt, V1, V2) → U84(isNatIListKind(V2), V1, V2)U51(tt, V2) → U52(isNatIListKind(V2))
U52(tt) → ttisNatIListKind(cons(V1, V2)) → U51(isNatKind(V1), V2)
isNatIListKind(zeros) → tt

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

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

Problem 8: DependencyGraph



Dependency Pair Problem

Dependency Pairs

U44#(tt, V1, V2) → U45#(isNat(V1), V2)U45#(tt, V2) → isNatIList#(V2)
U41#(tt, V1, V2) → U42#(isNatKind(V1), V1, V2)U43#(tt, V1, V2) → U44#(isNatIListKind(V2), V1, V2)
U42#(tt, V1, V2) → U43#(isNatIListKind(V2), V1, V2)

Rewrite Rules

zeros → cons(0, zeros)U11(tt, V1) → U12(isNatIListKind(V1), V1)
U12(tt, V1) → U13(isNatList(V1))U13(tt) → tt
U21(tt, V1) → U22(isNatKind(V1), V1)U22(tt, V1) → U23(isNat(V1))
U23(tt) → ttU31(tt, V) → U32(isNatIListKind(V), V)
U32(tt, V) → U33(isNatList(V))U33(tt) → tt
U41(tt, V1, V2) → U42(isNatKind(V1), V1, V2)U42(tt, V1, V2) → U43(isNatIListKind(V2), V1, V2)
U43(tt, V1, V2) → U44(isNatIListKind(V2), V1, V2)U44(tt, V1, V2) → U45(isNat(V1), V2)
U45(tt, V2) → U46(isNatIList(V2))U46(tt) → tt
U51(tt, V2) → U52(isNatIListKind(V2))U52(tt) → tt
U61(tt) → ttU71(tt) → tt
U81(tt, V1, V2) → U82(isNatKind(V1), V1, V2)U82(tt, V1, V2) → U83(isNatIListKind(V2), V1, V2)
U83(tt, V1, V2) → U84(isNatIListKind(V2), V1, V2)U84(tt, V1, V2) → U85(isNat(V1), V2)
U85(tt, V2) → U86(isNatList(V2))U86(tt) → tt
U91(tt, L, N) → U92(isNatIListKind(L), L, N)U92(tt, L, N) → U93(isNat(N), L, N)
U93(tt, L, N) → U94(isNatKind(N), L)U94(tt, L) → s(length(L))
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(isNatKind(V1), V1, V2)
isNatIListKind(nil) → ttisNatIListKind(zeros) → tt
isNatIListKind(cons(V1, V2)) → U51(isNatKind(V1), V2)isNatKind(0) → tt
isNatKind(length(V1)) → U61(isNatIListKind(V1))isNatKind(s(V1)) → U71(isNatKind(V1))
isNatList(nil) → ttisNatList(cons(V1, V2)) → U81(isNatKind(V1), V1, V2)
length(nil) → 0length(cons(N, L)) → U91(isNatList(L), L, N)

Original Signature

Termination of terms over the following signature is verified: isNatIListKind, U94, isNat, U46, U45, U44, U61, U43, U93, U42, U92, U41, U91, length, U23, U21, U22, cons, isNatIList, isNatKind, U83, U84, U85, U86, U71, 0, s, isNatList, U51, tt, zeros, U82, U81, U52, U11, U12, U13, U31, U32, U33, nil

Strategy

Context-sensitive strategy:
μ(isNatIListKind#) = μ(zeros#) = μ(isNatIList) = μ(isNatKind) = μ(isNatIList#) = μ(0) = μ(isNatKind#) = μ(zeros) = μ(isNatList#) = μ(isNatIListKind) = μ(isNat) = μ(T) = μ(isNatList) = μ(tt) = μ(isNat#) = μ(nil) = ∅
μ(U93#) = μ(U11#) = μ(U31#) = μ(U21#) = μ(U52#) = μ(U41#) = μ(U61) = μ(U45#) = μ(U86#) = μ(U23) = μ(U21) = μ(U22) = μ(U12#) = μ(U94#) = μ(U22#) = μ(U61#) = μ(U51#) = μ(U71) = μ(U42#) = μ(U71#) = μ(U46#) = μ(U32#) = μ(U85#) = μ(U31) = μ(U32) = μ(U33) = μ(U13#) = μ(length#) = μ(U91#) = μ(U81#) = μ(U23#) = μ(U94) = μ(U46) = μ(U45) = μ(U43#) = μ(U44) = μ(U43) = μ(U93) = μ(U42) = μ(U41) = μ(U92) = μ(U91) = μ(length) = μ(U84#) = μ(U33#) = μ(cons) = μ(U92#) = μ(U83) = μ(U84) = μ(U82#) = μ(U85) = μ(U86) = μ(U44#) = μ(U51) = μ(s) = μ(U82) = μ(U81) = μ(U52) = μ(U11) = μ(U12) = μ(U13) = μ(U83#) = {1}


There are no SCCs!