YES

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

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (199ms).
 | – Problem 2 was processed with processor PolynomialLinearRange4 (170ms).
 |    | – Problem 5 was processed with processor DependencyGraph (0ms).
 | – Problem 3 was processed with processor PolynomialLinearRange4 (240ms).
 |    | – Problem 6 was processed with processor PolynomialLinearRange4 (80ms).
 |    |    | – Problem 8 was processed with processor DependencyGraph (1ms).
 | – Problem 4 was processed with processor PolynomialLinearRange4 (212ms).
 |    | – Problem 7 was processed with processor DependencyGraph (1ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

isNatIList#(cons(V1, V2)) → isNat#(V1)U62#(tt, L) → T(L)
isNat#(s(V1)) → U21#(isNat(V1))isNat#(s(V1)) → isNat#(V1)
length#(cons(N, L)) → U61#(isNatList(L), L, N)isNatList#(cons(V1, V2)) → isNat#(V1)
U41#(tt, V2) → U42#(isNatIList(V2))U61#(tt, L, N) → isNat#(N)
U51#(tt, V2) → U52#(isNatList(V2))isNatIList#(V) → isNatList#(V)
isNat#(length(V1)) → isNatList#(V1)T(zeros) → zeros#
isNatList#(cons(V1, V2)) → U51#(isNat(V1), V2)isNat#(length(V1)) → U11#(isNatList(V1))
U61#(tt, L, N) → U62#(isNat(N), L)U51#(tt, V2) → isNatList#(V2)
isNatIList#(cons(V1, V2)) → U41#(isNat(V1), V2)isNatIList#(V) → U31#(isNatList(V))
U62#(tt, L) → length#(L)length#(cons(N, L)) → isNatList#(L)
U41#(tt, V2) → isNatIList#(V2)

Rewrite Rules

zeros → cons(0, zeros)U11(tt) → tt
U21(tt) → ttU31(tt) → tt
U41(tt, V2) → U42(isNatIList(V2))U42(tt) → tt
U51(tt, V2) → U52(isNatList(V2))U52(tt) → tt
U61(tt, L, N) → U62(isNat(N), L)U62(tt, L) → s(length(L))
isNat(0) → ttisNat(length(V1)) → U11(isNatList(V1))
isNat(s(V1)) → U21(isNat(V1))isNatIList(V) → U31(isNatList(V))
isNatIList(zeros) → ttisNatIList(cons(V1, V2)) → U41(isNat(V1), V2)
isNatList(nil) → ttisNatList(cons(V1, V2)) → U51(isNat(V1), V2)
length(nil) → 0length(cons(N, L)) → U61(isNatList(L), L, N)

Original Signature

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

Strategy

Context-sensitive strategy:
μ(isNatList#) = μ(zeros#) = μ(isNat) = μ(T) = μ(isNatIList) = μ(isNatIList#) = μ(0) = μ(isNatList) = μ(zeros) = μ(tt) = μ(isNat#) = μ(nil) = ∅
μ(U11#) = μ(U31#) = μ(length#) = μ(U21#) = μ(U62#) = μ(U52#) = μ(U62) = μ(U41#) = μ(U61) = μ(U42) = μ(U41) = μ(length) = μ(U21) = μ(cons) = μ(U61#) = μ(U51#) = μ(U42#) = μ(U51) = μ(s) = μ(U52) = μ(U11) = μ(U31) = {1}


The following SCCs where found

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

length#(cons(N, L)) → U61#(isNatList(L), L, N)U61#(tt, L, N) → U62#(isNat(N), L)
U62#(tt, L) → length#(L)

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

Problem 2: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

zeros → cons(0, zeros)U11(tt) → tt
U21(tt) → ttU31(tt) → tt
U41(tt, V2) → U42(isNatIList(V2))U42(tt) → tt
U51(tt, V2) → U52(isNatList(V2))U52(tt) → tt
U61(tt, L, N) → U62(isNat(N), L)U62(tt, L) → s(length(L))
isNat(0) → ttisNat(length(V1)) → U11(isNatList(V1))
isNat(s(V1)) → U21(isNat(V1))isNatIList(V) → U31(isNatList(V))
isNatIList(zeros) → ttisNatIList(cons(V1, V2)) → U41(isNat(V1), V2)
isNatList(nil) → ttisNatList(cons(V1, V2)) → U51(isNat(V1), V2)
length(nil) → 0length(cons(N, L)) → U61(isNatList(L), L, N)

Original Signature

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

Strategy

Context-sensitive strategy:
μ(isNatList#) = μ(zeros#) = μ(isNat) = μ(T) = μ(isNatIList) = μ(isNatIList#) = μ(0) = μ(isNatList) = μ(tt) = μ(zeros) = μ(isNat#) = μ(nil) = ∅
μ(U11#) = μ(U31#) = μ(length#) = μ(U21#) = μ(U62#) = μ(U52#) = μ(U41#) = μ(U62) = μ(U61) = μ(U42) = μ(U41) = μ(length) = μ(U21) = μ(cons) = μ(U61#) = μ(U51#) = μ(U42#) = μ(s) = μ(U51) = μ(U52) = μ(U11) = μ(U31) = {1}


Polynomial Interpretation

Standard Usable rules

U11(tt) → ttisNat(0) → tt
isNatList(nil) → ttU51(tt, V2) → U52(isNatList(V2))
U21(tt) → ttisNat(length(V1)) → U11(isNatList(V1))
isNatList(cons(V1, V2)) → U51(isNat(V1), V2)U52(tt) → tt
isNat(s(V1)) → U21(isNat(V1))

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

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

Problem 5: DependencyGraph



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

zeros → cons(0, zeros)U11(tt) → tt
U21(tt) → ttU31(tt) → tt
U41(tt, V2) → U42(isNatIList(V2))U42(tt) → tt
U51(tt, V2) → U52(isNatList(V2))U52(tt) → tt
U61(tt, L, N) → U62(isNat(N), L)U62(tt, L) → s(length(L))
isNat(0) → ttisNat(length(V1)) → U11(isNatList(V1))
isNat(s(V1)) → U21(isNat(V1))isNatIList(V) → U31(isNatList(V))
isNatIList(zeros) → ttisNatIList(cons(V1, V2)) → U41(isNat(V1), V2)
isNatList(nil) → ttisNatList(cons(V1, V2)) → U51(isNat(V1), V2)
length(nil) → 0length(cons(N, L)) → U61(isNatList(L), L, N)

Original Signature

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

Strategy

Context-sensitive strategy:
μ(isNatList#) = μ(zeros#) = μ(isNat) = μ(T) = μ(isNatIList) = μ(isNatIList#) = μ(0) = μ(isNatList) = μ(zeros) = μ(tt) = μ(isNat#) = μ(nil) = ∅
μ(U11#) = μ(U31#) = μ(length#) = μ(U21#) = μ(U62#) = μ(U52#) = μ(U62) = μ(U41#) = μ(U61) = μ(U42) = μ(U41) = μ(length) = μ(U21) = μ(cons) = μ(U61#) = μ(U51#) = μ(U42#) = μ(U51) = μ(s) = μ(U52) = μ(U11) = μ(U31) = {1}


There are no SCCs!

Problem 3: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

zeros → cons(0, zeros)U11(tt) → tt
U21(tt) → ttU31(tt) → tt
U41(tt, V2) → U42(isNatIList(V2))U42(tt) → tt
U51(tt, V2) → U52(isNatList(V2))U52(tt) → tt
U61(tt, L, N) → U62(isNat(N), L)U62(tt, L) → s(length(L))
isNat(0) → ttisNat(length(V1)) → U11(isNatList(V1))
isNat(s(V1)) → U21(isNat(V1))isNatIList(V) → U31(isNatList(V))
isNatIList(zeros) → ttisNatIList(cons(V1, V2)) → U41(isNat(V1), V2)
isNatList(nil) → ttisNatList(cons(V1, V2)) → U51(isNat(V1), V2)
length(nil) → 0length(cons(N, L)) → U61(isNatList(L), L, N)

Original Signature

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

Strategy

Context-sensitive strategy:
μ(isNatList#) = μ(zeros#) = μ(isNat) = μ(T) = μ(isNatIList) = μ(isNatIList#) = μ(0) = μ(isNatList) = μ(tt) = μ(zeros) = μ(isNat#) = μ(nil) = ∅
μ(U11#) = μ(U31#) = μ(length#) = μ(U21#) = μ(U62#) = μ(U52#) = μ(U41#) = μ(U62) = μ(U61) = μ(U42) = μ(U41) = μ(length) = μ(U21) = μ(cons) = μ(U61#) = μ(U51#) = μ(U42#) = μ(s) = μ(U51) = μ(U52) = μ(U11) = μ(U31) = {1}


Polynomial Interpretation

Standard Usable rules

U11(tt) → ttisNat(0) → tt
isNatList(nil) → ttU51(tt, V2) → U52(isNatList(V2))
U21(tt) → ttisNat(length(V1)) → U11(isNatList(V1))
isNatList(cons(V1, V2)) → U51(isNat(V1), V2)U52(tt) → tt
isNat(s(V1)) → U21(isNat(V1))

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

isNat#(s(V1)) → isNat#(V1)

Problem 6: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

zeros → cons(0, zeros)U11(tt) → tt
U21(tt) → ttU31(tt) → tt
U41(tt, V2) → U42(isNatIList(V2))U42(tt) → tt
U51(tt, V2) → U52(isNatList(V2))U52(tt) → tt
U61(tt, L, N) → U62(isNat(N), L)U62(tt, L) → s(length(L))
isNat(0) → ttisNat(length(V1)) → U11(isNatList(V1))
isNat(s(V1)) → U21(isNat(V1))isNatIList(V) → U31(isNatList(V))
isNatIList(zeros) → ttisNatIList(cons(V1, V2)) → U41(isNat(V1), V2)
isNatList(nil) → ttisNatList(cons(V1, V2)) → U51(isNat(V1), V2)
length(nil) → 0length(cons(N, L)) → U61(isNatList(L), L, N)

Original Signature

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

Strategy

Context-sensitive strategy:
μ(isNatList#) = μ(zeros#) = μ(isNat) = μ(T) = μ(isNatIList) = μ(isNatIList#) = μ(0) = μ(isNatList) = μ(zeros) = μ(tt) = μ(isNat#) = μ(nil) = ∅
μ(U11#) = μ(U31#) = μ(length#) = μ(U21#) = μ(U62#) = μ(U52#) = μ(U62) = μ(U41#) = μ(U61) = μ(U42) = μ(U41) = μ(length) = μ(U21) = μ(cons) = μ(U61#) = μ(U51#) = μ(U42#) = μ(U51) = μ(s) = μ(U52) = μ(U11) = μ(U31) = {1}


Polynomial Interpretation

Standard Usable rules

U11(tt) → ttisNat(0) → tt
isNatList(nil) → ttU51(tt, V2) → U52(isNatList(V2))
U21(tt) → ttisNat(length(V1)) → U11(isNatList(V1))
isNatList(cons(V1, V2)) → U51(isNat(V1), V2)U52(tt) → tt
isNat(s(V1)) → U21(isNat(V1))

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

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

Problem 8: DependencyGraph



Dependency Pair Problem

Dependency Pairs

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

Rewrite Rules

zeros → cons(0, zeros)U11(tt) → tt
U21(tt) → ttU31(tt) → tt
U41(tt, V2) → U42(isNatIList(V2))U42(tt) → tt
U51(tt, V2) → U52(isNatList(V2))U52(tt) → tt
U61(tt, L, N) → U62(isNat(N), L)U62(tt, L) → s(length(L))
isNat(0) → ttisNat(length(V1)) → U11(isNatList(V1))
isNat(s(V1)) → U21(isNat(V1))isNatIList(V) → U31(isNatList(V))
isNatIList(zeros) → ttisNatIList(cons(V1, V2)) → U41(isNat(V1), V2)
isNatList(nil) → ttisNatList(cons(V1, V2)) → U51(isNat(V1), V2)
length(nil) → 0length(cons(N, L)) → U61(isNatList(L), L, N)

Original Signature

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

Strategy

Context-sensitive strategy:
μ(isNatList#) = μ(zeros#) = μ(isNat) = μ(T) = μ(isNatIList) = μ(isNatIList#) = μ(0) = μ(isNatList) = μ(tt) = μ(zeros) = μ(isNat#) = μ(nil) = ∅
μ(U11#) = μ(U31#) = μ(length#) = μ(U21#) = μ(U62#) = μ(U52#) = μ(U41#) = μ(U62) = μ(U61) = μ(U42) = μ(U41) = μ(length) = μ(U21) = μ(cons) = μ(U61#) = μ(U51#) = μ(U42#) = μ(s) = μ(U51) = μ(U52) = μ(U11) = μ(U31) = {1}


There are no SCCs!

Problem 4: PolynomialLinearRange4



Dependency Pair Problem

Dependency Pairs

length#(cons(N, L)) → U61#(isNatList(L), L, N)U61#(tt, L, N) → U62#(isNat(N), L)
U62#(tt, L) → length#(L)

Rewrite Rules

zeros → cons(0, zeros)U11(tt) → tt
U21(tt) → ttU31(tt) → tt
U41(tt, V2) → U42(isNatIList(V2))U42(tt) → tt
U51(tt, V2) → U52(isNatList(V2))U52(tt) → tt
U61(tt, L, N) → U62(isNat(N), L)U62(tt, L) → s(length(L))
isNat(0) → ttisNat(length(V1)) → U11(isNatList(V1))
isNat(s(V1)) → U21(isNat(V1))isNatIList(V) → U31(isNatList(V))
isNatIList(zeros) → ttisNatIList(cons(V1, V2)) → U41(isNat(V1), V2)
isNatList(nil) → ttisNatList(cons(V1, V2)) → U51(isNat(V1), V2)
length(nil) → 0length(cons(N, L)) → U61(isNatList(L), L, N)

Original Signature

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

Strategy

Context-sensitive strategy:
μ(isNatList#) = μ(zeros#) = μ(isNat) = μ(T) = μ(isNatIList) = μ(isNatIList#) = μ(0) = μ(isNatList) = μ(tt) = μ(zeros) = μ(isNat#) = μ(nil) = ∅
μ(U11#) = μ(U31#) = μ(length#) = μ(U21#) = μ(U62#) = μ(U52#) = μ(U41#) = μ(U62) = μ(U61) = μ(U42) = μ(U41) = μ(length) = μ(U21) = μ(cons) = μ(U61#) = μ(U51#) = μ(U42#) = μ(s) = μ(U51) = μ(U52) = μ(U11) = μ(U31) = {1}


Polynomial Interpretation

Standard Usable rules

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

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

U61#(tt, L, N) → U62#(isNat(N), L)

Problem 7: DependencyGraph



Dependency Pair Problem

Dependency Pairs

length#(cons(N, L)) → U61#(isNatList(L), L, N)U62#(tt, L) → length#(L)

Rewrite Rules

zeros → cons(0, zeros)U11(tt) → tt
U21(tt) → ttU31(tt) → tt
U41(tt, V2) → U42(isNatIList(V2))U42(tt) → tt
U51(tt, V2) → U52(isNatList(V2))U52(tt) → tt
U61(tt, L, N) → U62(isNat(N), L)U62(tt, L) → s(length(L))
isNat(0) → ttisNat(length(V1)) → U11(isNatList(V1))
isNat(s(V1)) → U21(isNat(V1))isNatIList(V) → U31(isNatList(V))
isNatIList(zeros) → ttisNatIList(cons(V1, V2)) → U41(isNat(V1), V2)
isNatList(nil) → ttisNatList(cons(V1, V2)) → U51(isNat(V1), V2)
length(nil) → 0length(cons(N, L)) → U61(isNatList(L), L, N)

Original Signature

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

Strategy

Context-sensitive strategy:
μ(isNatList#) = μ(zeros#) = μ(isNat) = μ(T) = μ(isNatIList) = μ(isNatIList#) = μ(0) = μ(isNatList) = μ(zeros) = μ(tt) = μ(isNat#) = μ(nil) = ∅
μ(U11#) = μ(U31#) = μ(length#) = μ(U21#) = μ(U62#) = μ(U52#) = μ(U62) = μ(U41#) = μ(U61) = μ(U42) = μ(U41) = μ(length) = μ(U21) = μ(cons) = μ(U61#) = μ(U51#) = μ(U42#) = μ(U51) = μ(s) = μ(U52) = μ(U11) = μ(U31) = {1}


There are no SCCs!