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) | → | tt | | U31(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) | → | tt | | U71(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) | → | tt | | isNat(length(V1)) | → | U11(isNatIListKind(V1), V1) |
isNat(s(V1)) | → | U21(isNatKind(V1), V1) | | isNatIList(V) | → | U31(isNatIListKind(V), V) |
isNatIList(zeros) | → | tt | | isNatIList(cons(V1, V2)) | → | U41(isNatKind(V1), V1, V2) |
isNatIListKind(nil) | → | tt | | isNatIListKind(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) | → | tt | | isNatList(cons(V1, V2)) | → | U81(isNatKind(V1), V1, V2) |
length(nil) | → | 0 | | length(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) | → | tt | | U31(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) | → | tt | | U71(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) | → | tt | | isNat(length(V1)) | → | U11(isNatIListKind(V1), V1) |
isNat(s(V1)) | → | U21(isNatKind(V1), V1) | | isNatIList(V) | → | U31(isNatIListKind(V), V) |
isNatIList(zeros) | → | tt | | isNatIList(cons(V1, V2)) | → | U41(isNatKind(V1), V1, V2) |
isNatIListKind(nil) | → | tt | | isNatIListKind(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) | → | tt | | isNatList(cons(V1, V2)) | → | U81(isNatKind(V1), V1, V2) |
length(nil) | → | 0 | | length(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
- 0: 2
- U11(x,y): 0
- U12(x,y): 0
- U13(x): 0
- U21(x,y): 0
- U22(x,y): 0
- U23(x): 0
- U31(x,y): 0
- U32(x,y): 0
- U33(x): 0
- U41(x,y,z): 0
- U42(x,y,z): 0
- U43(x,y,z): 0
- U44(x,y,z): 0
- U45(x,y): 0
- U46(x): 0
- U51(x,y): 2y
- U51#(x,y): 2y + x
- U52(x): x
- U61(x): x
- U71(x): x + 1
- U81(x,y,z): 0
- U82(x,y,z): 0
- U83(x,y,z): 0
- U84(x,y,z): 0
- U85(x,y): 0
- U86(x): 0
- U91(x,y,z): 0
- U92(x,y,z): 0
- U93(x,y,z): 0
- U94(x,y): 0
- cons(x,y): 2y + x
- isNat(x): 0
- isNatIList(x): 0
- isNatIListKind(x): 2x
- isNatIListKind#(x): x + 1
- isNatKind(x): x
- isNatKind#(x): x
- isNatList(x): 0
- length(x): 2x + 2
- nil: 1
- s(x): x + 2
- tt: 2
- zeros: 1
Standard Usable rules
U61(tt) | → | tt | | isNatIListKind(nil) | → | tt |
U71(tt) | → | tt | | isNatKind(s(V1)) | → | U71(isNatKind(V1)) |
isNatKind(0) | → | tt | | isNatIListKind(cons(V1, V2)) | → | U51(isNatKind(V1), V2) |
U52(tt) | → | tt | | U51(tt, V2) | → | U52(isNatIListKind(V2)) |
isNatIListKind(zeros) | → | tt | | isNatKind(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) | → | tt | | U31(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) | → | tt | | U71(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) | → | tt | | isNat(length(V1)) | → | U11(isNatIListKind(V1), V1) |
isNat(s(V1)) | → | U21(isNatKind(V1), V1) | | isNatIList(V) | → | U31(isNatIListKind(V), V) |
isNatIList(zeros) | → | tt | | isNatIList(cons(V1, V2)) | → | U41(isNatKind(V1), V1, V2) |
isNatIListKind(nil) | → | tt | | isNatIListKind(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) | → | tt | | isNatList(cons(V1, V2)) | → | U81(isNatKind(V1), V1, V2) |
length(nil) | → | 0 | | length(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
- 0: 1
- U11(x,y): 2x
- U11#(x,y): 2y + x + 1
- U12(x,y): 1
- U12#(x,y): 2y
- U13(x): 1
- U21(x,y): 2y
- U21#(x,y): 2y
- U22(x,y): x
- U22#(x,y): 2y
- U23(x): 1
- U31(x,y): 0
- U32(x,y): 0
- U33(x): 0
- U41(x,y,z): 0
- U42(x,y,z): 0
- U43(x,y,z): 0
- U44(x,y,z): 0
- U45(x,y): 0
- U46(x): 0
- U51(x,y): x
- U52(x): 1
- U61(x): 2x
- U71(x): x
- U81(x,y,z): 2z + x
- U81#(x,y,z): 2z + 2y + 2x
- U82(x,y,z): 2z + 1
- U82#(x,y,z): 2z + 2y
- U83(x,y,z): 2z + 1
- U83#(x,y,z): 2z + 2y
- U84(x,y,z): 2z
- U84#(x,y,z): 2z + 2y
- U85(x,y): y
- U85#(x,y): 2y
- U86(x): x
- U91(x,y,z): 0
- U92(x,y,z): 0
- U93(x,y,z): 0
- U94(x,y): 0
- cons(x,y): 2y + 3x
- isNat(x): 2x
- isNat#(x): 2x
- isNatIList(x): 0
- isNatIListKind(x): 2x
- isNatKind(x): 2x
- isNatList(x): x
- isNatList#(x): 2x
- length(x): 2x + 1
- nil: 1
- s(x): x
- tt: 1
- zeros: 1
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) | → | tt | | isNat(0) | → | tt |
isNatList(nil) | → | tt | | U86(tt) | → | tt |
U71(tt) | → | tt | | U23(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) | → | tt | | isNatIListKind(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) | → | tt | | U31(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) | → | tt | | U71(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) | → | tt | | isNat(length(V1)) | → | U11(isNatIListKind(V1), V1) |
isNat(s(V1)) | → | U21(isNatKind(V1), V1) | | isNatIList(V) | → | U31(isNatIListKind(V), V) |
isNatIList(zeros) | → | tt | | isNatIList(cons(V1, V2)) | → | U41(isNatKind(V1), V1, V2) |
isNatIListKind(nil) | → | tt | | isNatIListKind(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) | → | tt | | isNatList(cons(V1, V2)) | → | U81(isNatKind(V1), V1, V2) |
length(nil) | → | 0 | | length(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) | → | tt | | U31(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) | → | tt | | U71(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) | → | tt | | isNat(length(V1)) | → | U11(isNatIListKind(V1), V1) |
isNat(s(V1)) | → | U21(isNatKind(V1), V1) | | isNatIList(V) | → | U31(isNatIListKind(V), V) |
isNatIList(zeros) | → | tt | | isNatIList(cons(V1, V2)) | → | U41(isNatKind(V1), V1, V2) |
isNatIListKind(nil) | → | tt | | isNatIListKind(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) | → | tt | | isNatList(cons(V1, V2)) | → | U81(isNatKind(V1), V1, V2) |
length(nil) | → | 0 | | length(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
- 0: 1
- U11(x,y): 0
- U12(x,y): 0
- U13(x): 0
- U21(x,y): 0
- U21#(x,y): 2y + 2
- U22(x,y): 0
- U22#(x,y): y + x + 1
- U23(x): 0
- U31(x,y): 0
- U32(x,y): 0
- U33(x): 0
- U41(x,y,z): 0
- U42(x,y,z): 0
- U43(x,y,z): 0
- U44(x,y,z): 0
- U45(x,y): 0
- U46(x): 0
- U51(x,y): x
- U52(x): 1
- U61(x): 3
- U71(x): 1
- U81(x,y,z): 0
- U82(x,y,z): 0
- U83(x,y,z): 0
- U84(x,y,z): 0
- U85(x,y): 0
- U86(x): 0
- U91(x,y,z): 0
- U92(x,y,z): 0
- U93(x,y,z): 0
- U94(x,y): 0
- cons(x,y): x
- isNat(x): 0
- isNat#(x): x + 1
- isNatIList(x): 0
- isNatIListKind(x): x
- isNatKind(x): x
- isNatList(x): 0
- length(x): 3
- nil: 2
- s(x): 2x + 1
- tt: 1
- zeros: 1
Standard Usable rules
U61(tt) | → | tt | | isNatIListKind(nil) | → | tt |
U71(tt) | → | tt | | isNatKind(s(V1)) | → | U71(isNatKind(V1)) |
isNatKind(0) | → | tt | | isNatIListKind(cons(V1, V2)) | → | U51(isNatKind(V1), V2) |
U52(tt) | → | tt | | U51(tt, V2) | → | U52(isNatIListKind(V2)) |
isNatIListKind(zeros) | → | tt | | isNatKind(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) | → | tt | | U31(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) | → | tt | | U71(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) | → | tt | | isNat(length(V1)) | → | U11(isNatIListKind(V1), V1) |
isNat(s(V1)) | → | U21(isNatKind(V1), V1) | | isNatIList(V) | → | U31(isNatIListKind(V), V) |
isNatIList(zeros) | → | tt | | isNatIList(cons(V1, V2)) | → | U41(isNatKind(V1), V1, V2) |
isNatIListKind(nil) | → | tt | | isNatIListKind(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) | → | tt | | isNatList(cons(V1, V2)) | → | U81(isNatKind(V1), V1, V2) |
length(nil) | → | 0 | | length(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) | → | tt | | U31(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) | → | tt | | U71(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) | → | tt | | isNat(length(V1)) | → | U11(isNatIListKind(V1), V1) |
isNat(s(V1)) | → | U21(isNatKind(V1), V1) | | isNatIList(V) | → | U31(isNatIListKind(V), V) |
isNatIList(zeros) | → | tt | | isNatIList(cons(V1, V2)) | → | U41(isNatKind(V1), V1, V2) |
isNatIListKind(nil) | → | tt | | isNatIListKind(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) | → | tt | | isNatList(cons(V1, V2)) | → | U81(isNatKind(V1), V1, V2) |
length(nil) | → | 0 | | length(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
- 0: 0
- U11(x,y): x
- U12(x,y): x
- U13(x): 2
- U21(x,y): 2
- U22(x,y): 2
- U23(x): 2
- U31(x,y): y
- U32(x,y): y
- U33(x): x
- U41(x,y,z): y + 2
- U42(x,y,z): x
- U43(x,y,z): x
- U44(x,y,z): 2
- U45(x,y): x
- U46(x): 2
- U51(x,y): x
- U52(x): x
- U61(x): 2
- U71(x): x
- U81(x,y,z): 2z
- U82(x,y,z): 2z
- U83(x,y,z): z
- U84(x,y,z): z
- U85(x,y): y
- U86(x): x
- U91(x,y,z): 0
- U91#(x,y,z): 3y + x
- U92(x,y,z): 0
- U92#(x,y,z): 2y + x
- U93(x,y,z): 0
- U93#(x,y,z): 2y
- U94(x,y): 0
- U94#(x,y): 2y
- cons(x,y): 2y + x
- isNat(x): 2
- isNatIList(x): 2x + 2
- isNatIListKind(x): 2
- isNatKind(x): 2
- isNatList(x): x
- length(x): 0
- length#(x): 2x
- nil: 2
- s(x): 0
- tt: 2
- zeros: 0
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) | → | tt | | U12(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) | → | tt | | U85(tt, V2) | → | U86(isNatList(V2)) |
U44(tt, V1, V2) | → | U45(isNat(V1), V2) | | isNatIList(zeros) | → | tt |
length(nil) | → | 0 | | U94(tt, L) | → | s(length(L)) |
U32(tt, V) | → | U33(isNatList(V)) | | isNat(0) | → | tt |
U61(tt) | → | tt | | U81(tt, V1, V2) | → | U82(isNatKind(V1), V1, V2) |
isNatList(nil) | → | tt | | U86(tt) | → | tt |
U23(tt) | → | tt | | zeros | → | cons(0, zeros) |
U71(tt) | → | tt | | U43(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) | → | tt | | U46(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) | → | tt | | U31(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) | → | tt | | U71(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) | → | tt | | isNat(length(V1)) | → | U11(isNatIListKind(V1), V1) |
isNat(s(V1)) | → | U21(isNatKind(V1), V1) | | isNatIList(V) | → | U31(isNatIListKind(V), V) |
isNatIList(zeros) | → | tt | | isNatIList(cons(V1, V2)) | → | U41(isNatKind(V1), V1, V2) |
isNatIListKind(nil) | → | tt | | isNatIListKind(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) | → | tt | | isNatList(cons(V1, V2)) | → | U81(isNatKind(V1), V1, V2) |
length(nil) | → | 0 | | length(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) | → | tt | | U31(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) | → | tt | | U71(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) | → | tt | | isNat(length(V1)) | → | U11(isNatIListKind(V1), V1) |
isNat(s(V1)) | → | U21(isNatKind(V1), V1) | | isNatIList(V) | → | U31(isNatIListKind(V), V) |
isNatIList(zeros) | → | tt | | isNatIList(cons(V1, V2)) | → | U41(isNatKind(V1), V1, V2) |
isNatIListKind(nil) | → | tt | | isNatIListKind(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) | → | tt | | isNatList(cons(V1, V2)) | → | U81(isNatKind(V1), V1, V2) |
length(nil) | → | 0 | | length(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
- 0: 0
- U11(x,y): y
- U12(x,y): 0
- U13(x): 0
- U21(x,y): x
- U22(x,y): 0
- U23(x): 0
- U31(x,y): 0
- U32(x,y): 0
- U33(x): 0
- U41(x,y,z): 0
- U41#(x,y,z): 3z + 2
- U42(x,y,z): 0
- U42#(x,y,z): 3z + 2
- U43(x,y,z): 0
- U43#(x,y,z): 3z + x
- U44(x,y,z): 0
- U44#(x,y,z): 3z
- U45(x,y): 0
- U45#(x,y): 3y
- U46(x): 0
- U51(x,y): 1
- U52(x): 0
- U61(x): 2
- U71(x): 1
- U81(x,y,z): 1
- U82(x,y,z): 1
- U83(x,y,z): 1
- U84(x,y,z): 0
- U85(x,y): 0
- U86(x): 0
- U91(x,y,z): 0
- U92(x,y,z): 0
- U93(x,y,z): 0
- U94(x,y): 0
- cons(x,y): 2y + 2x + 1
- isNat(x): 2x
- isNatIList(x): 0
- isNatIList#(x): 3x
- isNatIListKind(x): 2
- isNatKind(x): 2
- isNatList(x): 2x + 1
- length(x): 2x
- nil: 0
- s(x): 3x + 1
- tt: 0
- zeros: 3
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) | → | tt | | isNat(0) | → | tt |
isNatList(nil) | → | tt | | U86(tt) | → | tt |
U71(tt) | → | tt | | U23(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) | → | tt | | isNatIListKind(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) | → | tt | | U31(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) | → | tt | | U71(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) | → | tt | | isNat(length(V1)) | → | U11(isNatIListKind(V1), V1) |
isNat(s(V1)) | → | U21(isNatKind(V1), V1) | | isNatIList(V) | → | U31(isNatIListKind(V), V) |
isNatIList(zeros) | → | tt | | isNatIList(cons(V1, V2)) | → | U41(isNatKind(V1), V1, V2) |
isNatIListKind(nil) | → | tt | | isNatIListKind(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) | → | tt | | isNatList(cons(V1, V2)) | → | U81(isNatKind(V1), V1, V2) |
length(nil) | → | 0 | | length(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!