MAYBE Time: 2.741293 TRS: { a__zeros() -> cons(0(), zeros()), a__zeros() -> zeros(), a__U12 X -> U12 X, a__U12 tt() -> tt(), a__isNatList X -> isNatList X, a__isNatList cons(V1, V2) -> a__U51(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatList nil() -> tt(), a__isNatList take(V1, V2) -> a__U61(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__U11(X1, X2) -> U11(X1, X2), a__U11(tt(), V1) -> a__U12 a__isNatList V1, a__U22 X -> U22 X, a__U22 tt() -> tt(), a__isNat X -> isNat X, a__isNat 0() -> tt(), a__isNat s V1 -> a__U21(a__isNatKind V1, V1), a__isNat length V1 -> a__U11(a__isNatIListKind V1, V1), a__U21(X1, X2) -> U21(X1, X2), a__U21(tt(), V1) -> a__U22 a__isNat V1, a__U32 X -> U32 X, a__U32 tt() -> tt(), a__U31(X1, X2) -> U31(X1, X2), a__U31(tt(), V) -> a__U32 a__isNatList V, a__U42(X1, X2) -> U42(X1, X2), a__U42(tt(), V2) -> a__U43 a__isNatIList V2, a__U41(X1, X2, X3) -> U41(X1, X2, X3), a__U41(tt(), V1, V2) -> a__U42(a__isNat V1, V2), a__U43 X -> U43 X, a__U43 tt() -> tt(), a__isNatIList V -> a__U31(a__isNatIListKind V, V), a__isNatIList X -> isNatIList X, a__isNatIList cons(V1, V2) -> a__U41(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatIList zeros() -> tt(), a__U52(X1, X2) -> U52(X1, X2), a__U52(tt(), V2) -> a__U53 a__isNatList V2, a__U51(X1, X2, X3) -> U51(X1, X2, X3), a__U51(tt(), V1, V2) -> a__U52(a__isNat V1, V2), a__U53 X -> U53 X, a__U53 tt() -> tt(), a__U62(X1, X2) -> U62(X1, X2), a__U62(tt(), V2) -> a__U63 a__isNatIList V2, a__U61(X1, X2, X3) -> U61(X1, X2, X3), a__U61(tt(), V1, V2) -> a__U62(a__isNat V1, V2), a__U63 X -> U63 X, a__U63 tt() -> tt(), a__length X -> length X, a__length cons(N, L) -> a__U71(a__and(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), a__length nil() -> 0(), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark zeros() -> a__zeros(), mark tt() -> tt(), mark s X -> s mark X, mark nil() -> nil(), mark take(X1, X2) -> a__take(mark X1, mark X2), mark length X -> a__length mark X, mark isNatIListKind X -> a__isNatIListKind X, mark and(X1, X2) -> a__and(mark X1, X2), mark isNat X -> a__isNat X, mark isNatKind X -> a__isNatKind X, mark U11(X1, X2) -> a__U11(mark X1, X2), mark U12 X -> a__U12 mark X, mark isNatList X -> a__isNatList X, mark U21(X1, X2) -> a__U21(mark X1, X2), mark U22 X -> a__U22 mark X, mark U31(X1, X2) -> a__U31(mark X1, X2), mark U32 X -> a__U32 mark X, mark U41(X1, X2, X3) -> a__U41(mark X1, X2, X3), mark U42(X1, X2) -> a__U42(mark X1, X2), mark U43 X -> a__U43 mark X, mark isNatIList X -> a__isNatIList X, mark U51(X1, X2, X3) -> a__U51(mark X1, X2, X3), mark U52(X1, X2) -> a__U52(mark X1, X2), mark U53 X -> a__U53 mark X, mark U61(X1, X2, X3) -> a__U61(mark X1, X2, X3), mark U62(X1, X2) -> a__U62(mark X1, X2), mark U63 X -> a__U63 mark X, mark U71(X1, X2) -> a__U71(mark X1, X2), mark U81 X -> a__U81 mark X, mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4), a__U71(X1, X2) -> U71(X1, X2), a__U71(tt(), L) -> s a__length mark L, a__U81 X -> U81 X, a__U81 tt() -> nil(), a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4), a__U91(tt(), IL, M, N) -> cons(mark N, take(M, IL)), a__and(X1, X2) -> and(X1, X2), a__and(tt(), X) -> mark X, a__isNatIListKind X -> isNatIListKind X, a__isNatIListKind cons(V1, V2) -> a__and(a__isNatKind V1, isNatIListKind V2), a__isNatIListKind zeros() -> tt(), a__isNatIListKind nil() -> tt(), a__isNatIListKind take(V1, V2) -> a__and(a__isNatKind V1, isNatIListKind V2), a__isNatKind X -> isNatKind X, a__isNatKind 0() -> tt(), a__isNatKind s V1 -> a__isNatKind V1, a__isNatKind length V1 -> a__isNatIListKind V1, a__take(X1, X2) -> take(X1, X2), a__take(0(), IL) -> a__U81 a__and(a__isNatIList IL, isNatIListKind IL), a__take(s M, cons(N, IL)) -> a__U91(a__and(a__and(a__isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)} DP: DP: { a__isNatList# cons(V1, V2) -> a__U51#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatList# cons(V1, V2) -> a__isNatKind# V1, a__isNatList# take(V1, V2) -> a__U61#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatList# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatList# take(V1, V2) -> a__isNatKind# V1, a__U11#(tt(), V1) -> a__U12# a__isNatList V1, a__U11#(tt(), V1) -> a__isNatList# V1, a__isNat# s V1 -> a__U21#(a__isNatKind V1, V1), a__isNat# s V1 -> a__isNatKind# V1, a__isNat# length V1 -> a__U11#(a__isNatIListKind V1, V1), a__isNat# length V1 -> a__isNatIListKind# V1, a__U21#(tt(), V1) -> a__U22# a__isNat V1, a__U21#(tt(), V1) -> a__isNat# V1, a__U31#(tt(), V) -> a__isNatList# V, a__U31#(tt(), V) -> a__U32# a__isNatList V, a__U42#(tt(), V2) -> a__U43# a__isNatIList V2, a__U42#(tt(), V2) -> a__isNatIList# V2, a__U41#(tt(), V1, V2) -> a__isNat# V1, a__U41#(tt(), V1, V2) -> a__U42#(a__isNat V1, V2), a__isNatIList# V -> a__U31#(a__isNatIListKind V, V), a__isNatIList# V -> a__isNatIListKind# V, a__isNatIList# cons(V1, V2) -> a__U41#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatIList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatIList# cons(V1, V2) -> a__isNatKind# V1, a__U52#(tt(), V2) -> a__isNatList# V2, a__U52#(tt(), V2) -> a__U53# a__isNatList V2, a__U51#(tt(), V1, V2) -> a__isNat# V1, a__U51#(tt(), V1, V2) -> a__U52#(a__isNat V1, V2), a__U62#(tt(), V2) -> a__isNatIList# V2, a__U62#(tt(), V2) -> a__U63# a__isNatIList V2, a__U61#(tt(), V1, V2) -> a__isNat# V1, a__U61#(tt(), V1, V2) -> a__U62#(a__isNat V1, V2), a__length# cons(N, L) -> a__isNatList# L, a__length# cons(N, L) -> a__U71#(a__and(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), a__length# cons(N, L) -> a__and#(a__isNatList L, isNatIListKind L), a__length# cons(N, L) -> a__and#(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), mark# cons(X1, X2) -> mark# X1, mark# zeros() -> a__zeros#(), mark# s X -> mark# X, mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> a__take#(mark X1, mark X2), mark# length X -> a__length# mark X, mark# length X -> mark# X, mark# isNatIListKind X -> a__isNatIListKind# X, mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> a__and#(mark X1, X2), mark# isNat X -> a__isNat# X, mark# isNatKind X -> a__isNatKind# X, mark# U11(X1, X2) -> a__U11#(mark X1, X2), mark# U11(X1, X2) -> mark# X1, mark# U12 X -> a__U12# mark X, mark# U12 X -> mark# X, mark# isNatList X -> a__isNatList# X, mark# U21(X1, X2) -> a__U21#(mark X1, X2), mark# U21(X1, X2) -> mark# X1, mark# U22 X -> a__U22# mark X, mark# U22 X -> mark# X, mark# U31(X1, X2) -> a__U31#(mark X1, X2), mark# U31(X1, X2) -> mark# X1, mark# U32 X -> a__U32# mark X, mark# U32 X -> mark# X, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3), mark# U41(X1, X2, X3) -> mark# X1, mark# U42(X1, X2) -> a__U42#(mark X1, X2), mark# U42(X1, X2) -> mark# X1, mark# U43 X -> a__U43# mark X, mark# U43 X -> mark# X, mark# isNatIList X -> a__isNatIList# X, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3), mark# U51(X1, X2, X3) -> mark# X1, mark# U52(X1, X2) -> a__U52#(mark X1, X2), mark# U52(X1, X2) -> mark# X1, mark# U53 X -> a__U53# mark X, mark# U53 X -> mark# X, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3), mark# U61(X1, X2, X3) -> mark# X1, mark# U62(X1, X2) -> a__U62#(mark X1, X2), mark# U62(X1, X2) -> mark# X1, mark# U63 X -> a__U63# mark X, mark# U63 X -> mark# X, mark# U71(X1, X2) -> mark# X1, mark# U71(X1, X2) -> a__U71#(mark X1, X2), mark# U81 X -> mark# X, mark# U81 X -> a__U81# mark X, mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4), a__U71#(tt(), L) -> a__length# mark L, a__U71#(tt(), L) -> mark# L, a__U91#(tt(), IL, M, N) -> mark# N, a__and#(tt(), X) -> mark# X, a__isNatIListKind# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatIListKind# cons(V1, V2) -> a__isNatKind# V1, a__isNatIListKind# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatIListKind# take(V1, V2) -> a__isNatKind# V1, a__isNatKind# s V1 -> a__isNatKind# V1, a__isNatKind# length V1 -> a__isNatIListKind# V1, a__take#(0(), IL) -> a__isNatIList# IL, a__take#(0(), IL) -> a__U81# a__and(a__isNatIList IL, isNatIListKind IL), a__take#(0(), IL) -> a__and#(a__isNatIList IL, isNatIListKind IL), a__take#(s M, cons(N, IL)) -> a__isNatIList# IL, a__take#(s M, cons(N, IL)) -> a__U91#(a__and(a__and(a__isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), a__take#(s M, cons(N, IL)) -> a__and#(a__isNatIList IL, isNatIListKind IL), a__take#(s M, cons(N, IL)) -> a__and#(a__and(a__isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))} TRS: { a__zeros() -> cons(0(), zeros()), a__zeros() -> zeros(), a__U12 X -> U12 X, a__U12 tt() -> tt(), a__isNatList X -> isNatList X, a__isNatList cons(V1, V2) -> a__U51(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatList nil() -> tt(), a__isNatList take(V1, V2) -> a__U61(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__U11(X1, X2) -> U11(X1, X2), a__U11(tt(), V1) -> a__U12 a__isNatList V1, a__U22 X -> U22 X, a__U22 tt() -> tt(), a__isNat X -> isNat X, a__isNat 0() -> tt(), a__isNat s V1 -> a__U21(a__isNatKind V1, V1), a__isNat length V1 -> a__U11(a__isNatIListKind V1, V1), a__U21(X1, X2) -> U21(X1, X2), a__U21(tt(), V1) -> a__U22 a__isNat V1, a__U32 X -> U32 X, a__U32 tt() -> tt(), a__U31(X1, X2) -> U31(X1, X2), a__U31(tt(), V) -> a__U32 a__isNatList V, a__U42(X1, X2) -> U42(X1, X2), a__U42(tt(), V2) -> a__U43 a__isNatIList V2, a__U41(X1, X2, X3) -> U41(X1, X2, X3), a__U41(tt(), V1, V2) -> a__U42(a__isNat V1, V2), a__U43 X -> U43 X, a__U43 tt() -> tt(), a__isNatIList V -> a__U31(a__isNatIListKind V, V), a__isNatIList X -> isNatIList X, a__isNatIList cons(V1, V2) -> a__U41(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatIList zeros() -> tt(), a__U52(X1, X2) -> U52(X1, X2), a__U52(tt(), V2) -> a__U53 a__isNatList V2, a__U51(X1, X2, X3) -> U51(X1, X2, X3), a__U51(tt(), V1, V2) -> a__U52(a__isNat V1, V2), a__U53 X -> U53 X, a__U53 tt() -> tt(), a__U62(X1, X2) -> U62(X1, X2), a__U62(tt(), V2) -> a__U63 a__isNatIList V2, a__U61(X1, X2, X3) -> U61(X1, X2, X3), a__U61(tt(), V1, V2) -> a__U62(a__isNat V1, V2), a__U63 X -> U63 X, a__U63 tt() -> tt(), a__length X -> length X, a__length cons(N, L) -> a__U71(a__and(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), a__length nil() -> 0(), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark zeros() -> a__zeros(), mark tt() -> tt(), mark s X -> s mark X, mark nil() -> nil(), mark take(X1, X2) -> a__take(mark X1, mark X2), mark length X -> a__length mark X, mark isNatIListKind X -> a__isNatIListKind X, mark and(X1, X2) -> a__and(mark X1, X2), mark isNat X -> a__isNat X, mark isNatKind X -> a__isNatKind X, mark U11(X1, X2) -> a__U11(mark X1, X2), mark U12 X -> a__U12 mark X, mark isNatList X -> a__isNatList X, mark U21(X1, X2) -> a__U21(mark X1, X2), mark U22 X -> a__U22 mark X, mark U31(X1, X2) -> a__U31(mark X1, X2), mark U32 X -> a__U32 mark X, mark U41(X1, X2, X3) -> a__U41(mark X1, X2, X3), mark U42(X1, X2) -> a__U42(mark X1, X2), mark U43 X -> a__U43 mark X, mark isNatIList X -> a__isNatIList X, mark U51(X1, X2, X3) -> a__U51(mark X1, X2, X3), mark U52(X1, X2) -> a__U52(mark X1, X2), mark U53 X -> a__U53 mark X, mark U61(X1, X2, X3) -> a__U61(mark X1, X2, X3), mark U62(X1, X2) -> a__U62(mark X1, X2), mark U63 X -> a__U63 mark X, mark U71(X1, X2) -> a__U71(mark X1, X2), mark U81 X -> a__U81 mark X, mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4), a__U71(X1, X2) -> U71(X1, X2), a__U71(tt(), L) -> s a__length mark L, a__U81 X -> U81 X, a__U81 tt() -> nil(), a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4), a__U91(tt(), IL, M, N) -> cons(mark N, take(M, IL)), a__and(X1, X2) -> and(X1, X2), a__and(tt(), X) -> mark X, a__isNatIListKind X -> isNatIListKind X, a__isNatIListKind cons(V1, V2) -> a__and(a__isNatKind V1, isNatIListKind V2), a__isNatIListKind zeros() -> tt(), a__isNatIListKind nil() -> tt(), a__isNatIListKind take(V1, V2) -> a__and(a__isNatKind V1, isNatIListKind V2), a__isNatKind X -> isNatKind X, a__isNatKind 0() -> tt(), a__isNatKind s V1 -> a__isNatKind V1, a__isNatKind length V1 -> a__isNatIListKind V1, a__take(X1, X2) -> take(X1, X2), a__take(0(), IL) -> a__U81 a__and(a__isNatIList IL, isNatIListKind IL), a__take(s M, cons(N, IL)) -> a__U91(a__and(a__and(a__isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)} EDG: { (a__isNatList# cons(V1, V2) -> a__isNatKind# V1, a__isNatKind# length V1 -> a__isNatIListKind# V1) (a__isNatList# cons(V1, V2) -> a__isNatKind# V1, a__isNatKind# s V1 -> a__isNatKind# V1) (a__U11#(tt(), V1) -> a__isNatList# V1, a__isNatList# take(V1, V2) -> a__isNatKind# V1) (a__U11#(tt(), V1) -> a__isNatList# V1, a__isNatList# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2)) (a__U11#(tt(), V1) -> a__isNatList# V1, a__isNatList# take(V1, V2) -> a__U61#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2)) (a__U11#(tt(), V1) -> a__isNatList# V1, a__isNatList# cons(V1, V2) -> a__isNatKind# V1) (a__U11#(tt(), V1) -> a__isNatList# V1, a__isNatList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2)) (a__U11#(tt(), V1) -> a__isNatList# V1, a__isNatList# cons(V1, V2) -> a__U51#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2)) (a__isNat# length V1 -> a__isNatIListKind# V1, a__isNatIListKind# take(V1, V2) -> a__isNatKind# V1) (a__isNat# length V1 -> a__isNatIListKind# V1, a__isNatIListKind# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2)) (a__isNat# length V1 -> a__isNatIListKind# V1, a__isNatIListKind# cons(V1, V2) -> a__isNatKind# V1) (a__isNat# length V1 -> a__isNatIListKind# V1, a__isNatIListKind# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2)) (a__U41#(tt(), V1, V2) -> a__isNat# V1, a__isNat# length V1 -> a__isNatIListKind# V1) (a__U41#(tt(), V1, V2) -> a__isNat# V1, a__isNat# length V1 -> a__U11#(a__isNatIListKind V1, V1)) (a__U41#(tt(), V1, V2) -> a__isNat# V1, a__isNat# s V1 -> a__isNatKind# V1) (a__U41#(tt(), V1, V2) -> a__isNat# V1, a__isNat# s V1 -> a__U21#(a__isNatKind V1, V1)) (a__U51#(tt(), V1, V2) -> a__isNat# V1, a__isNat# length V1 -> a__isNatIListKind# V1) (a__U51#(tt(), V1, V2) -> a__isNat# V1, a__isNat# length V1 -> a__U11#(a__isNatIListKind V1, V1)) (a__U51#(tt(), V1, V2) -> a__isNat# V1, a__isNat# s V1 -> a__isNatKind# V1) (a__U51#(tt(), V1, V2) -> a__isNat# V1, a__isNat# s V1 -> a__U21#(a__isNatKind V1, V1)) (a__isNatIListKind# cons(V1, V2) -> a__isNatKind# V1, a__isNatKind# length V1 -> a__isNatIListKind# V1) (a__isNatIListKind# cons(V1, V2) -> a__isNatKind# V1, a__isNatKind# s V1 -> a__isNatKind# V1) (a__isNatKind# s V1 -> a__isNatKind# V1, a__isNatKind# length V1 -> a__isNatIListKind# V1) (a__isNatKind# s V1 -> a__isNatKind# V1, a__isNatKind# s V1 -> a__isNatKind# V1) (mark# U11(X1, X2) -> a__U11#(mark X1, X2), a__U11#(tt(), V1) -> a__isNatList# V1) (mark# U11(X1, X2) -> a__U11#(mark X1, X2), a__U11#(tt(), V1) -> a__U12# a__isNatList V1) (mark# U31(X1, X2) -> a__U31#(mark X1, X2), a__U31#(tt(), V) -> a__U32# a__isNatList V) (mark# U31(X1, X2) -> a__U31#(mark X1, X2), a__U31#(tt(), V) -> a__isNatList# V) (mark# U52(X1, X2) -> a__U52#(mark X1, X2), a__U52#(tt(), V2) -> a__U53# a__isNatList V2) (mark# U52(X1, X2) -> a__U52#(mark X1, X2), a__U52#(tt(), V2) -> a__isNatList# V2) (mark# U71(X1, X2) -> a__U71#(mark X1, X2), a__U71#(tt(), L) -> mark# L) (mark# U71(X1, X2) -> a__U71#(mark X1, X2), a__U71#(tt(), L) -> a__length# mark L) (a__isNatList# cons(V1, V2) -> a__U51#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__U51#(tt(), V1, V2) -> a__U52#(a__isNat V1, V2)) (a__isNatList# cons(V1, V2) -> a__U51#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__U51#(tt(), V1, V2) -> a__isNat# V1) (a__isNatIList# cons(V1, V2) -> a__U41#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__U41#(tt(), V1, V2) -> a__U42#(a__isNat V1, V2)) (a__isNatIList# cons(V1, V2) -> a__U41#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__U41#(tt(), V1, V2) -> a__isNat# V1) (a__take#(s M, cons(N, IL)) -> a__isNatIList# IL, a__isNatIList# cons(V1, V2) -> a__isNatKind# V1) (a__take#(s M, cons(N, IL)) -> a__isNatIList# IL, a__isNatIList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2)) (a__take#(s M, cons(N, IL)) -> a__isNatIList# IL, a__isNatIList# cons(V1, V2) -> a__U41#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2)) (a__take#(s M, cons(N, IL)) -> a__isNatIList# IL, a__isNatIList# V -> a__isNatIListKind# V) (a__take#(s M, cons(N, IL)) -> a__isNatIList# IL, a__isNatIList# V -> a__U31#(a__isNatIListKind V, V)) (a__U41#(tt(), V1, V2) -> a__U42#(a__isNat V1, V2), a__U42#(tt(), V2) -> a__isNatIList# V2) (a__U41#(tt(), V1, V2) -> a__U42#(a__isNat V1, V2), a__U42#(tt(), V2) -> a__U43# a__isNatIList V2) (a__U51#(tt(), V1, V2) -> a__U52#(a__isNat V1, V2), a__U52#(tt(), V2) -> a__U53# a__isNatList V2) (a__U51#(tt(), V1, V2) -> a__U52#(a__isNat V1, V2), a__U52#(tt(), V2) -> a__isNatList# V2) (mark# s X -> mark# X, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# s X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# s X -> mark# X, mark# U81 X -> a__U81# mark X) (mark# s X -> mark# X, mark# U81 X -> mark# X) (mark# s X -> mark# X, mark# U71(X1, X2) -> a__U71#(mark X1, X2)) (mark# s X -> mark# X, mark# U71(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# U63 X -> mark# X) (mark# s X -> mark# X, mark# U63 X -> a__U63# mark X) (mark# s X -> mark# X, mark# U62(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# U62(X1, X2) -> a__U62#(mark X1, X2)) (mark# s X -> mark# X, mark# U61(X1, X2, X3) -> mark# X1) (mark# s X -> mark# X, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3)) (mark# s X -> mark# X, mark# U53 X -> mark# X) (mark# s X -> mark# X, mark# U53 X -> a__U53# mark X) (mark# s X -> mark# X, mark# U52(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# U52(X1, X2) -> a__U52#(mark X1, X2)) (mark# s X -> mark# X, mark# U51(X1, X2, X3) -> mark# X1) (mark# s X -> mark# X, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3)) (mark# s X -> mark# X, mark# isNatIList X -> a__isNatIList# X) (mark# s X -> mark# X, mark# U43 X -> mark# X) (mark# s X -> mark# X, mark# U43 X -> a__U43# mark X) (mark# s X -> mark# X, mark# U42(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# U42(X1, X2) -> a__U42#(mark X1, X2)) (mark# s X -> mark# X, mark# U41(X1, X2, X3) -> mark# X1) (mark# s X -> mark# X, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3)) (mark# s X -> mark# X, mark# U32 X -> mark# X) (mark# s X -> mark# X, mark# U32 X -> a__U32# mark X) (mark# s X -> mark# X, mark# U31(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# U31(X1, X2) -> a__U31#(mark X1, X2)) (mark# s X -> mark# X, mark# U22 X -> mark# X) (mark# s X -> mark# X, mark# U22 X -> a__U22# mark X) (mark# s X -> mark# X, mark# U21(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# U21(X1, X2) -> a__U21#(mark X1, X2)) (mark# s X -> mark# X, mark# isNatList X -> a__isNatList# X) (mark# s X -> mark# X, mark# U12 X -> mark# X) (mark# s X -> mark# X, mark# U12 X -> a__U12# mark X) (mark# s X -> mark# X, mark# U11(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# U11(X1, X2) -> a__U11#(mark X1, X2)) (mark# s X -> mark# X, mark# isNatKind X -> a__isNatKind# X) (mark# s X -> mark# X, mark# isNat X -> a__isNat# X) (mark# s X -> mark# X, mark# and(X1, X2) -> a__and#(mark X1, X2)) (mark# s X -> mark# X, mark# and(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# isNatIListKind X -> a__isNatIListKind# X) (mark# s X -> mark# X, mark# length X -> mark# X) (mark# s X -> mark# X, mark# length X -> a__length# mark X) (mark# s X -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# s X -> mark# X, mark# take(X1, X2) -> mark# X2) (mark# s X -> mark# X, mark# take(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# s X -> mark# X) (mark# s X -> mark# X, mark# zeros() -> a__zeros#()) (mark# s X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# isNatIListKind X -> a__isNatIListKind# X, a__isNatIListKind# take(V1, V2) -> a__isNatKind# V1) (mark# isNatIListKind X -> a__isNatIListKind# X, a__isNatIListKind# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2)) (mark# isNatIListKind X -> a__isNatIListKind# X, a__isNatIListKind# cons(V1, V2) -> a__isNatKind# V1) (mark# isNatIListKind X -> a__isNatIListKind# X, a__isNatIListKind# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2)) (mark# isNatKind X -> a__isNatKind# X, a__isNatKind# length V1 -> a__isNatIListKind# V1) (mark# isNatKind X -> a__isNatKind# X, a__isNatKind# s V1 -> a__isNatKind# V1) (mark# isNatList X -> a__isNatList# X, a__isNatList# take(V1, V2) -> a__isNatKind# V1) (mark# isNatList X -> a__isNatList# X, a__isNatList# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2)) (mark# isNatList X -> a__isNatList# X, a__isNatList# take(V1, V2) -> a__U61#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2)) (mark# isNatList X -> a__isNatList# X, a__isNatList# cons(V1, V2) -> a__isNatKind# V1) (mark# isNatList X -> a__isNatList# X, a__isNatList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2)) (mark# isNatList X -> a__isNatList# X, a__isNatList# cons(V1, V2) -> a__U51#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2)) (mark# U32 X -> mark# X, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U32 X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U32 X -> mark# X, mark# U81 X -> a__U81# mark X) (mark# U32 X -> mark# X, mark# U81 X -> mark# X) (mark# U32 X -> mark# X, mark# U71(X1, X2) -> a__U71#(mark X1, X2)) (mark# U32 X -> mark# X, mark# U71(X1, X2) -> mark# X1) (mark# U32 X -> mark# X, mark# U63 X -> mark# X) (mark# U32 X -> mark# X, mark# U63 X -> a__U63# mark X) (mark# U32 X -> mark# X, mark# U62(X1, X2) -> mark# X1) (mark# U32 X -> mark# X, mark# U62(X1, X2) -> a__U62#(mark X1, X2)) (mark# U32 X -> mark# X, mark# U61(X1, X2, X3) -> mark# X1) (mark# U32 X -> mark# X, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3)) (mark# U32 X -> mark# X, mark# U53 X -> mark# X) (mark# U32 X -> mark# X, mark# U53 X -> a__U53# mark X) (mark# U32 X -> mark# X, mark# U52(X1, X2) -> mark# X1) (mark# U32 X -> mark# X, mark# U52(X1, X2) -> a__U52#(mark X1, X2)) (mark# U32 X -> mark# X, mark# U51(X1, X2, X3) -> mark# X1) (mark# U32 X -> mark# X, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3)) (mark# U32 X -> mark# X, mark# isNatIList X -> a__isNatIList# X) (mark# U32 X -> mark# X, mark# U43 X -> mark# X) (mark# U32 X -> mark# X, mark# U43 X -> a__U43# mark X) (mark# U32 X -> mark# X, mark# U42(X1, X2) -> mark# X1) (mark# U32 X -> mark# X, mark# U42(X1, X2) -> a__U42#(mark X1, X2)) (mark# U32 X -> mark# X, mark# U41(X1, X2, X3) -> mark# X1) (mark# U32 X -> mark# X, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3)) (mark# U32 X -> mark# X, mark# U32 X -> mark# X) (mark# U32 X -> mark# X, mark# U32 X -> a__U32# mark X) (mark# U32 X -> mark# X, mark# U31(X1, X2) -> mark# X1) (mark# U32 X -> mark# X, mark# U31(X1, X2) -> a__U31#(mark X1, X2)) (mark# U32 X -> mark# X, mark# U22 X -> mark# X) (mark# U32 X -> mark# X, mark# U22 X -> a__U22# mark X) (mark# U32 X -> mark# X, mark# U21(X1, X2) -> mark# X1) (mark# U32 X -> mark# X, mark# U21(X1, X2) -> a__U21#(mark X1, X2)) (mark# U32 X -> mark# X, mark# isNatList X -> a__isNatList# X) (mark# U32 X -> mark# X, mark# U12 X -> mark# X) (mark# U32 X -> mark# X, mark# U12 X -> a__U12# mark X) (mark# U32 X -> mark# X, mark# U11(X1, X2) -> mark# X1) (mark# U32 X -> mark# X, mark# U11(X1, X2) -> a__U11#(mark X1, X2)) (mark# U32 X -> mark# X, mark# isNatKind X -> a__isNatKind# X) (mark# U32 X -> mark# X, mark# isNat X -> a__isNat# X) (mark# U32 X -> mark# X, mark# and(X1, X2) -> a__and#(mark X1, X2)) (mark# U32 X -> mark# X, mark# and(X1, X2) -> mark# X1) (mark# U32 X -> mark# X, mark# isNatIListKind X -> a__isNatIListKind# X) (mark# U32 X -> mark# X, mark# length X -> mark# X) (mark# U32 X -> mark# X, mark# length X -> a__length# mark X) (mark# U32 X -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U32 X -> mark# X, mark# take(X1, X2) -> mark# X2) (mark# U32 X -> mark# X, mark# take(X1, X2) -> mark# X1) (mark# U32 X -> mark# X, mark# s X -> mark# X) (mark# U32 X -> mark# X, mark# zeros() -> a__zeros#()) (mark# U32 X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# isNatIList X -> a__isNatIList# X, a__isNatIList# cons(V1, V2) -> a__isNatKind# V1) (mark# isNatIList X -> a__isNatIList# X, a__isNatIList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2)) (mark# isNatIList X -> a__isNatIList# X, a__isNatIList# cons(V1, V2) -> a__U41#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2)) (mark# isNatIList X -> a__isNatIList# X, a__isNatIList# V -> a__isNatIListKind# V) (mark# isNatIList X -> a__isNatIList# X, a__isNatIList# V -> a__U31#(a__isNatIListKind V, V)) (mark# U63 X -> mark# X, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U63 X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U63 X -> mark# X, mark# U81 X -> a__U81# mark X) (mark# U63 X -> mark# X, mark# U81 X -> mark# X) (mark# U63 X -> mark# X, mark# U71(X1, X2) -> a__U71#(mark X1, X2)) (mark# U63 X -> mark# X, mark# U71(X1, X2) -> mark# X1) (mark# U63 X -> mark# X, mark# U63 X -> mark# X) (mark# U63 X -> mark# X, mark# U63 X -> a__U63# mark X) (mark# U63 X -> mark# X, mark# U62(X1, X2) -> mark# X1) (mark# U63 X -> mark# X, mark# U62(X1, X2) -> a__U62#(mark X1, X2)) (mark# U63 X -> mark# X, mark# U61(X1, X2, X3) -> mark# X1) (mark# U63 X -> mark# X, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3)) (mark# U63 X -> mark# X, mark# U53 X -> mark# X) (mark# U63 X -> mark# X, mark# U53 X -> a__U53# mark X) (mark# U63 X -> mark# X, mark# U52(X1, X2) -> mark# X1) (mark# U63 X -> mark# X, mark# U52(X1, X2) -> a__U52#(mark X1, X2)) (mark# U63 X -> mark# X, mark# U51(X1, X2, X3) -> mark# X1) (mark# U63 X -> mark# X, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3)) (mark# U63 X -> mark# X, mark# isNatIList X -> a__isNatIList# X) (mark# U63 X -> mark# X, mark# U43 X -> mark# X) (mark# U63 X -> mark# X, mark# U43 X -> a__U43# mark X) (mark# U63 X -> mark# X, mark# U42(X1, X2) -> mark# X1) (mark# U63 X -> mark# X, mark# U42(X1, X2) -> a__U42#(mark X1, X2)) (mark# U63 X -> mark# X, mark# U41(X1, X2, X3) -> mark# X1) (mark# U63 X -> mark# X, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3)) (mark# U63 X -> mark# X, mark# U32 X -> mark# X) (mark# U63 X -> mark# X, mark# U32 X -> a__U32# mark X) (mark# U63 X -> mark# X, mark# U31(X1, X2) -> mark# X1) (mark# U63 X -> mark# X, mark# U31(X1, X2) -> a__U31#(mark X1, X2)) (mark# U63 X -> mark# X, mark# U22 X -> mark# X) (mark# U63 X -> mark# X, mark# U22 X -> a__U22# mark X) (mark# U63 X -> mark# X, mark# U21(X1, X2) -> mark# X1) (mark# U63 X -> mark# X, mark# U21(X1, X2) -> a__U21#(mark X1, X2)) (mark# U63 X -> mark# X, mark# isNatList X -> a__isNatList# X) (mark# U63 X -> mark# X, mark# U12 X -> mark# X) (mark# U63 X -> mark# X, mark# U12 X -> a__U12# mark X) (mark# U63 X -> mark# X, mark# U11(X1, X2) -> mark# X1) (mark# U63 X -> mark# X, mark# U11(X1, X2) -> a__U11#(mark X1, X2)) (mark# U63 X -> mark# X, mark# isNatKind X -> a__isNatKind# X) (mark# U63 X -> mark# X, mark# isNat X -> a__isNat# X) (mark# U63 X -> mark# X, mark# and(X1, X2) -> a__and#(mark X1, X2)) (mark# U63 X -> mark# X, mark# and(X1, X2) -> mark# X1) (mark# U63 X -> mark# X, mark# isNatIListKind X -> a__isNatIListKind# X) (mark# U63 X -> mark# X, mark# length X -> mark# X) (mark# U63 X -> mark# X, mark# length X -> a__length# mark X) (mark# U63 X -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U63 X -> mark# X, mark# take(X1, X2) -> mark# X2) (mark# U63 X -> mark# X, mark# take(X1, X2) -> mark# X1) (mark# U63 X -> mark# X, mark# s X -> mark# X) (mark# U63 X -> mark# X, mark# zeros() -> a__zeros#()) (mark# U63 X -> mark# X, mark# cons(X1, X2) -> mark# X1) (a__and#(tt(), X) -> mark# X, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (a__and#(tt(), X) -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1) (a__and#(tt(), X) -> mark# X, mark# U81 X -> a__U81# mark X) (a__and#(tt(), X) -> mark# X, mark# U81 X -> mark# X) (a__and#(tt(), X) -> mark# X, mark# U71(X1, X2) -> a__U71#(mark X1, X2)) (a__and#(tt(), X) -> mark# X, mark# U71(X1, X2) -> mark# X1) (a__and#(tt(), X) -> mark# X, mark# U63 X -> mark# X) (a__and#(tt(), X) -> mark# X, mark# U63 X -> a__U63# mark X) (a__and#(tt(), X) -> mark# X, mark# U62(X1, X2) -> mark# X1) (a__and#(tt(), X) -> mark# X, mark# U62(X1, X2) -> a__U62#(mark X1, X2)) (a__and#(tt(), X) -> mark# X, mark# U61(X1, X2, X3) -> mark# X1) (a__and#(tt(), X) -> mark# X, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3)) (a__and#(tt(), X) -> mark# X, mark# U53 X -> mark# X) (a__and#(tt(), X) -> mark# X, mark# U53 X -> a__U53# mark X) (a__and#(tt(), X) -> mark# X, mark# U52(X1, X2) -> mark# X1) (a__and#(tt(), X) -> mark# X, mark# U52(X1, X2) -> a__U52#(mark X1, X2)) (a__and#(tt(), X) -> mark# X, mark# U51(X1, X2, X3) -> mark# X1) (a__and#(tt(), X) -> mark# X, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3)) (a__and#(tt(), X) -> mark# X, mark# isNatIList X -> a__isNatIList# X) (a__and#(tt(), X) -> mark# X, mark# U43 X -> mark# X) (a__and#(tt(), X) -> mark# X, mark# U43 X -> a__U43# mark X) (a__and#(tt(), X) -> mark# X, mark# U42(X1, X2) -> mark# X1) (a__and#(tt(), X) -> mark# X, mark# U42(X1, X2) -> a__U42#(mark X1, X2)) (a__and#(tt(), X) -> mark# X, mark# U41(X1, X2, X3) -> mark# X1) (a__and#(tt(), X) -> mark# X, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3)) (a__and#(tt(), X) -> mark# X, mark# U32 X -> mark# X) (a__and#(tt(), X) -> mark# X, mark# U32 X -> a__U32# mark X) (a__and#(tt(), X) -> mark# X, mark# U31(X1, X2) -> mark# X1) (a__and#(tt(), X) -> mark# X, mark# U31(X1, X2) -> a__U31#(mark X1, X2)) (a__and#(tt(), X) -> mark# X, mark# U22 X -> mark# X) (a__and#(tt(), X) -> mark# X, mark# U22 X -> a__U22# mark X) (a__and#(tt(), X) -> mark# X, mark# U21(X1, X2) -> mark# X1) (a__and#(tt(), X) -> mark# X, mark# U21(X1, X2) -> a__U21#(mark X1, X2)) (a__and#(tt(), X) -> mark# X, mark# isNatList X -> a__isNatList# X) (a__and#(tt(), X) -> mark# X, mark# U12 X -> mark# X) (a__and#(tt(), X) -> mark# X, mark# U12 X -> a__U12# mark X) (a__and#(tt(), X) -> mark# X, mark# U11(X1, X2) -> mark# X1) (a__and#(tt(), X) -> mark# X, mark# U11(X1, X2) -> a__U11#(mark X1, X2)) (a__and#(tt(), X) -> mark# X, mark# isNatKind X -> a__isNatKind# X) (a__and#(tt(), X) -> mark# X, mark# isNat X -> a__isNat# X) (a__and#(tt(), X) -> mark# X, mark# and(X1, X2) -> a__and#(mark X1, X2)) (a__and#(tt(), X) -> mark# X, mark# and(X1, X2) -> mark# X1) (a__and#(tt(), X) -> mark# X, mark# isNatIListKind X -> a__isNatIListKind# X) (a__and#(tt(), X) -> mark# X, mark# length X -> mark# X) (a__and#(tt(), X) -> mark# X, mark# length X -> a__length# mark X) (a__and#(tt(), X) -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (a__and#(tt(), X) -> mark# X, mark# take(X1, X2) -> mark# X2) (a__and#(tt(), X) -> mark# X, mark# take(X1, X2) -> mark# X1) (a__and#(tt(), X) -> mark# X, mark# s X -> mark# X) (a__and#(tt(), X) -> mark# X, mark# zeros() -> a__zeros#()) (a__and#(tt(), X) -> mark# X, mark# cons(X1, X2) -> mark# X1) (a__U42#(tt(), V2) -> a__isNatIList# V2, a__isNatIList# cons(V1, V2) -> a__isNatKind# V1) (a__U42#(tt(), V2) -> a__isNatIList# V2, a__isNatIList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2)) (a__U42#(tt(), V2) -> a__isNatIList# V2, a__isNatIList# cons(V1, V2) -> a__U41#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2)) (a__U42#(tt(), V2) -> a__isNatIList# V2, a__isNatIList# V -> a__isNatIListKind# V) (a__U42#(tt(), V2) -> a__isNatIList# V2, a__isNatIList# V -> a__U31#(a__isNatIListKind V, V)) (a__U62#(tt(), V2) -> a__isNatIList# V2, a__isNatIList# cons(V1, V2) -> a__isNatKind# V1) (a__U62#(tt(), V2) -> a__isNatIList# V2, a__isNatIList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2)) (a__U62#(tt(), V2) -> a__isNatIList# V2, a__isNatIList# cons(V1, V2) -> a__U41#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2)) (a__U62#(tt(), V2) -> a__isNatIList# V2, a__isNatIList# V -> a__isNatIListKind# V) (a__U62#(tt(), V2) -> a__isNatIList# V2, a__isNatIList# V -> a__U31#(a__isNatIListKind V, V)) (mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3), a__U41#(tt(), V1, V2) -> a__U42#(a__isNat V1, V2)) (mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3), a__U41#(tt(), V1, V2) -> a__isNat# V1) (mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3), a__U61#(tt(), V1, V2) -> a__U62#(a__isNat V1, V2)) (mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3), a__U61#(tt(), V1, V2) -> a__isNat# V1) (mark# length X -> a__length# mark X, a__length# cons(N, L) -> a__and#(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N))) (mark# length X -> a__length# mark X, a__length# cons(N, L) -> a__and#(a__isNatList L, isNatIListKind L)) (mark# length X -> a__length# mark X, a__length# cons(N, L) -> a__U71#(a__and(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L)) (mark# length X -> a__length# mark X, a__length# cons(N, L) -> a__isNatList# L) (a__U71#(tt(), L) -> a__length# mark L, a__length# cons(N, L) -> a__and#(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N))) (a__U71#(tt(), L) -> a__length# mark L, a__length# cons(N, L) -> a__and#(a__isNatList L, isNatIListKind L)) (a__U71#(tt(), L) -> a__length# mark L, a__length# cons(N, L) -> a__U71#(a__and(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L)) (a__U71#(tt(), L) -> a__length# mark L, a__length# cons(N, L) -> a__isNatList# L) (mark# take(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# take(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# take(X1, X2) -> mark# X1, mark# U81 X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# U71(X1, X2) -> a__U71#(mark X1, X2)) (mark# take(X1, X2) -> mark# X1, mark# U71(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# U63 X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# U63 X -> a__U63# mark X) (mark# take(X1, X2) -> mark# X1, mark# U62(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# U62(X1, X2) -> a__U62#(mark X1, X2)) (mark# take(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3)) (mark# take(X1, X2) -> mark# X1, mark# U53 X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# U53 X -> a__U53# mark X) (mark# take(X1, X2) -> mark# X1, mark# U52(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# U52(X1, X2) -> a__U52#(mark X1, X2)) (mark# take(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3)) (mark# take(X1, X2) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# take(X1, X2) -> mark# X1, mark# U43 X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# U43 X -> a__U43# mark X) (mark# take(X1, X2) -> mark# X1, mark# U42(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# U42(X1, X2) -> a__U42#(mark X1, X2)) (mark# take(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3)) (mark# take(X1, X2) -> mark# X1, mark# U32 X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# U32 X -> a__U32# mark X) (mark# take(X1, X2) -> mark# X1, mark# U31(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# U31(X1, X2) -> a__U31#(mark X1, X2)) (mark# take(X1, X2) -> mark# X1, mark# U22 X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# U22 X -> a__U22# mark X) (mark# take(X1, X2) -> mark# X1, mark# U21(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# U21(X1, X2) -> a__U21#(mark X1, X2)) (mark# take(X1, X2) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# take(X1, X2) -> mark# X1, mark# U12 X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# U12 X -> a__U12# mark X) (mark# take(X1, X2) -> mark# X1, mark# U11(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# U11(X1, X2) -> a__U11#(mark X1, X2)) (mark# take(X1, X2) -> mark# X1, mark# isNatKind X -> a__isNatKind# X) (mark# take(X1, X2) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# take(X1, X2) -> mark# X1, mark# and(X1, X2) -> a__and#(mark X1, X2)) (mark# take(X1, X2) -> mark# X1, mark# and(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# isNatIListKind X -> a__isNatIListKind# X) (mark# take(X1, X2) -> mark# X1, mark# length X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# length X -> a__length# mark X) (mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# take(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# U11(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U11(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U11(X1, X2) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# U11(X1, X2) -> mark# X1, mark# U81 X -> mark# X) (mark# U11(X1, X2) -> mark# X1, mark# U71(X1, X2) -> a__U71#(mark X1, X2)) (mark# U11(X1, X2) -> mark# X1, mark# U71(X1, X2) -> mark# X1) (mark# U11(X1, X2) -> mark# X1, mark# U63 X -> mark# X) (mark# U11(X1, X2) -> mark# X1, mark# U63 X -> a__U63# mark X) (mark# U11(X1, X2) -> mark# X1, mark# U62(X1, X2) -> mark# X1) (mark# U11(X1, X2) -> mark# X1, mark# U62(X1, X2) -> a__U62#(mark X1, X2)) (mark# U11(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> mark# X1) (mark# U11(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3)) (mark# U11(X1, X2) -> mark# X1, mark# U53 X -> mark# X) (mark# U11(X1, X2) -> mark# X1, mark# U53 X -> a__U53# mark X) (mark# U11(X1, X2) -> mark# X1, mark# U52(X1, X2) -> mark# X1) (mark# U11(X1, X2) -> mark# X1, mark# U52(X1, X2) -> a__U52#(mark X1, X2)) (mark# U11(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> mark# X1) (mark# U11(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3)) (mark# U11(X1, X2) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# U11(X1, X2) -> mark# X1, mark# U43 X -> mark# X) (mark# U11(X1, X2) -> mark# X1, mark# U43 X -> a__U43# mark X) (mark# U11(X1, X2) -> mark# X1, mark# U42(X1, X2) -> mark# X1) (mark# U11(X1, X2) -> mark# X1, mark# U42(X1, X2) -> a__U42#(mark X1, X2)) (mark# U11(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1) (mark# U11(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3)) (mark# U11(X1, X2) -> mark# X1, mark# U32 X -> mark# X) (mark# U11(X1, X2) -> mark# X1, mark# U32 X -> a__U32# mark X) (mark# U11(X1, X2) -> mark# X1, mark# U31(X1, X2) -> mark# X1) (mark# U11(X1, X2) -> mark# X1, mark# U31(X1, X2) -> a__U31#(mark X1, X2)) (mark# U11(X1, X2) -> mark# X1, mark# U22 X -> mark# X) (mark# U11(X1, X2) -> mark# X1, mark# U22 X -> a__U22# mark X) (mark# U11(X1, X2) -> mark# X1, mark# U21(X1, X2) -> mark# X1) (mark# U11(X1, X2) -> mark# X1, mark# U21(X1, X2) -> a__U21#(mark X1, X2)) (mark# U11(X1, X2) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# U11(X1, X2) -> mark# X1, mark# U12 X -> mark# X) (mark# U11(X1, X2) -> mark# X1, mark# U12 X -> a__U12# mark X) (mark# U11(X1, X2) -> mark# X1, mark# U11(X1, X2) -> mark# X1) (mark# U11(X1, X2) -> mark# X1, mark# U11(X1, X2) -> a__U11#(mark X1, X2)) (mark# U11(X1, X2) -> mark# X1, mark# isNatKind X -> a__isNatKind# X) (mark# U11(X1, X2) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# U11(X1, X2) -> mark# X1, mark# and(X1, X2) -> a__and#(mark X1, X2)) (mark# U11(X1, X2) -> mark# X1, mark# and(X1, X2) -> mark# X1) (mark# U11(X1, X2) -> mark# X1, mark# isNatIListKind X -> a__isNatIListKind# X) (mark# U11(X1, X2) -> mark# X1, mark# length X -> mark# X) (mark# U11(X1, X2) -> mark# X1, mark# length X -> a__length# mark X) (mark# U11(X1, X2) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U11(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# U11(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# U11(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# U11(X1, X2) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# U11(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# U31(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U31(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U31(X1, X2) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# U31(X1, X2) -> mark# X1, mark# U81 X -> mark# X) (mark# U31(X1, X2) -> mark# X1, mark# U71(X1, X2) -> a__U71#(mark X1, X2)) (mark# U31(X1, X2) -> mark# X1, mark# U71(X1, X2) -> mark# X1) (mark# U31(X1, X2) -> mark# X1, mark# U63 X -> mark# X) (mark# U31(X1, X2) -> mark# X1, mark# U63 X -> a__U63# mark X) (mark# U31(X1, X2) -> mark# X1, mark# U62(X1, X2) -> mark# X1) (mark# U31(X1, X2) -> mark# X1, mark# U62(X1, X2) -> a__U62#(mark X1, X2)) (mark# U31(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> mark# X1) (mark# U31(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3)) (mark# U31(X1, X2) -> mark# X1, mark# U53 X -> mark# X) (mark# U31(X1, X2) -> mark# X1, mark# U53 X -> a__U53# mark X) (mark# U31(X1, X2) -> mark# X1, mark# U52(X1, X2) -> mark# X1) (mark# U31(X1, X2) -> mark# X1, mark# U52(X1, X2) -> a__U52#(mark X1, X2)) (mark# U31(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> mark# X1) (mark# U31(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3)) (mark# U31(X1, X2) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# U31(X1, X2) -> mark# X1, mark# U43 X -> mark# X) (mark# U31(X1, X2) -> mark# X1, mark# U43 X -> a__U43# mark X) (mark# U31(X1, X2) -> mark# X1, mark# U42(X1, X2) -> mark# X1) (mark# U31(X1, X2) -> mark# X1, mark# U42(X1, X2) -> a__U42#(mark X1, X2)) (mark# U31(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1) (mark# U31(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3)) (mark# U31(X1, X2) -> mark# X1, mark# U32 X -> mark# X) (mark# U31(X1, X2) -> mark# X1, mark# U32 X -> a__U32# mark X) (mark# U31(X1, X2) -> mark# X1, mark# U31(X1, X2) -> mark# X1) (mark# U31(X1, X2) -> mark# X1, mark# U31(X1, X2) -> a__U31#(mark X1, X2)) (mark# U31(X1, X2) -> mark# X1, mark# U22 X -> mark# X) (mark# U31(X1, X2) -> mark# X1, mark# U22 X -> a__U22# mark X) (mark# U31(X1, X2) -> mark# X1, mark# U21(X1, X2) -> mark# X1) (mark# U31(X1, X2) -> mark# X1, mark# U21(X1, X2) -> a__U21#(mark X1, X2)) (mark# U31(X1, X2) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# U31(X1, X2) -> mark# X1, mark# U12 X -> mark# X) (mark# U31(X1, X2) -> mark# X1, mark# U12 X -> a__U12# mark X) (mark# U31(X1, X2) -> mark# X1, mark# U11(X1, X2) -> mark# X1) (mark# U31(X1, X2) -> mark# X1, mark# U11(X1, X2) -> a__U11#(mark X1, X2)) (mark# U31(X1, X2) -> mark# X1, mark# isNatKind X -> a__isNatKind# X) (mark# U31(X1, X2) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# U31(X1, X2) -> mark# X1, mark# and(X1, X2) -> a__and#(mark X1, X2)) (mark# U31(X1, X2) -> mark# X1, mark# and(X1, X2) -> mark# X1) (mark# U31(X1, X2) -> mark# X1, mark# isNatIListKind X -> a__isNatIListKind# X) (mark# U31(X1, X2) -> mark# X1, mark# length X -> mark# X) (mark# U31(X1, X2) -> mark# X1, mark# length X -> a__length# mark X) (mark# U31(X1, X2) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U31(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# U31(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# U31(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# U31(X1, X2) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# U31(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# U42(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U42(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U42(X1, X2) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# U42(X1, X2) -> mark# X1, mark# U81 X -> mark# X) (mark# U42(X1, X2) -> mark# X1, mark# U71(X1, X2) -> a__U71#(mark X1, X2)) (mark# U42(X1, X2) -> mark# X1, mark# U71(X1, X2) -> mark# X1) (mark# U42(X1, X2) -> mark# X1, mark# U63 X -> mark# X) (mark# U42(X1, X2) -> mark# X1, mark# U63 X -> a__U63# mark X) (mark# U42(X1, X2) -> mark# X1, mark# U62(X1, X2) -> mark# X1) (mark# U42(X1, X2) -> mark# X1, mark# U62(X1, X2) -> a__U62#(mark X1, X2)) (mark# U42(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> mark# X1) (mark# U42(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3)) (mark# U42(X1, X2) -> mark# X1, mark# U53 X -> mark# X) (mark# U42(X1, X2) -> mark# X1, mark# U53 X -> a__U53# mark X) (mark# U42(X1, X2) -> mark# X1, mark# U52(X1, X2) -> mark# X1) (mark# U42(X1, X2) -> mark# X1, mark# U52(X1, X2) -> a__U52#(mark X1, X2)) (mark# U42(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> mark# X1) (mark# U42(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3)) (mark# U42(X1, X2) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# U42(X1, X2) -> mark# X1, mark# U43 X -> mark# X) (mark# U42(X1, X2) -> mark# X1, mark# U43 X -> a__U43# mark X) (mark# U42(X1, X2) -> mark# X1, mark# U42(X1, X2) -> mark# X1) (mark# U42(X1, X2) -> mark# X1, mark# U42(X1, X2) -> a__U42#(mark X1, X2)) (mark# U42(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1) (mark# U42(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3)) (mark# U42(X1, X2) -> mark# X1, mark# U32 X -> mark# X) (mark# U42(X1, X2) -> mark# X1, mark# U32 X -> a__U32# mark X) (mark# U42(X1, X2) -> mark# X1, mark# U31(X1, X2) -> mark# X1) (mark# U42(X1, X2) -> mark# X1, mark# U31(X1, X2) -> a__U31#(mark X1, X2)) (mark# U42(X1, X2) -> mark# X1, mark# U22 X -> mark# X) (mark# U42(X1, X2) -> mark# X1, mark# U22 X -> a__U22# mark X) (mark# U42(X1, X2) -> mark# X1, mark# U21(X1, X2) -> mark# X1) (mark# U42(X1, X2) -> mark# X1, mark# U21(X1, X2) -> a__U21#(mark X1, X2)) (mark# U42(X1, X2) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# U42(X1, X2) -> mark# X1, mark# U12 X -> mark# X) (mark# U42(X1, X2) -> mark# X1, mark# U12 X -> a__U12# mark X) (mark# U42(X1, X2) -> mark# X1, mark# U11(X1, X2) -> mark# X1) (mark# U42(X1, X2) -> mark# X1, mark# U11(X1, X2) -> a__U11#(mark X1, X2)) (mark# U42(X1, X2) -> mark# X1, mark# isNatKind X -> a__isNatKind# X) (mark# U42(X1, X2) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# U42(X1, X2) -> mark# X1, mark# and(X1, X2) -> a__and#(mark X1, X2)) (mark# U42(X1, X2) -> mark# X1, mark# and(X1, X2) -> mark# X1) (mark# U42(X1, X2) -> mark# X1, mark# isNatIListKind X -> a__isNatIListKind# X) (mark# U42(X1, X2) -> mark# X1, mark# length X -> mark# X) (mark# U42(X1, X2) -> mark# X1, mark# length X -> a__length# mark X) (mark# U42(X1, X2) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U42(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# U42(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# U42(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# U42(X1, X2) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# U42(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# U52(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U52(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U52(X1, X2) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# U52(X1, X2) -> mark# X1, mark# U81 X -> mark# X) (mark# U52(X1, X2) -> mark# X1, mark# U71(X1, X2) -> a__U71#(mark X1, X2)) (mark# U52(X1, X2) -> mark# X1, mark# U71(X1, X2) -> mark# X1) (mark# U52(X1, X2) -> mark# X1, mark# U63 X -> mark# X) (mark# U52(X1, X2) -> mark# X1, mark# U63 X -> a__U63# mark X) (mark# U52(X1, X2) -> mark# X1, mark# U62(X1, X2) -> mark# X1) (mark# U52(X1, X2) -> mark# X1, mark# U62(X1, X2) -> a__U62#(mark X1, X2)) (mark# U52(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> mark# X1) (mark# U52(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3)) (mark# U52(X1, X2) -> mark# X1, mark# U53 X -> mark# X) (mark# U52(X1, X2) -> mark# X1, mark# U53 X -> a__U53# mark X) (mark# U52(X1, X2) -> mark# X1, mark# U52(X1, X2) -> mark# X1) (mark# U52(X1, X2) -> mark# X1, mark# U52(X1, X2) -> a__U52#(mark X1, X2)) (mark# U52(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> mark# X1) (mark# U52(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3)) (mark# U52(X1, X2) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# U52(X1, X2) -> mark# X1, mark# U43 X -> mark# X) (mark# U52(X1, X2) -> mark# X1, mark# U43 X -> a__U43# mark X) (mark# U52(X1, X2) -> mark# X1, mark# U42(X1, X2) -> mark# X1) (mark# U52(X1, X2) -> mark# X1, mark# U42(X1, X2) -> a__U42#(mark X1, X2)) (mark# U52(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1) (mark# U52(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3)) (mark# U52(X1, X2) -> mark# X1, mark# U32 X -> mark# X) (mark# U52(X1, X2) -> mark# X1, mark# U32 X -> a__U32# mark X) (mark# U52(X1, X2) -> mark# X1, mark# U31(X1, X2) -> mark# X1) (mark# U52(X1, X2) -> mark# X1, mark# U31(X1, X2) -> a__U31#(mark X1, X2)) (mark# U52(X1, X2) -> mark# X1, mark# U22 X -> mark# X) (mark# U52(X1, X2) -> mark# X1, mark# U22 X -> a__U22# mark X) (mark# U52(X1, X2) -> mark# X1, mark# U21(X1, X2) -> mark# X1) (mark# U52(X1, X2) -> mark# X1, mark# U21(X1, X2) -> a__U21#(mark X1, X2)) (mark# U52(X1, X2) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# U52(X1, X2) -> mark# X1, mark# U12 X -> mark# X) (mark# U52(X1, X2) -> mark# X1, mark# U12 X -> a__U12# mark X) (mark# U52(X1, X2) -> mark# X1, mark# U11(X1, X2) -> mark# X1) (mark# U52(X1, X2) -> mark# X1, mark# U11(X1, X2) -> a__U11#(mark X1, X2)) (mark# U52(X1, X2) -> mark# X1, mark# isNatKind X -> a__isNatKind# X) (mark# U52(X1, X2) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# U52(X1, X2) -> mark# X1, mark# and(X1, X2) -> a__and#(mark X1, X2)) (mark# U52(X1, X2) -> mark# X1, mark# and(X1, X2) -> mark# X1) (mark# U52(X1, X2) -> mark# X1, mark# isNatIListKind X -> a__isNatIListKind# X) (mark# U52(X1, X2) -> mark# X1, mark# length X -> mark# X) (mark# U52(X1, X2) -> mark# X1, mark# length X -> a__length# mark X) (mark# U52(X1, X2) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U52(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# U52(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# U52(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# U52(X1, X2) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# U52(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# U62(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U62(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U62(X1, X2) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# U62(X1, X2) -> mark# X1, mark# U81 X -> mark# X) (mark# U62(X1, X2) -> mark# X1, mark# U71(X1, X2) -> a__U71#(mark X1, X2)) (mark# U62(X1, X2) -> mark# X1, mark# U71(X1, X2) -> mark# X1) (mark# U62(X1, X2) -> mark# X1, mark# U63 X -> mark# X) (mark# U62(X1, X2) -> mark# X1, mark# U63 X -> a__U63# mark X) (mark# U62(X1, X2) -> mark# X1, mark# U62(X1, X2) -> mark# X1) (mark# U62(X1, X2) -> mark# X1, mark# U62(X1, X2) -> a__U62#(mark X1, X2)) (mark# U62(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> mark# X1) (mark# U62(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3)) (mark# U62(X1, X2) -> mark# X1, mark# U53 X -> mark# X) (mark# U62(X1, X2) -> mark# X1, mark# U53 X -> a__U53# mark X) (mark# U62(X1, X2) -> mark# X1, mark# U52(X1, X2) -> mark# X1) (mark# U62(X1, X2) -> mark# X1, mark# U52(X1, X2) -> a__U52#(mark X1, X2)) (mark# U62(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> mark# X1) (mark# U62(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3)) (mark# U62(X1, X2) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# U62(X1, X2) -> mark# X1, mark# U43 X -> mark# X) (mark# U62(X1, X2) -> mark# X1, mark# U43 X -> a__U43# mark X) (mark# U62(X1, X2) -> mark# X1, mark# U42(X1, X2) -> mark# X1) (mark# U62(X1, X2) -> mark# X1, mark# U42(X1, X2) -> a__U42#(mark X1, X2)) (mark# U62(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1) (mark# U62(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3)) (mark# U62(X1, X2) -> mark# X1, mark# U32 X -> mark# X) (mark# U62(X1, X2) -> mark# X1, mark# U32 X -> a__U32# mark X) (mark# U62(X1, X2) -> mark# X1, mark# U31(X1, X2) -> mark# X1) (mark# U62(X1, X2) -> mark# X1, mark# U31(X1, X2) -> a__U31#(mark X1, X2)) (mark# U62(X1, X2) -> mark# X1, mark# U22 X -> mark# X) (mark# U62(X1, X2) -> mark# X1, mark# U22 X -> a__U22# mark X) (mark# U62(X1, X2) -> mark# X1, mark# U21(X1, X2) -> mark# X1) (mark# U62(X1, X2) -> mark# X1, mark# U21(X1, X2) -> a__U21#(mark X1, X2)) (mark# U62(X1, X2) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# U62(X1, X2) -> mark# X1, mark# U12 X -> mark# X) (mark# U62(X1, X2) -> mark# X1, mark# U12 X -> a__U12# mark X) (mark# U62(X1, X2) -> mark# X1, mark# U11(X1, X2) -> mark# X1) (mark# U62(X1, X2) -> mark# X1, mark# U11(X1, X2) -> a__U11#(mark X1, X2)) (mark# U62(X1, X2) -> mark# X1, mark# isNatKind X -> a__isNatKind# X) (mark# U62(X1, X2) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# U62(X1, X2) -> mark# X1, mark# and(X1, X2) -> a__and#(mark X1, X2)) (mark# U62(X1, X2) -> mark# X1, mark# and(X1, X2) -> mark# X1) (mark# U62(X1, X2) -> mark# X1, mark# isNatIListKind X -> a__isNatIListKind# X) (mark# U62(X1, X2) -> mark# X1, mark# length X -> mark# X) (mark# U62(X1, X2) -> mark# X1, mark# length X -> a__length# mark X) (mark# U62(X1, X2) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U62(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# U62(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# U62(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# U62(X1, X2) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# U62(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U81 X -> mark# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U71(X1, X2) -> a__U71#(mark X1, X2)) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U71(X1, X2) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U63 X -> mark# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U63 X -> a__U63# mark X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U62(X1, X2) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U62(X1, X2) -> a__U62#(mark X1, X2)) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U61(X1, X2, X3) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3)) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U53 X -> mark# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U53 X -> a__U53# mark X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U52(X1, X2) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U52(X1, X2) -> a__U52#(mark X1, X2)) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U51(X1, X2, X3) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3)) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U43 X -> mark# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U43 X -> a__U43# mark X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U42(X1, X2) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U42(X1, X2) -> a__U42#(mark X1, X2)) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3)) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U32 X -> mark# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U32 X -> a__U32# mark X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U31(X1, X2) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U31(X1, X2) -> a__U31#(mark X1, X2)) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U22 X -> mark# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U22 X -> a__U22# mark X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U21(X1, X2) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U21(X1, X2) -> a__U21#(mark X1, X2)) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U12 X -> mark# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U12 X -> a__U12# mark X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U11(X1, X2) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U11(X1, X2) -> a__U11#(mark X1, X2)) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# isNatKind X -> a__isNatKind# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# and(X1, X2) -> a__and#(mark X1, X2)) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# and(X1, X2) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# isNatIListKind X -> a__isNatIListKind# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# length X -> mark# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# length X -> a__length# mark X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# s X -> mark# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (a__U71#(tt(), L) -> mark# L, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (a__U71#(tt(), L) -> mark# L, mark# U91(X1, X2, X3, X4) -> mark# X1) (a__U71#(tt(), L) -> mark# L, mark# U81 X -> a__U81# mark X) (a__U71#(tt(), L) -> mark# L, mark# U81 X -> mark# X) (a__U71#(tt(), L) -> mark# L, mark# U71(X1, X2) -> a__U71#(mark X1, X2)) (a__U71#(tt(), L) -> mark# L, mark# U71(X1, X2) -> mark# X1) (a__U71#(tt(), L) -> mark# L, mark# U63 X -> mark# X) (a__U71#(tt(), L) -> mark# L, mark# U63 X -> a__U63# mark X) (a__U71#(tt(), L) -> mark# L, mark# U62(X1, X2) -> mark# X1) (a__U71#(tt(), L) -> mark# L, mark# U62(X1, X2) -> a__U62#(mark X1, X2)) (a__U71#(tt(), L) -> mark# L, mark# U61(X1, X2, X3) -> mark# X1) (a__U71#(tt(), L) -> mark# L, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3)) (a__U71#(tt(), L) -> mark# L, mark# U53 X -> mark# X) (a__U71#(tt(), L) -> mark# L, mark# U53 X -> a__U53# mark X) (a__U71#(tt(), L) -> mark# L, mark# U52(X1, X2) -> mark# X1) (a__U71#(tt(), L) -> mark# L, mark# U52(X1, X2) -> a__U52#(mark X1, X2)) (a__U71#(tt(), L) -> mark# L, mark# U51(X1, X2, X3) -> mark# X1) (a__U71#(tt(), L) -> mark# L, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3)) (a__U71#(tt(), L) -> mark# L, mark# isNatIList X -> a__isNatIList# X) (a__U71#(tt(), L) -> mark# L, mark# U43 X -> mark# X) (a__U71#(tt(), L) -> mark# L, mark# U43 X -> a__U43# mark X) (a__U71#(tt(), L) -> mark# L, mark# U42(X1, X2) -> mark# X1) (a__U71#(tt(), L) -> mark# L, mark# U42(X1, X2) -> a__U42#(mark X1, X2)) (a__U71#(tt(), L) -> mark# L, mark# U41(X1, X2, X3) -> mark# X1) (a__U71#(tt(), L) -> mark# L, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3)) (a__U71#(tt(), L) -> mark# L, mark# U32 X -> mark# X) (a__U71#(tt(), L) -> mark# L, mark# U32 X -> a__U32# mark X) (a__U71#(tt(), L) -> mark# L, mark# U31(X1, X2) -> mark# X1) (a__U71#(tt(), L) -> mark# L, mark# U31(X1, X2) -> a__U31#(mark X1, X2)) (a__U71#(tt(), L) -> mark# L, mark# U22 X -> mark# X) (a__U71#(tt(), L) -> mark# L, mark# U22 X -> a__U22# mark X) (a__U71#(tt(), L) -> mark# L, mark# U21(X1, X2) -> mark# X1) (a__U71#(tt(), L) -> mark# L, mark# U21(X1, X2) -> a__U21#(mark X1, X2)) (a__U71#(tt(), L) -> mark# L, mark# isNatList X -> a__isNatList# X) (a__U71#(tt(), L) -> mark# L, mark# U12 X -> mark# X) (a__U71#(tt(), L) -> mark# L, mark# U12 X -> a__U12# mark X) (a__U71#(tt(), L) -> mark# L, mark# U11(X1, X2) -> mark# X1) (a__U71#(tt(), L) -> mark# L, mark# U11(X1, X2) -> a__U11#(mark X1, X2)) (a__U71#(tt(), L) -> mark# L, mark# isNatKind X -> a__isNatKind# X) (a__U71#(tt(), L) -> mark# L, mark# isNat X -> a__isNat# X) (a__U71#(tt(), L) -> mark# L, mark# and(X1, X2) -> a__and#(mark X1, X2)) (a__U71#(tt(), L) -> mark# L, mark# and(X1, X2) -> mark# X1) (a__U71#(tt(), L) -> mark# L, mark# isNatIListKind X -> a__isNatIListKind# X) (a__U71#(tt(), L) -> mark# L, mark# length X -> mark# X) (a__U71#(tt(), L) -> mark# L, mark# length X -> a__length# mark X) (a__U71#(tt(), L) -> mark# L, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (a__U71#(tt(), L) -> mark# L, mark# take(X1, X2) -> mark# X2) (a__U71#(tt(), L) -> mark# L, mark# take(X1, X2) -> mark# X1) (a__U71#(tt(), L) -> mark# L, mark# s X -> mark# X) (a__U71#(tt(), L) -> mark# L, mark# zeros() -> a__zeros#()) (a__U71#(tt(), L) -> mark# L, mark# cons(X1, X2) -> mark# X1) (a__isNat# length V1 -> a__U11#(a__isNatIListKind V1, V1), a__U11#(tt(), V1) -> a__isNatList# V1) (a__isNat# length V1 -> a__U11#(a__isNatIListKind V1, V1), a__U11#(tt(), V1) -> a__U12# a__isNatList V1) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U91(X1, X2, X3, X4) -> mark# X1) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U81 X -> a__U81# mark X) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U81 X -> mark# X) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U71(X1, X2) -> a__U71#(mark X1, X2)) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U71(X1, X2) -> mark# X1) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U63 X -> mark# X) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U63 X -> a__U63# mark X) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U62(X1, X2) -> mark# X1) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U62(X1, X2) -> a__U62#(mark X1, X2)) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U61(X1, X2, X3) -> mark# X1) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3)) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U53 X -> mark# X) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U53 X -> a__U53# mark X) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U52(X1, X2) -> mark# X1) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U52(X1, X2) -> a__U52#(mark X1, X2)) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U51(X1, X2, X3) -> mark# X1) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3)) (a__U91#(tt(), IL, M, N) -> mark# N, mark# isNatIList X -> a__isNatIList# X) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U43 X -> mark# X) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U43 X -> a__U43# mark X) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U42(X1, X2) -> mark# X1) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U42(X1, X2) -> a__U42#(mark X1, X2)) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U41(X1, X2, X3) -> mark# X1) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3)) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U32 X -> mark# X) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U32 X -> a__U32# mark X) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U31(X1, X2) -> mark# X1) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U31(X1, X2) -> a__U31#(mark X1, X2)) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U22 X -> mark# X) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U22 X -> a__U22# mark X) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U21(X1, X2) -> mark# X1) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U21(X1, X2) -> a__U21#(mark X1, X2)) (a__U91#(tt(), IL, M, N) -> mark# N, mark# isNatList X -> a__isNatList# X) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U12 X -> mark# X) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U12 X -> a__U12# mark X) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U11(X1, X2) -> mark# X1) (a__U91#(tt(), IL, M, N) -> mark# N, mark# U11(X1, X2) -> a__U11#(mark X1, X2)) (a__U91#(tt(), IL, M, N) -> mark# N, mark# isNatKind X -> a__isNatKind# X) (a__U91#(tt(), IL, M, N) -> mark# N, mark# isNat X -> a__isNat# X) (a__U91#(tt(), IL, M, N) -> mark# N, mark# and(X1, X2) -> a__and#(mark X1, X2)) (a__U91#(tt(), IL, M, N) -> mark# N, mark# and(X1, X2) -> mark# X1) (a__U91#(tt(), IL, M, N) -> mark# N, mark# isNatIListKind X -> a__isNatIListKind# X) (a__U91#(tt(), IL, M, N) -> mark# N, mark# length X -> mark# X) (a__U91#(tt(), IL, M, N) -> mark# N, mark# length X -> a__length# mark X) (a__U91#(tt(), IL, M, N) -> mark# N, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (a__U91#(tt(), IL, M, N) -> mark# N, mark# take(X1, X2) -> mark# X2) (a__U91#(tt(), IL, M, N) -> mark# N, mark# take(X1, X2) -> mark# X1) (a__U91#(tt(), IL, M, N) -> mark# N, mark# s X -> mark# X) (a__U91#(tt(), IL, M, N) -> mark# N, mark# zeros() -> a__zeros#()) (a__U91#(tt(), IL, M, N) -> mark# N, mark# cons(X1, X2) -> mark# X1) (a__isNatList# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__and#(tt(), X) -> mark# X) (a__length# cons(N, L) -> a__and#(a__isNatList L, isNatIListKind L), a__and#(tt(), X) -> mark# X) (a__isNatIListKind# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__and#(tt(), X) -> mark# X) (a__take#(0(), IL) -> a__and#(a__isNatIList IL, isNatIListKind IL), a__and#(tt(), X) -> mark# X) (a__length# cons(N, L) -> a__and#(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), a__and#(tt(), X) -> mark# X) (a__take#(s M, cons(N, IL)) -> a__and#(a__and(a__isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), a__and#(tt(), X) -> mark# X) (a__take#(s M, cons(N, IL)) -> a__and#(a__isNatIList IL, isNatIListKind IL), a__and#(tt(), X) -> mark# X) (a__isNatIListKind# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__and#(tt(), X) -> mark# X) (mark# take(X1, X2) -> a__take#(mark X1, mark X2), a__take#(0(), IL) -> a__isNatIList# IL) (mark# take(X1, X2) -> a__take#(mark X1, mark X2), a__take#(0(), IL) -> a__U81# a__and(a__isNatIList IL, isNatIListKind IL)) (mark# take(X1, X2) -> a__take#(mark X1, mark X2), a__take#(0(), IL) -> a__and#(a__isNatIList IL, isNatIListKind IL)) (mark# take(X1, X2) -> a__take#(mark X1, mark X2), a__take#(s M, cons(N, IL)) -> a__isNatIList# IL) (mark# take(X1, X2) -> a__take#(mark X1, mark X2), a__take#(s M, cons(N, IL)) -> a__U91#(a__and(a__and(a__isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)) (mark# take(X1, X2) -> a__take#(mark X1, mark X2), a__take#(s M, cons(N, IL)) -> a__and#(a__isNatIList IL, isNatIListKind IL)) (mark# take(X1, X2) -> a__take#(mark X1, mark X2), a__take#(s M, cons(N, IL)) -> a__and#(a__and(a__isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))) (a__isNatIList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__and#(tt(), X) -> mark# X) (a__isNatList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__and#(tt(), X) -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# cons(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# zeros() -> a__zeros#()) (mark# take(X1, X2) -> mark# X2, mark# s X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> mark# X2) (mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# take(X1, X2) -> mark# X2, mark# length X -> a__length# mark X) (mark# take(X1, X2) -> mark# X2, mark# length X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# isNatIListKind X -> a__isNatIListKind# X) (mark# take(X1, X2) -> mark# X2, mark# and(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# and(X1, X2) -> a__and#(mark X1, X2)) (mark# take(X1, X2) -> mark# X2, mark# isNat X -> a__isNat# X) (mark# take(X1, X2) -> mark# X2, mark# isNatKind X -> a__isNatKind# X) (mark# take(X1, X2) -> mark# X2, mark# U11(X1, X2) -> a__U11#(mark X1, X2)) (mark# take(X1, X2) -> mark# X2, mark# U11(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# U12 X -> a__U12# mark X) (mark# take(X1, X2) -> mark# X2, mark# U12 X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# isNatList X -> a__isNatList# X) (mark# take(X1, X2) -> mark# X2, mark# U21(X1, X2) -> a__U21#(mark X1, X2)) (mark# take(X1, X2) -> mark# X2, mark# U21(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# U22 X -> a__U22# mark X) (mark# take(X1, X2) -> mark# X2, mark# U22 X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# U31(X1, X2) -> a__U31#(mark X1, X2)) (mark# take(X1, X2) -> mark# X2, mark# U31(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# U32 X -> a__U32# mark X) (mark# take(X1, X2) -> mark# X2, mark# U32 X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3)) (mark# take(X1, X2) -> mark# X2, mark# U41(X1, X2, X3) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# U42(X1, X2) -> a__U42#(mark X1, X2)) (mark# take(X1, X2) -> mark# X2, mark# U42(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# U43 X -> a__U43# mark X) (mark# take(X1, X2) -> mark# X2, mark# U43 X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# isNatIList X -> a__isNatIList# X) (mark# take(X1, X2) -> mark# X2, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3)) (mark# take(X1, X2) -> mark# X2, mark# U51(X1, X2, X3) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# U52(X1, X2) -> a__U52#(mark X1, X2)) (mark# take(X1, X2) -> mark# X2, mark# U52(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# U53 X -> a__U53# mark X) (mark# take(X1, X2) -> mark# X2, mark# U53 X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3)) (mark# take(X1, X2) -> mark# X2, mark# U61(X1, X2, X3) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# U62(X1, X2) -> a__U62#(mark X1, X2)) (mark# take(X1, X2) -> mark# X2, mark# U62(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# U63 X -> a__U63# mark X) (mark# take(X1, X2) -> mark# X2, mark# U63 X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# U71(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# U71(X1, X2) -> a__U71#(mark X1, X2)) (mark# take(X1, X2) -> mark# X2, mark# U81 X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# U81 X -> a__U81# mark X) (mark# take(X1, X2) -> mark# X2, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (a__isNat# s V1 -> a__U21#(a__isNatKind V1, V1), a__U21#(tt(), V1) -> a__U22# a__isNat V1) (a__isNat# s V1 -> a__U21#(a__isNatKind V1, V1), a__U21#(tt(), V1) -> a__isNat# V1) (a__length# cons(N, L) -> a__isNatList# L, a__isNatList# cons(V1, V2) -> a__U51#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2)) (a__length# cons(N, L) -> a__isNatList# L, a__isNatList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2)) (a__length# cons(N, L) -> a__isNatList# L, a__isNatList# cons(V1, V2) -> a__isNatKind# V1) (a__length# cons(N, L) -> a__isNatList# L, a__isNatList# take(V1, V2) -> a__U61#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2)) (a__length# cons(N, L) -> a__isNatList# L, a__isNatList# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2)) (a__length# cons(N, L) -> a__isNatList# L, a__isNatList# take(V1, V2) -> a__isNatKind# V1) (mark# U71(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# U71(X1, X2) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# U71(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# U71(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# U71(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# U71(X1, X2) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U71(X1, X2) -> mark# X1, mark# length X -> a__length# mark X) (mark# U71(X1, X2) -> mark# X1, mark# length X -> mark# X) (mark# U71(X1, X2) -> mark# X1, mark# isNatIListKind X -> a__isNatIListKind# X) (mark# U71(X1, X2) -> mark# X1, mark# and(X1, X2) -> mark# X1) (mark# U71(X1, X2) -> mark# X1, mark# and(X1, X2) -> a__and#(mark X1, X2)) (mark# U71(X1, X2) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# U71(X1, X2) -> mark# X1, mark# isNatKind X -> a__isNatKind# X) (mark# U71(X1, X2) -> mark# X1, mark# U11(X1, X2) -> a__U11#(mark X1, X2)) (mark# U71(X1, X2) -> mark# X1, mark# U11(X1, X2) -> mark# X1) (mark# U71(X1, X2) -> mark# X1, mark# U12 X -> a__U12# mark X) (mark# U71(X1, X2) -> mark# X1, mark# U12 X -> mark# X) (mark# U71(X1, X2) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# U71(X1, X2) -> mark# X1, mark# U21(X1, X2) -> a__U21#(mark X1, X2)) (mark# U71(X1, X2) -> mark# X1, mark# U21(X1, X2) -> mark# X1) (mark# U71(X1, X2) -> mark# X1, mark# U22 X -> a__U22# mark X) (mark# U71(X1, X2) -> mark# X1, mark# U22 X -> mark# X) (mark# U71(X1, X2) -> mark# X1, mark# U31(X1, X2) -> a__U31#(mark X1, X2)) (mark# U71(X1, X2) -> mark# X1, mark# U31(X1, X2) -> mark# X1) (mark# U71(X1, X2) -> mark# X1, mark# U32 X -> a__U32# mark X) (mark# U71(X1, X2) -> mark# X1, mark# U32 X -> mark# X) (mark# U71(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3)) (mark# U71(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1) (mark# U71(X1, X2) -> mark# X1, mark# U42(X1, X2) -> a__U42#(mark X1, X2)) (mark# U71(X1, X2) -> mark# X1, mark# U42(X1, X2) -> mark# X1) (mark# U71(X1, X2) -> mark# X1, mark# U43 X -> a__U43# mark X) (mark# U71(X1, X2) -> mark# X1, mark# U43 X -> mark# X) (mark# U71(X1, X2) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# U71(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3)) (mark# U71(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> mark# X1) (mark# U71(X1, X2) -> mark# X1, mark# U52(X1, X2) -> a__U52#(mark X1, X2)) (mark# U71(X1, X2) -> mark# X1, mark# U52(X1, X2) -> mark# X1) (mark# U71(X1, X2) -> mark# X1, mark# U53 X -> a__U53# mark X) (mark# U71(X1, X2) -> mark# X1, mark# U53 X -> mark# X) (mark# U71(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3)) (mark# U71(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> mark# X1) (mark# U71(X1, X2) -> mark# X1, mark# U62(X1, X2) -> a__U62#(mark X1, X2)) (mark# U71(X1, X2) -> mark# X1, mark# U62(X1, X2) -> mark# X1) (mark# U71(X1, X2) -> mark# X1, mark# U63 X -> a__U63# mark X) (mark# U71(X1, X2) -> mark# X1, mark# U63 X -> mark# X) (mark# U71(X1, X2) -> mark# X1, mark# U71(X1, X2) -> mark# X1) (mark# U71(X1, X2) -> mark# X1, mark# U71(X1, X2) -> a__U71#(mark X1, X2)) (mark# U71(X1, X2) -> mark# X1, mark# U81 X -> mark# X) (mark# U71(X1, X2) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# U71(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U71(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U61(X1, X2, X3) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# U61(X1, X2, X3) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# U61(X1, X2, X3) -> mark# X1, mark# s X -> mark# X) (mark# U61(X1, X2, X3) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# U61(X1, X2, X3) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# U61(X1, X2, X3) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U61(X1, X2, X3) -> mark# X1, mark# length X -> a__length# mark X) (mark# U61(X1, X2, X3) -> mark# X1, mark# length X -> mark# X) (mark# U61(X1, X2, X3) -> mark# X1, mark# isNatIListKind X -> a__isNatIListKind# X) (mark# U61(X1, X2, X3) -> mark# X1, mark# and(X1, X2) -> mark# X1) (mark# U61(X1, X2, X3) -> mark# X1, mark# and(X1, X2) -> a__and#(mark X1, X2)) (mark# U61(X1, X2, X3) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# U61(X1, X2, X3) -> mark# X1, mark# isNatKind X -> a__isNatKind# X) (mark# U61(X1, X2, X3) -> mark# X1, mark# U11(X1, X2) -> a__U11#(mark X1, X2)) (mark# U61(X1, X2, X3) -> mark# X1, mark# U11(X1, X2) -> mark# X1) (mark# U61(X1, X2, X3) -> mark# X1, mark# U12 X -> a__U12# mark X) (mark# U61(X1, X2, X3) -> mark# X1, mark# U12 X -> mark# X) (mark# U61(X1, X2, X3) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# U61(X1, X2, X3) -> mark# X1, mark# U21(X1, X2) -> a__U21#(mark X1, X2)) (mark# U61(X1, X2, X3) -> mark# X1, mark# U21(X1, X2) -> mark# X1) (mark# U61(X1, X2, X3) -> mark# X1, mark# U22 X -> a__U22# mark X) (mark# U61(X1, X2, X3) -> mark# X1, mark# U22 X -> mark# X) (mark# U61(X1, X2, X3) -> mark# X1, mark# U31(X1, X2) -> a__U31#(mark X1, X2)) (mark# U61(X1, X2, X3) -> mark# X1, mark# U31(X1, X2) -> mark# X1) (mark# U61(X1, X2, X3) -> mark# X1, mark# U32 X -> a__U32# mark X) (mark# U61(X1, X2, X3) -> mark# X1, mark# U32 X -> mark# X) (mark# U61(X1, X2, X3) -> mark# X1, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3)) (mark# U61(X1, X2, X3) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1) (mark# U61(X1, X2, X3) -> mark# X1, mark# U42(X1, X2) -> a__U42#(mark X1, X2)) (mark# U61(X1, X2, X3) -> mark# X1, mark# U42(X1, X2) -> mark# X1) (mark# U61(X1, X2, X3) -> mark# X1, mark# U43 X -> a__U43# mark X) (mark# U61(X1, X2, X3) -> mark# X1, mark# U43 X -> mark# X) (mark# U61(X1, X2, X3) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# U61(X1, X2, X3) -> mark# X1, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3)) (mark# U61(X1, X2, X3) -> mark# X1, mark# U51(X1, X2, X3) -> mark# X1) (mark# U61(X1, X2, X3) -> mark# X1, mark# U52(X1, X2) -> a__U52#(mark X1, X2)) (mark# U61(X1, X2, X3) -> mark# X1, mark# U52(X1, X2) -> mark# X1) (mark# U61(X1, X2, X3) -> mark# X1, mark# U53 X -> a__U53# mark X) (mark# U61(X1, X2, X3) -> mark# X1, mark# U53 X -> mark# X) (mark# U61(X1, X2, X3) -> mark# X1, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3)) (mark# U61(X1, X2, X3) -> mark# X1, mark# U61(X1, X2, X3) -> mark# X1) (mark# U61(X1, X2, X3) -> mark# X1, mark# U62(X1, X2) -> a__U62#(mark X1, X2)) (mark# U61(X1, X2, X3) -> mark# X1, mark# U62(X1, X2) -> mark# X1) (mark# U61(X1, X2, X3) -> mark# X1, mark# U63 X -> a__U63# mark X) (mark# U61(X1, X2, X3) -> mark# X1, mark# U63 X -> mark# X) (mark# U61(X1, X2, X3) -> mark# X1, mark# U71(X1, X2) -> mark# X1) (mark# U61(X1, X2, X3) -> mark# X1, mark# U71(X1, X2) -> a__U71#(mark X1, X2)) (mark# U61(X1, X2, X3) -> mark# X1, mark# U81 X -> mark# X) (mark# U61(X1, X2, X3) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# U61(X1, X2, X3) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U61(X1, X2, X3) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U51(X1, X2, X3) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# U51(X1, X2, X3) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# U51(X1, X2, X3) -> mark# X1, mark# s X -> mark# X) (mark# U51(X1, X2, X3) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# U51(X1, X2, X3) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# U51(X1, X2, X3) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U51(X1, X2, X3) -> mark# X1, mark# length X -> a__length# mark X) (mark# U51(X1, X2, X3) -> mark# X1, mark# length X -> mark# X) (mark# U51(X1, X2, X3) -> mark# X1, mark# isNatIListKind X -> a__isNatIListKind# X) (mark# U51(X1, X2, X3) -> mark# X1, mark# and(X1, X2) -> mark# X1) (mark# U51(X1, X2, X3) -> mark# X1, mark# and(X1, X2) -> a__and#(mark X1, X2)) (mark# U51(X1, X2, X3) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# U51(X1, X2, X3) -> mark# X1, mark# isNatKind X -> a__isNatKind# X) (mark# U51(X1, X2, X3) -> mark# X1, mark# U11(X1, X2) -> a__U11#(mark X1, X2)) (mark# U51(X1, X2, X3) -> mark# X1, mark# U11(X1, X2) -> mark# X1) (mark# U51(X1, X2, X3) -> mark# X1, mark# U12 X -> a__U12# mark X) (mark# U51(X1, X2, X3) -> mark# X1, mark# U12 X -> mark# X) (mark# U51(X1, X2, X3) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# U51(X1, X2, X3) -> mark# X1, mark# U21(X1, X2) -> a__U21#(mark X1, X2)) (mark# U51(X1, X2, X3) -> mark# X1, mark# U21(X1, X2) -> mark# X1) (mark# U51(X1, X2, X3) -> mark# X1, mark# U22 X -> a__U22# mark X) (mark# U51(X1, X2, X3) -> mark# X1, mark# U22 X -> mark# X) (mark# U51(X1, X2, X3) -> mark# X1, mark# U31(X1, X2) -> a__U31#(mark X1, X2)) (mark# U51(X1, X2, X3) -> mark# X1, mark# U31(X1, X2) -> mark# X1) (mark# U51(X1, X2, X3) -> mark# X1, mark# U32 X -> a__U32# mark X) (mark# U51(X1, X2, X3) -> mark# X1, mark# U32 X -> mark# X) (mark# U51(X1, X2, X3) -> mark# X1, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3)) (mark# U51(X1, X2, X3) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1) (mark# U51(X1, X2, X3) -> mark# X1, mark# U42(X1, X2) -> a__U42#(mark X1, X2)) (mark# U51(X1, X2, X3) -> mark# X1, mark# U42(X1, X2) -> mark# X1) (mark# U51(X1, X2, X3) -> mark# X1, mark# U43 X -> a__U43# mark X) (mark# U51(X1, X2, X3) -> mark# X1, mark# U43 X -> mark# X) (mark# U51(X1, X2, X3) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# U51(X1, X2, X3) -> mark# X1, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3)) (mark# U51(X1, X2, X3) -> mark# X1, mark# U51(X1, X2, X3) -> mark# X1) (mark# U51(X1, X2, X3) -> mark# X1, mark# U52(X1, X2) -> a__U52#(mark X1, X2)) (mark# U51(X1, X2, X3) -> mark# X1, mark# U52(X1, X2) -> mark# X1) (mark# U51(X1, X2, X3) -> mark# X1, mark# U53 X -> a__U53# mark X) (mark# U51(X1, X2, X3) -> mark# X1, mark# U53 X -> mark# X) (mark# U51(X1, X2, X3) -> mark# X1, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3)) (mark# U51(X1, X2, X3) -> mark# X1, mark# U61(X1, X2, X3) -> mark# X1) (mark# U51(X1, X2, X3) -> mark# X1, mark# U62(X1, X2) -> a__U62#(mark X1, X2)) (mark# U51(X1, X2, X3) -> mark# X1, mark# U62(X1, X2) -> mark# X1) (mark# U51(X1, X2, X3) -> mark# X1, mark# U63 X -> a__U63# mark X) (mark# U51(X1, X2, X3) -> mark# X1, mark# U63 X -> mark# X) (mark# U51(X1, X2, X3) -> mark# X1, mark# U71(X1, X2) -> mark# X1) (mark# U51(X1, X2, X3) -> mark# X1, mark# U71(X1, X2) -> a__U71#(mark X1, X2)) (mark# U51(X1, X2, X3) -> mark# X1, mark# U81 X -> mark# X) (mark# U51(X1, X2, X3) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# U51(X1, X2, X3) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U51(X1, X2, X3) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U41(X1, X2, X3) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# U41(X1, X2, X3) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# U41(X1, X2, X3) -> mark# X1, mark# s X -> mark# X) (mark# U41(X1, X2, X3) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# U41(X1, X2, X3) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# U41(X1, X2, X3) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U41(X1, X2, X3) -> mark# X1, mark# length X -> a__length# mark X) (mark# U41(X1, X2, X3) -> mark# X1, mark# length X -> mark# X) (mark# U41(X1, X2, X3) -> mark# X1, mark# isNatIListKind X -> a__isNatIListKind# X) (mark# U41(X1, X2, X3) -> mark# X1, mark# and(X1, X2) -> mark# X1) (mark# U41(X1, X2, X3) -> mark# X1, mark# and(X1, X2) -> a__and#(mark X1, X2)) (mark# U41(X1, X2, X3) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# U41(X1, X2, X3) -> mark# X1, mark# isNatKind X -> a__isNatKind# X) (mark# U41(X1, X2, X3) -> mark# X1, mark# U11(X1, X2) -> a__U11#(mark X1, X2)) (mark# U41(X1, X2, X3) -> mark# X1, mark# U11(X1, X2) -> mark# X1) (mark# U41(X1, X2, X3) -> mark# X1, mark# U12 X -> a__U12# mark X) (mark# U41(X1, X2, X3) -> mark# X1, mark# U12 X -> mark# X) (mark# U41(X1, X2, X3) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# U41(X1, X2, X3) -> mark# X1, mark# U21(X1, X2) -> a__U21#(mark X1, X2)) (mark# U41(X1, X2, X3) -> mark# X1, mark# U21(X1, X2) -> mark# X1) (mark# U41(X1, X2, X3) -> mark# X1, mark# U22 X -> a__U22# mark X) (mark# U41(X1, X2, X3) -> mark# X1, mark# U22 X -> mark# X) (mark# U41(X1, X2, X3) -> mark# X1, mark# U31(X1, X2) -> a__U31#(mark X1, X2)) (mark# U41(X1, X2, X3) -> mark# X1, mark# U31(X1, X2) -> mark# X1) (mark# U41(X1, X2, X3) -> mark# X1, mark# U32 X -> a__U32# mark X) (mark# U41(X1, X2, X3) -> mark# X1, mark# U32 X -> mark# X) (mark# U41(X1, X2, X3) -> mark# X1, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3)) (mark# U41(X1, X2, X3) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1) (mark# U41(X1, X2, X3) -> mark# X1, mark# U42(X1, X2) -> a__U42#(mark X1, X2)) (mark# U41(X1, X2, X3) -> mark# X1, mark# U42(X1, X2) -> mark# X1) (mark# U41(X1, X2, X3) -> mark# X1, mark# U43 X -> a__U43# mark X) (mark# U41(X1, X2, X3) -> mark# X1, mark# U43 X -> mark# X) (mark# U41(X1, X2, X3) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# U41(X1, X2, X3) -> mark# X1, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3)) (mark# U41(X1, X2, X3) -> mark# X1, mark# U51(X1, X2, X3) -> mark# X1) (mark# U41(X1, X2, X3) -> mark# X1, mark# U52(X1, X2) -> a__U52#(mark X1, X2)) (mark# U41(X1, X2, X3) -> mark# X1, mark# U52(X1, X2) -> mark# X1) (mark# U41(X1, X2, X3) -> mark# X1, mark# U53 X -> a__U53# mark X) (mark# U41(X1, X2, X3) -> mark# X1, mark# U53 X -> mark# X) (mark# U41(X1, X2, X3) -> mark# X1, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3)) (mark# U41(X1, X2, X3) -> mark# X1, mark# U61(X1, X2, X3) -> mark# X1) (mark# U41(X1, X2, X3) -> mark# X1, mark# U62(X1, X2) -> a__U62#(mark X1, X2)) (mark# U41(X1, X2, X3) -> mark# X1, mark# U62(X1, X2) -> mark# X1) (mark# U41(X1, X2, X3) -> mark# X1, mark# U63 X -> a__U63# mark X) (mark# U41(X1, X2, X3) -> mark# X1, mark# U63 X -> mark# X) (mark# U41(X1, X2, X3) -> mark# X1, mark# U71(X1, X2) -> mark# X1) (mark# U41(X1, X2, X3) -> mark# X1, mark# U71(X1, X2) -> a__U71#(mark X1, X2)) (mark# U41(X1, X2, X3) -> mark# X1, mark# U81 X -> mark# X) (mark# U41(X1, X2, X3) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# U41(X1, X2, X3) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U41(X1, X2, X3) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U21(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# U21(X1, X2) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# U21(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# U21(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# U21(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# U21(X1, X2) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U21(X1, X2) -> mark# X1, mark# length X -> a__length# mark X) (mark# U21(X1, X2) -> mark# X1, mark# length X -> mark# X) (mark# U21(X1, X2) -> mark# X1, mark# isNatIListKind X -> a__isNatIListKind# X) (mark# U21(X1, X2) -> mark# X1, mark# and(X1, X2) -> mark# X1) (mark# U21(X1, X2) -> mark# X1, mark# and(X1, X2) -> a__and#(mark X1, X2)) (mark# U21(X1, X2) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# U21(X1, X2) -> mark# X1, mark# isNatKind X -> a__isNatKind# X) (mark# U21(X1, X2) -> mark# X1, mark# U11(X1, X2) -> a__U11#(mark X1, X2)) (mark# U21(X1, X2) -> mark# X1, mark# U11(X1, X2) -> mark# X1) (mark# U21(X1, X2) -> mark# X1, mark# U12 X -> a__U12# mark X) (mark# U21(X1, X2) -> mark# X1, mark# U12 X -> mark# X) (mark# U21(X1, X2) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# U21(X1, X2) -> mark# X1, mark# U21(X1, X2) -> a__U21#(mark X1, X2)) (mark# U21(X1, X2) -> mark# X1, mark# U21(X1, X2) -> mark# X1) (mark# U21(X1, X2) -> mark# X1, mark# U22 X -> a__U22# mark X) (mark# U21(X1, X2) -> mark# X1, mark# U22 X -> mark# X) (mark# U21(X1, X2) -> mark# X1, mark# U31(X1, X2) -> a__U31#(mark X1, X2)) (mark# U21(X1, X2) -> mark# X1, mark# U31(X1, X2) -> mark# X1) (mark# U21(X1, X2) -> mark# X1, mark# U32 X -> a__U32# mark X) (mark# U21(X1, X2) -> mark# X1, mark# U32 X -> mark# X) (mark# U21(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3)) (mark# U21(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1) (mark# U21(X1, X2) -> mark# X1, mark# U42(X1, X2) -> a__U42#(mark X1, X2)) (mark# U21(X1, X2) -> mark# X1, mark# U42(X1, X2) -> mark# X1) (mark# U21(X1, X2) -> mark# X1, mark# U43 X -> a__U43# mark X) (mark# U21(X1, X2) -> mark# X1, mark# U43 X -> mark# X) (mark# U21(X1, X2) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# U21(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3)) (mark# U21(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> mark# X1) (mark# U21(X1, X2) -> mark# X1, mark# U52(X1, X2) -> a__U52#(mark X1, X2)) (mark# U21(X1, X2) -> mark# X1, mark# U52(X1, X2) -> mark# X1) (mark# U21(X1, X2) -> mark# X1, mark# U53 X -> a__U53# mark X) (mark# U21(X1, X2) -> mark# X1, mark# U53 X -> mark# X) (mark# U21(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3)) (mark# U21(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> mark# X1) (mark# U21(X1, X2) -> mark# X1, mark# U62(X1, X2) -> a__U62#(mark X1, X2)) (mark# U21(X1, X2) -> mark# X1, mark# U62(X1, X2) -> mark# X1) (mark# U21(X1, X2) -> mark# X1, mark# U63 X -> a__U63# mark X) (mark# U21(X1, X2) -> mark# X1, mark# U63 X -> mark# X) (mark# U21(X1, X2) -> mark# X1, mark# U71(X1, X2) -> mark# X1) (mark# U21(X1, X2) -> mark# X1, mark# U71(X1, X2) -> a__U71#(mark X1, X2)) (mark# U21(X1, X2) -> mark# X1, mark# U81 X -> mark# X) (mark# U21(X1, X2) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# U21(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U21(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# and(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# and(X1, X2) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# and(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# and(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# and(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# and(X1, X2) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# and(X1, X2) -> mark# X1, mark# length X -> a__length# mark X) (mark# and(X1, X2) -> mark# X1, mark# length X -> mark# X) (mark# and(X1, X2) -> mark# X1, mark# isNatIListKind X -> a__isNatIListKind# X) (mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> mark# X1) (mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> a__and#(mark X1, X2)) (mark# and(X1, X2) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# and(X1, X2) -> mark# X1, mark# isNatKind X -> a__isNatKind# X) (mark# and(X1, X2) -> mark# X1, mark# U11(X1, X2) -> a__U11#(mark X1, X2)) (mark# and(X1, X2) -> mark# X1, mark# U11(X1, X2) -> mark# X1) (mark# and(X1, X2) -> mark# X1, mark# U12 X -> a__U12# mark X) (mark# and(X1, X2) -> mark# X1, mark# U12 X -> mark# X) (mark# and(X1, X2) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# and(X1, X2) -> mark# X1, mark# U21(X1, X2) -> a__U21#(mark X1, X2)) (mark# and(X1, X2) -> mark# X1, mark# U21(X1, X2) -> mark# X1) (mark# and(X1, X2) -> mark# X1, mark# U22 X -> a__U22# mark X) (mark# and(X1, X2) -> mark# X1, mark# U22 X -> mark# X) (mark# and(X1, X2) -> mark# X1, mark# U31(X1, X2) -> a__U31#(mark X1, X2)) (mark# and(X1, X2) -> mark# X1, mark# U31(X1, X2) -> mark# X1) (mark# and(X1, X2) -> mark# X1, mark# U32 X -> a__U32# mark X) (mark# and(X1, X2) -> mark# X1, mark# U32 X -> mark# X) (mark# and(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3)) (mark# and(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1) (mark# and(X1, X2) -> mark# X1, mark# U42(X1, X2) -> a__U42#(mark X1, X2)) (mark# and(X1, X2) -> mark# X1, mark# U42(X1, X2) -> mark# X1) (mark# and(X1, X2) -> mark# X1, mark# U43 X -> a__U43# mark X) (mark# and(X1, X2) -> mark# X1, mark# U43 X -> mark# X) (mark# and(X1, X2) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# and(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3)) (mark# and(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> mark# X1) (mark# and(X1, X2) -> mark# X1, mark# U52(X1, X2) -> a__U52#(mark X1, X2)) (mark# and(X1, X2) -> mark# X1, mark# U52(X1, X2) -> mark# X1) (mark# and(X1, X2) -> mark# X1, mark# U53 X -> a__U53# mark X) (mark# and(X1, X2) -> mark# X1, mark# U53 X -> mark# X) (mark# and(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3)) (mark# and(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> mark# X1) (mark# and(X1, X2) -> mark# X1, mark# U62(X1, X2) -> a__U62#(mark X1, X2)) (mark# and(X1, X2) -> mark# X1, mark# U62(X1, X2) -> mark# X1) (mark# and(X1, X2) -> mark# X1, mark# U63 X -> a__U63# mark X) (mark# and(X1, X2) -> mark# X1, mark# U63 X -> mark# X) (mark# and(X1, X2) -> mark# X1, mark# U71(X1, X2) -> mark# X1) (mark# and(X1, X2) -> mark# X1, mark# U71(X1, X2) -> a__U71#(mark X1, X2)) (mark# and(X1, X2) -> mark# X1, mark# U81 X -> mark# X) (mark# and(X1, X2) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# and(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# and(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# cons(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# cons(X1, X2) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# cons(X1, X2) -> mark# X1, mark# length X -> a__length# mark X) (mark# cons(X1, X2) -> mark# X1, mark# length X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# isNatIListKind X -> a__isNatIListKind# X) (mark# cons(X1, X2) -> mark# X1, mark# and(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# and(X1, X2) -> a__and#(mark X1, X2)) (mark# cons(X1, X2) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# cons(X1, X2) -> mark# X1, mark# isNatKind X -> a__isNatKind# X) (mark# cons(X1, X2) -> mark# X1, mark# U11(X1, X2) -> a__U11#(mark X1, X2)) (mark# cons(X1, X2) -> mark# X1, mark# U11(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# U12 X -> a__U12# mark X) (mark# cons(X1, X2) -> mark# X1, mark# U12 X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# cons(X1, X2) -> mark# X1, mark# U21(X1, X2) -> a__U21#(mark X1, X2)) (mark# cons(X1, X2) -> mark# X1, mark# U21(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# U22 X -> a__U22# mark X) (mark# cons(X1, X2) -> mark# X1, mark# U22 X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# U31(X1, X2) -> a__U31#(mark X1, X2)) (mark# cons(X1, X2) -> mark# X1, mark# U31(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# U32 X -> a__U32# mark X) (mark# cons(X1, X2) -> mark# X1, mark# U32 X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3)) (mark# cons(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# U42(X1, X2) -> a__U42#(mark X1, X2)) (mark# cons(X1, X2) -> mark# X1, mark# U42(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# U43 X -> a__U43# mark X) (mark# cons(X1, X2) -> mark# X1, mark# U43 X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# cons(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3)) (mark# cons(X1, X2) -> mark# X1, mark# U51(X1, X2, X3) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# U52(X1, X2) -> a__U52#(mark X1, X2)) (mark# cons(X1, X2) -> mark# X1, mark# U52(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# U53 X -> a__U53# mark X) (mark# cons(X1, X2) -> mark# X1, mark# U53 X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3)) (mark# cons(X1, X2) -> mark# X1, mark# U61(X1, X2, X3) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# U62(X1, X2) -> a__U62#(mark X1, X2)) (mark# cons(X1, X2) -> mark# X1, mark# U62(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# U63 X -> a__U63# mark X) (mark# cons(X1, X2) -> mark# X1, mark# U63 X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# U71(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# U71(X1, X2) -> a__U71#(mark X1, X2)) (mark# cons(X1, X2) -> mark# X1, mark# U81 X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# cons(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (a__length# cons(N, L) -> a__U71#(a__and(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), a__U71#(tt(), L) -> a__length# mark L) (a__length# cons(N, L) -> a__U71#(a__and(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), a__U71#(tt(), L) -> mark# L) (mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3), a__U51#(tt(), V1, V2) -> a__isNat# V1) (mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3), a__U51#(tt(), V1, V2) -> a__U52#(a__isNat V1, V2)) (a__take#(s M, cons(N, IL)) -> a__U91#(a__and(a__and(a__isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), a__U91#(tt(), IL, M, N) -> mark# N) (a__U52#(tt(), V2) -> a__isNatList# V2, a__isNatList# cons(V1, V2) -> a__U51#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2)) (a__U52#(tt(), V2) -> a__isNatList# V2, a__isNatList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2)) (a__U52#(tt(), V2) -> a__isNatList# V2, a__isNatList# cons(V1, V2) -> a__isNatKind# V1) (a__U52#(tt(), V2) -> a__isNatList# V2, a__isNatList# take(V1, V2) -> a__U61#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2)) (a__U52#(tt(), V2) -> a__isNatList# V2, a__isNatList# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2)) (a__U52#(tt(), V2) -> a__isNatList# V2, a__isNatList# take(V1, V2) -> a__isNatKind# V1) (mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4), a__U91#(tt(), IL, M, N) -> mark# N) (mark# U81 X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# U81 X -> mark# X, mark# zeros() -> a__zeros#()) (mark# U81 X -> mark# X, mark# s X -> mark# X) (mark# U81 X -> mark# X, mark# take(X1, X2) -> mark# X1) (mark# U81 X -> mark# X, mark# take(X1, X2) -> mark# X2) (mark# U81 X -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U81 X -> mark# X, mark# length X -> a__length# mark X) (mark# U81 X -> mark# X, mark# length X -> mark# X) (mark# U81 X -> mark# X, mark# isNatIListKind X -> a__isNatIListKind# X) (mark# U81 X -> mark# X, mark# and(X1, X2) -> mark# X1) (mark# U81 X -> mark# X, mark# and(X1, X2) -> a__and#(mark X1, X2)) (mark# U81 X -> mark# X, mark# isNat X -> a__isNat# X) (mark# U81 X -> mark# X, mark# isNatKind X -> a__isNatKind# X) (mark# U81 X -> mark# X, mark# U11(X1, X2) -> a__U11#(mark X1, X2)) (mark# U81 X -> mark# X, mark# U11(X1, X2) -> mark# X1) (mark# U81 X -> mark# X, mark# U12 X -> a__U12# mark X) (mark# U81 X -> mark# X, mark# U12 X -> mark# X) (mark# U81 X -> mark# X, mark# isNatList X -> a__isNatList# X) (mark# U81 X -> mark# X, mark# U21(X1, X2) -> a__U21#(mark X1, X2)) (mark# U81 X -> mark# X, mark# U21(X1, X2) -> mark# X1) (mark# U81 X -> mark# X, mark# U22 X -> a__U22# mark X) (mark# U81 X -> mark# X, mark# U22 X -> mark# X) (mark# U81 X -> mark# X, mark# U31(X1, X2) -> a__U31#(mark X1, X2)) (mark# U81 X -> mark# X, mark# U31(X1, X2) -> mark# X1) (mark# U81 X -> mark# X, mark# U32 X -> a__U32# mark X) (mark# U81 X -> mark# X, mark# U32 X -> mark# X) (mark# U81 X -> mark# X, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3)) (mark# U81 X -> mark# X, mark# U41(X1, X2, X3) -> mark# X1) (mark# U81 X -> mark# X, mark# U42(X1, X2) -> a__U42#(mark X1, X2)) (mark# U81 X -> mark# X, mark# U42(X1, X2) -> mark# X1) (mark# U81 X -> mark# X, mark# U43 X -> a__U43# mark X) (mark# U81 X -> mark# X, mark# U43 X -> mark# X) (mark# U81 X -> mark# X, mark# isNatIList X -> a__isNatIList# X) (mark# U81 X -> mark# X, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3)) (mark# U81 X -> mark# X, mark# U51(X1, X2, X3) -> mark# X1) (mark# U81 X -> mark# X, mark# U52(X1, X2) -> a__U52#(mark X1, X2)) (mark# U81 X -> mark# X, mark# U52(X1, X2) -> mark# X1) (mark# U81 X -> mark# X, mark# U53 X -> a__U53# mark X) (mark# U81 X -> mark# X, mark# U53 X -> mark# X) (mark# U81 X -> mark# X, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3)) (mark# U81 X -> mark# X, mark# U61(X1, X2, X3) -> mark# X1) (mark# U81 X -> mark# X, mark# U62(X1, X2) -> a__U62#(mark X1, X2)) (mark# U81 X -> mark# X, mark# U62(X1, X2) -> mark# X1) (mark# U81 X -> mark# X, mark# U63 X -> a__U63# mark X) (mark# U81 X -> mark# X, mark# U63 X -> mark# X) (mark# U81 X -> mark# X, mark# U71(X1, X2) -> mark# X1) (mark# U81 X -> mark# X, mark# U71(X1, X2) -> a__U71#(mark X1, X2)) (mark# U81 X -> mark# X, mark# U81 X -> mark# X) (mark# U81 X -> mark# X, mark# U81 X -> a__U81# mark X) (mark# U81 X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U81 X -> mark# X, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U53 X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# U53 X -> mark# X, mark# zeros() -> a__zeros#()) (mark# U53 X -> mark# X, mark# s X -> mark# X) (mark# U53 X -> mark# X, mark# take(X1, X2) -> mark# X1) (mark# U53 X -> mark# X, mark# take(X1, X2) -> mark# X2) (mark# U53 X -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U53 X -> mark# X, mark# length X -> a__length# mark X) (mark# U53 X -> mark# X, mark# length X -> mark# X) (mark# U53 X -> mark# X, mark# isNatIListKind X -> a__isNatIListKind# X) (mark# U53 X -> mark# X, mark# and(X1, X2) -> mark# X1) (mark# U53 X -> mark# X, mark# and(X1, X2) -> a__and#(mark X1, X2)) (mark# U53 X -> mark# X, mark# isNat X -> a__isNat# X) (mark# U53 X -> mark# X, mark# isNatKind X -> a__isNatKind# X) (mark# U53 X -> mark# X, mark# U11(X1, X2) -> a__U11#(mark X1, X2)) (mark# U53 X -> mark# X, mark# U11(X1, X2) -> mark# X1) (mark# U53 X -> mark# X, mark# U12 X -> a__U12# mark X) (mark# U53 X -> mark# X, mark# U12 X -> mark# X) (mark# U53 X -> mark# X, mark# isNatList X -> a__isNatList# X) (mark# U53 X -> mark# X, mark# U21(X1, X2) -> a__U21#(mark X1, X2)) (mark# U53 X -> mark# X, mark# U21(X1, X2) -> mark# X1) (mark# U53 X -> mark# X, mark# U22 X -> a__U22# mark X) (mark# U53 X -> mark# X, mark# U22 X -> mark# X) (mark# U53 X -> mark# X, mark# U31(X1, X2) -> a__U31#(mark X1, X2)) (mark# U53 X -> mark# X, mark# U31(X1, X2) -> mark# X1) (mark# U53 X -> mark# X, mark# U32 X -> a__U32# mark X) (mark# U53 X -> mark# X, mark# U32 X -> mark# X) (mark# U53 X -> mark# X, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3)) (mark# U53 X -> mark# X, mark# U41(X1, X2, X3) -> mark# X1) (mark# U53 X -> mark# X, mark# U42(X1, X2) -> a__U42#(mark X1, X2)) (mark# U53 X -> mark# X, mark# U42(X1, X2) -> mark# X1) (mark# U53 X -> mark# X, mark# U43 X -> a__U43# mark X) (mark# U53 X -> mark# X, mark# U43 X -> mark# X) (mark# U53 X -> mark# X, mark# isNatIList X -> a__isNatIList# X) (mark# U53 X -> mark# X, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3)) (mark# U53 X -> mark# X, mark# U51(X1, X2, X3) -> mark# X1) (mark# U53 X -> mark# X, mark# U52(X1, X2) -> a__U52#(mark X1, X2)) (mark# U53 X -> mark# X, mark# U52(X1, X2) -> mark# X1) (mark# U53 X -> mark# X, mark# U53 X -> a__U53# mark X) (mark# U53 X -> mark# X, mark# U53 X -> mark# X) (mark# U53 X -> mark# X, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3)) (mark# U53 X -> mark# X, mark# U61(X1, X2, X3) -> mark# X1) (mark# U53 X -> mark# X, mark# U62(X1, X2) -> a__U62#(mark X1, X2)) (mark# U53 X -> mark# X, mark# U62(X1, X2) -> mark# X1) (mark# U53 X -> mark# X, mark# U63 X -> a__U63# mark X) (mark# U53 X -> mark# X, mark# U63 X -> mark# X) (mark# U53 X -> mark# X, mark# U71(X1, X2) -> mark# X1) (mark# U53 X -> mark# X, mark# U71(X1, X2) -> a__U71#(mark X1, X2)) (mark# U53 X -> mark# X, mark# U81 X -> mark# X) (mark# U53 X -> mark# X, mark# U81 X -> a__U81# mark X) (mark# U53 X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U53 X -> mark# X, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U43 X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# U43 X -> mark# X, mark# zeros() -> a__zeros#()) (mark# U43 X -> mark# X, mark# s X -> mark# X) (mark# U43 X -> mark# X, mark# take(X1, X2) -> mark# X1) (mark# U43 X -> mark# X, mark# take(X1, X2) -> mark# X2) (mark# U43 X -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U43 X -> mark# X, mark# length X -> a__length# mark X) (mark# U43 X -> mark# X, mark# length X -> mark# X) (mark# U43 X -> mark# X, mark# isNatIListKind X -> a__isNatIListKind# X) (mark# U43 X -> mark# X, mark# and(X1, X2) -> mark# X1) (mark# U43 X -> mark# X, mark# and(X1, X2) -> a__and#(mark X1, X2)) (mark# U43 X -> mark# X, mark# isNat X -> a__isNat# X) (mark# U43 X -> mark# X, mark# isNatKind X -> a__isNatKind# X) (mark# U43 X -> mark# X, mark# U11(X1, X2) -> a__U11#(mark X1, X2)) (mark# U43 X -> mark# X, mark# U11(X1, X2) -> mark# X1) (mark# U43 X -> mark# X, mark# U12 X -> a__U12# mark X) (mark# U43 X -> mark# X, mark# U12 X -> mark# X) (mark# U43 X -> mark# X, mark# isNatList X -> a__isNatList# X) (mark# U43 X -> mark# X, mark# U21(X1, X2) -> a__U21#(mark X1, X2)) (mark# U43 X -> mark# X, mark# U21(X1, X2) -> mark# X1) (mark# U43 X -> mark# X, mark# U22 X -> a__U22# mark X) (mark# U43 X -> mark# X, mark# U22 X -> mark# X) (mark# U43 X -> mark# X, mark# U31(X1, X2) -> a__U31#(mark X1, X2)) (mark# U43 X -> mark# X, mark# U31(X1, X2) -> mark# X1) (mark# U43 X -> mark# X, mark# U32 X -> a__U32# mark X) (mark# U43 X -> mark# X, mark# U32 X -> mark# X) (mark# U43 X -> mark# X, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3)) (mark# U43 X -> mark# X, mark# U41(X1, X2, X3) -> mark# X1) (mark# U43 X -> mark# X, mark# U42(X1, X2) -> a__U42#(mark X1, X2)) (mark# U43 X -> mark# X, mark# U42(X1, X2) -> mark# X1) (mark# U43 X -> mark# X, mark# U43 X -> a__U43# mark X) (mark# U43 X -> mark# X, mark# U43 X -> mark# X) (mark# U43 X -> mark# X, mark# isNatIList X -> a__isNatIList# X) (mark# U43 X -> mark# X, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3)) (mark# U43 X -> mark# X, mark# U51(X1, X2, X3) -> mark# X1) (mark# U43 X -> mark# X, mark# U52(X1, X2) -> a__U52#(mark X1, X2)) (mark# U43 X -> mark# X, mark# U52(X1, X2) -> mark# X1) (mark# U43 X -> mark# X, mark# U53 X -> a__U53# mark X) (mark# U43 X -> mark# X, mark# U53 X -> mark# X) (mark# U43 X -> mark# X, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3)) (mark# U43 X -> mark# X, mark# U61(X1, X2, X3) -> mark# X1) (mark# U43 X -> mark# X, mark# U62(X1, X2) -> a__U62#(mark X1, X2)) (mark# U43 X -> mark# X, mark# U62(X1, X2) -> mark# X1) (mark# U43 X -> mark# X, mark# U63 X -> a__U63# mark X) (mark# U43 X -> mark# X, mark# U63 X -> mark# X) (mark# U43 X -> mark# X, mark# U71(X1, X2) -> mark# X1) (mark# U43 X -> mark# X, mark# U71(X1, X2) -> a__U71#(mark X1, X2)) (mark# U43 X -> mark# X, mark# U81 X -> mark# X) (mark# U43 X -> mark# X, mark# U81 X -> a__U81# mark X) (mark# U43 X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U43 X -> mark# X, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U22 X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# U22 X -> mark# X, mark# zeros() -> a__zeros#()) (mark# U22 X -> mark# X, mark# s X -> mark# X) (mark# U22 X -> mark# X, mark# take(X1, X2) -> mark# X1) (mark# U22 X -> mark# X, mark# take(X1, X2) -> mark# X2) (mark# U22 X -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U22 X -> mark# X, mark# length X -> a__length# mark X) (mark# U22 X -> mark# X, mark# length X -> mark# X) (mark# U22 X -> mark# X, mark# isNatIListKind X -> a__isNatIListKind# X) (mark# U22 X -> mark# X, mark# and(X1, X2) -> mark# X1) (mark# U22 X -> mark# X, mark# and(X1, X2) -> a__and#(mark X1, X2)) (mark# U22 X -> mark# X, mark# isNat X -> a__isNat# X) (mark# U22 X -> mark# X, mark# isNatKind X -> a__isNatKind# X) (mark# U22 X -> mark# X, mark# U11(X1, X2) -> a__U11#(mark X1, X2)) (mark# U22 X -> mark# X, mark# U11(X1, X2) -> mark# X1) (mark# U22 X -> mark# X, mark# U12 X -> a__U12# mark X) (mark# U22 X -> mark# X, mark# U12 X -> mark# X) (mark# U22 X -> mark# X, mark# isNatList X -> a__isNatList# X) (mark# U22 X -> mark# X, mark# U21(X1, X2) -> a__U21#(mark X1, X2)) (mark# U22 X -> mark# X, mark# U21(X1, X2) -> mark# X1) (mark# U22 X -> mark# X, mark# U22 X -> a__U22# mark X) (mark# U22 X -> mark# X, mark# U22 X -> mark# X) (mark# U22 X -> mark# X, mark# U31(X1, X2) -> a__U31#(mark X1, X2)) (mark# U22 X -> mark# X, mark# U31(X1, X2) -> mark# X1) (mark# U22 X -> mark# X, mark# U32 X -> a__U32# mark X) (mark# U22 X -> mark# X, mark# U32 X -> mark# X) (mark# U22 X -> mark# X, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3)) (mark# U22 X -> mark# X, mark# U41(X1, X2, X3) -> mark# X1) (mark# U22 X -> mark# X, mark# U42(X1, X2) -> a__U42#(mark X1, X2)) (mark# U22 X -> mark# X, mark# U42(X1, X2) -> mark# X1) (mark# U22 X -> mark# X, mark# U43 X -> a__U43# mark X) (mark# U22 X -> mark# X, mark# U43 X -> mark# X) (mark# U22 X -> mark# X, mark# isNatIList X -> a__isNatIList# X) (mark# U22 X -> mark# X, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3)) (mark# U22 X -> mark# X, mark# U51(X1, X2, X3) -> mark# X1) (mark# U22 X -> mark# X, mark# U52(X1, X2) -> a__U52#(mark X1, X2)) (mark# U22 X -> mark# X, mark# U52(X1, X2) -> mark# X1) (mark# U22 X -> mark# X, mark# U53 X -> a__U53# mark X) (mark# U22 X -> mark# X, mark# U53 X -> mark# X) (mark# U22 X -> mark# X, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3)) (mark# U22 X -> mark# X, mark# U61(X1, X2, X3) -> mark# X1) (mark# U22 X -> mark# X, mark# U62(X1, X2) -> a__U62#(mark X1, X2)) (mark# U22 X -> mark# X, mark# U62(X1, X2) -> mark# X1) (mark# U22 X -> mark# X, mark# U63 X -> a__U63# mark X) (mark# U22 X -> mark# X, mark# U63 X -> mark# X) (mark# U22 X -> mark# X, mark# U71(X1, X2) -> mark# X1) (mark# U22 X -> mark# X, mark# U71(X1, X2) -> a__U71#(mark X1, X2)) (mark# U22 X -> mark# X, mark# U81 X -> mark# X) (mark# U22 X -> mark# X, mark# U81 X -> a__U81# mark X) (mark# U22 X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U22 X -> mark# X, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U12 X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# U12 X -> mark# X, mark# zeros() -> a__zeros#()) (mark# U12 X -> mark# X, mark# s X -> mark# X) (mark# U12 X -> mark# X, mark# take(X1, X2) -> mark# X1) (mark# U12 X -> mark# X, mark# take(X1, X2) -> mark# X2) (mark# U12 X -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U12 X -> mark# X, mark# length X -> a__length# mark X) (mark# U12 X -> mark# X, mark# length X -> mark# X) (mark# U12 X -> mark# X, mark# isNatIListKind X -> a__isNatIListKind# X) (mark# U12 X -> mark# X, mark# and(X1, X2) -> mark# X1) (mark# U12 X -> mark# X, mark# and(X1, X2) -> a__and#(mark X1, X2)) (mark# U12 X -> mark# X, mark# isNat X -> a__isNat# X) (mark# U12 X -> mark# X, mark# isNatKind X -> a__isNatKind# X) (mark# U12 X -> mark# X, mark# U11(X1, X2) -> a__U11#(mark X1, X2)) (mark# U12 X -> mark# X, mark# U11(X1, X2) -> mark# X1) (mark# U12 X -> mark# X, mark# U12 X -> a__U12# mark X) (mark# U12 X -> mark# X, mark# U12 X -> mark# X) (mark# U12 X -> mark# X, mark# isNatList X -> a__isNatList# X) (mark# U12 X -> mark# X, mark# U21(X1, X2) -> a__U21#(mark X1, X2)) (mark# U12 X -> mark# X, mark# U21(X1, X2) -> mark# X1) (mark# U12 X -> mark# X, mark# U22 X -> a__U22# mark X) (mark# U12 X -> mark# X, mark# U22 X -> mark# X) (mark# U12 X -> mark# X, mark# U31(X1, X2) -> a__U31#(mark X1, X2)) (mark# U12 X -> mark# X, mark# U31(X1, X2) -> mark# X1) (mark# U12 X -> mark# X, mark# U32 X -> a__U32# mark X) (mark# U12 X -> mark# X, mark# U32 X -> mark# X) (mark# U12 X -> mark# X, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3)) (mark# U12 X -> mark# X, mark# U41(X1, X2, X3) -> mark# X1) (mark# U12 X -> mark# X, mark# U42(X1, X2) -> a__U42#(mark X1, X2)) (mark# U12 X -> mark# X, mark# U42(X1, X2) -> mark# X1) (mark# U12 X -> mark# X, mark# U43 X -> a__U43# mark X) (mark# U12 X -> mark# X, mark# U43 X -> mark# X) (mark# U12 X -> mark# X, mark# isNatIList X -> a__isNatIList# X) (mark# U12 X -> mark# X, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3)) (mark# U12 X -> mark# X, mark# U51(X1, X2, X3) -> mark# X1) (mark# U12 X -> mark# X, mark# U52(X1, X2) -> a__U52#(mark X1, X2)) (mark# U12 X -> mark# X, mark# U52(X1, X2) -> mark# X1) (mark# U12 X -> mark# X, mark# U53 X -> a__U53# mark X) (mark# U12 X -> mark# X, mark# U53 X -> mark# X) (mark# U12 X -> mark# X, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3)) (mark# U12 X -> mark# X, mark# U61(X1, X2, X3) -> mark# X1) (mark# U12 X -> mark# X, mark# U62(X1, X2) -> a__U62#(mark X1, X2)) (mark# U12 X -> mark# X, mark# U62(X1, X2) -> mark# X1) (mark# U12 X -> mark# X, mark# U63 X -> a__U63# mark X) (mark# U12 X -> mark# X, mark# U63 X -> mark# X) (mark# U12 X -> mark# X, mark# U71(X1, X2) -> mark# X1) (mark# U12 X -> mark# X, mark# U71(X1, X2) -> a__U71#(mark X1, X2)) (mark# U12 X -> mark# X, mark# U81 X -> mark# X) (mark# U12 X -> mark# X, mark# U81 X -> a__U81# mark X) (mark# U12 X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U12 X -> mark# X, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# isNat X -> a__isNat# X, a__isNat# s V1 -> a__U21#(a__isNatKind V1, V1)) (mark# isNat X -> a__isNat# X, a__isNat# s V1 -> a__isNatKind# V1) (mark# isNat X -> a__isNat# X, a__isNat# length V1 -> a__U11#(a__isNatIListKind V1, V1)) (mark# isNat X -> a__isNat# X, a__isNat# length V1 -> a__isNatIListKind# V1) (mark# length X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# length X -> mark# X, mark# zeros() -> a__zeros#()) (mark# length X -> mark# X, mark# s X -> mark# X) (mark# length X -> mark# X, mark# take(X1, X2) -> mark# X1) (mark# length X -> mark# X, mark# take(X1, X2) -> mark# X2) (mark# length X -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# length X -> mark# X, mark# length X -> a__length# mark X) (mark# length X -> mark# X, mark# length X -> mark# X) (mark# length X -> mark# X, mark# isNatIListKind X -> a__isNatIListKind# X) (mark# length X -> mark# X, mark# and(X1, X2) -> mark# X1) (mark# length X -> mark# X, mark# and(X1, X2) -> a__and#(mark X1, X2)) (mark# length X -> mark# X, mark# isNat X -> a__isNat# X) (mark# length X -> mark# X, mark# isNatKind X -> a__isNatKind# X) (mark# length X -> mark# X, mark# U11(X1, X2) -> a__U11#(mark X1, X2)) (mark# length X -> mark# X, mark# U11(X1, X2) -> mark# X1) (mark# length X -> mark# X, mark# U12 X -> a__U12# mark X) (mark# length X -> mark# X, mark# U12 X -> mark# X) (mark# length X -> mark# X, mark# isNatList X -> a__isNatList# X) (mark# length X -> mark# X, mark# U21(X1, X2) -> a__U21#(mark X1, X2)) (mark# length X -> mark# X, mark# U21(X1, X2) -> mark# X1) (mark# length X -> mark# X, mark# U22 X -> a__U22# mark X) (mark# length X -> mark# X, mark# U22 X -> mark# X) (mark# length X -> mark# X, mark# U31(X1, X2) -> a__U31#(mark X1, X2)) (mark# length X -> mark# X, mark# U31(X1, X2) -> mark# X1) (mark# length X -> mark# X, mark# U32 X -> a__U32# mark X) (mark# length X -> mark# X, mark# U32 X -> mark# X) (mark# length X -> mark# X, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3)) (mark# length X -> mark# X, mark# U41(X1, X2, X3) -> mark# X1) (mark# length X -> mark# X, mark# U42(X1, X2) -> a__U42#(mark X1, X2)) (mark# length X -> mark# X, mark# U42(X1, X2) -> mark# X1) (mark# length X -> mark# X, mark# U43 X -> a__U43# mark X) (mark# length X -> mark# X, mark# U43 X -> mark# X) (mark# length X -> mark# X, mark# isNatIList X -> a__isNatIList# X) (mark# length X -> mark# X, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3)) (mark# length X -> mark# X, mark# U51(X1, X2, X3) -> mark# X1) (mark# length X -> mark# X, mark# U52(X1, X2) -> a__U52#(mark X1, X2)) (mark# length X -> mark# X, mark# U52(X1, X2) -> mark# X1) (mark# length X -> mark# X, mark# U53 X -> a__U53# mark X) (mark# length X -> mark# X, mark# U53 X -> mark# X) (mark# length X -> mark# X, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3)) (mark# length X -> mark# X, mark# U61(X1, X2, X3) -> mark# X1) (mark# length X -> mark# X, mark# U62(X1, X2) -> a__U62#(mark X1, X2)) (mark# length X -> mark# X, mark# U62(X1, X2) -> mark# X1) (mark# length X -> mark# X, mark# U63 X -> a__U63# mark X) (mark# length X -> mark# X, mark# U63 X -> mark# X) (mark# length X -> mark# X, mark# U71(X1, X2) -> mark# X1) (mark# length X -> mark# X, mark# U71(X1, X2) -> a__U71#(mark X1, X2)) (mark# length X -> mark# X, mark# U81 X -> mark# X) (mark# length X -> mark# X, mark# U81 X -> a__U81# mark X) (mark# length X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# length X -> mark# X, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (a__U61#(tt(), V1, V2) -> a__U62#(a__isNat V1, V2), a__U62#(tt(), V2) -> a__isNatIList# V2) (a__U61#(tt(), V1, V2) -> a__U62#(a__isNat V1, V2), a__U62#(tt(), V2) -> a__U63# a__isNatIList V2) (a__isNatIList# V -> a__isNatIListKind# V, a__isNatIListKind# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2)) (a__isNatIList# V -> a__isNatIListKind# V, a__isNatIListKind# cons(V1, V2) -> a__isNatKind# V1) (a__isNatIList# V -> a__isNatIListKind# V, a__isNatIListKind# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2)) (a__isNatIList# V -> a__isNatIListKind# V, a__isNatIListKind# take(V1, V2) -> a__isNatKind# V1) (a__U31#(tt(), V) -> a__isNatList# V, a__isNatList# cons(V1, V2) -> a__U51#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2)) (a__U31#(tt(), V) -> a__isNatList# V, a__isNatList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2)) (a__U31#(tt(), V) -> a__isNatList# V, a__isNatList# cons(V1, V2) -> a__isNatKind# V1) (a__U31#(tt(), V) -> a__isNatList# V, a__isNatList# take(V1, V2) -> a__U61#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2)) (a__U31#(tt(), V) -> a__isNatList# V, a__isNatList# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2)) (a__U31#(tt(), V) -> a__isNatList# V, a__isNatList# take(V1, V2) -> a__isNatKind# V1) (a__take#(0(), IL) -> a__isNatIList# IL, a__isNatIList# V -> a__U31#(a__isNatIListKind V, V)) (a__take#(0(), IL) -> a__isNatIList# IL, a__isNatIList# V -> a__isNatIListKind# V) (a__take#(0(), IL) -> a__isNatIList# IL, a__isNatIList# cons(V1, V2) -> a__U41#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2)) (a__take#(0(), IL) -> a__isNatIList# IL, a__isNatIList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2)) (a__take#(0(), IL) -> a__isNatIList# IL, a__isNatIList# cons(V1, V2) -> a__isNatKind# V1) (a__isNatList# take(V1, V2) -> a__U61#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__U61#(tt(), V1, V2) -> a__isNat# V1) (a__isNatList# take(V1, V2) -> a__U61#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__U61#(tt(), V1, V2) -> a__U62#(a__isNat V1, V2)) (mark# U62(X1, X2) -> a__U62#(mark X1, X2), a__U62#(tt(), V2) -> a__isNatIList# V2) (mark# U62(X1, X2) -> a__U62#(mark X1, X2), a__U62#(tt(), V2) -> a__U63# a__isNatIList V2) (mark# U42(X1, X2) -> a__U42#(mark X1, X2), a__U42#(tt(), V2) -> a__U43# a__isNatIList V2) (mark# U42(X1, X2) -> a__U42#(mark X1, X2), a__U42#(tt(), V2) -> a__isNatIList# V2) (mark# U21(X1, X2) -> a__U21#(mark X1, X2), a__U21#(tt(), V1) -> a__U22# a__isNat V1) (mark# U21(X1, X2) -> a__U21#(mark X1, X2), a__U21#(tt(), V1) -> a__isNat# V1) (mark# and(X1, X2) -> a__and#(mark X1, X2), a__and#(tt(), X) -> mark# X) (a__isNatKind# length V1 -> a__isNatIListKind# V1, a__isNatIListKind# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2)) (a__isNatKind# length V1 -> a__isNatIListKind# V1, a__isNatIListKind# cons(V1, V2) -> a__isNatKind# V1) (a__isNatKind# length V1 -> a__isNatIListKind# V1, a__isNatIListKind# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2)) (a__isNatKind# length V1 -> a__isNatIListKind# V1, a__isNatIListKind# take(V1, V2) -> a__isNatKind# V1) (a__isNatIListKind# take(V1, V2) -> a__isNatKind# V1, a__isNatKind# s V1 -> a__isNatKind# V1) (a__isNatIListKind# take(V1, V2) -> a__isNatKind# V1, a__isNatKind# length V1 -> a__isNatIListKind# V1) (a__U61#(tt(), V1, V2) -> a__isNat# V1, a__isNat# s V1 -> a__U21#(a__isNatKind V1, V1)) (a__U61#(tt(), V1, V2) -> a__isNat# V1, a__isNat# s V1 -> a__isNatKind# V1) (a__U61#(tt(), V1, V2) -> a__isNat# V1, a__isNat# length V1 -> a__U11#(a__isNatIListKind V1, V1)) (a__U61#(tt(), V1, V2) -> a__isNat# V1, a__isNat# length V1 -> a__isNatIListKind# V1) (a__isNatIList# cons(V1, V2) -> a__isNatKind# V1, a__isNatKind# s V1 -> a__isNatKind# V1) (a__isNatIList# cons(V1, V2) -> a__isNatKind# V1, a__isNatKind# length V1 -> a__isNatIListKind# V1) (a__U21#(tt(), V1) -> a__isNat# V1, a__isNat# s V1 -> a__U21#(a__isNatKind V1, V1)) (a__U21#(tt(), V1) -> a__isNat# V1, a__isNat# s V1 -> a__isNatKind# V1) (a__U21#(tt(), V1) -> a__isNat# V1, a__isNat# length V1 -> a__U11#(a__isNatIListKind V1, V1)) (a__U21#(tt(), V1) -> a__isNat# V1, a__isNat# length V1 -> a__isNatIListKind# V1) (a__isNat# s V1 -> a__isNatKind# V1, a__isNatKind# s V1 -> a__isNatKind# V1) (a__isNat# s V1 -> a__isNatKind# V1, a__isNatKind# length V1 -> a__isNatIListKind# V1) (a__isNatList# take(V1, V2) -> a__isNatKind# V1, a__isNatKind# s V1 -> a__isNatKind# V1) (a__isNatList# take(V1, V2) -> a__isNatKind# V1, a__isNatKind# length V1 -> a__isNatIListKind# V1) (a__isNatIList# V -> a__U31#(a__isNatIListKind V, V), a__U31#(tt(), V) -> a__isNatList# V) (a__isNatIList# V -> a__U31#(a__isNatIListKind V, V), a__U31#(tt(), V) -> a__U32# a__isNatList V) } STATUS: arrows: 0.859229 SCCS (1): Scc: { a__isNatList# cons(V1, V2) -> a__U51#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatList# cons(V1, V2) -> a__isNatKind# V1, a__isNatList# take(V1, V2) -> a__U61#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatList# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatList# take(V1, V2) -> a__isNatKind# V1, a__U11#(tt(), V1) -> a__isNatList# V1, a__isNat# s V1 -> a__U21#(a__isNatKind V1, V1), a__isNat# s V1 -> a__isNatKind# V1, a__isNat# length V1 -> a__U11#(a__isNatIListKind V1, V1), a__isNat# length V1 -> a__isNatIListKind# V1, a__U21#(tt(), V1) -> a__isNat# V1, a__U31#(tt(), V) -> a__isNatList# V, a__U42#(tt(), V2) -> a__isNatIList# V2, a__U41#(tt(), V1, V2) -> a__isNat# V1, a__U41#(tt(), V1, V2) -> a__U42#(a__isNat V1, V2), a__isNatIList# V -> a__U31#(a__isNatIListKind V, V), a__isNatIList# V -> a__isNatIListKind# V, a__isNatIList# cons(V1, V2) -> a__U41#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatIList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatIList# cons(V1, V2) -> a__isNatKind# V1, a__U52#(tt(), V2) -> a__isNatList# V2, a__U51#(tt(), V1, V2) -> a__isNat# V1, a__U51#(tt(), V1, V2) -> a__U52#(a__isNat V1, V2), a__U62#(tt(), V2) -> a__isNatIList# V2, a__U61#(tt(), V1, V2) -> a__isNat# V1, a__U61#(tt(), V1, V2) -> a__U62#(a__isNat V1, V2), a__length# cons(N, L) -> a__isNatList# L, a__length# cons(N, L) -> a__U71#(a__and(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), a__length# cons(N, L) -> a__and#(a__isNatList L, isNatIListKind L), a__length# cons(N, L) -> a__and#(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X, mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> a__take#(mark X1, mark X2), mark# length X -> a__length# mark X, mark# length X -> mark# X, mark# isNatIListKind X -> a__isNatIListKind# X, mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> a__and#(mark X1, X2), mark# isNat X -> a__isNat# X, mark# isNatKind X -> a__isNatKind# X, mark# U11(X1, X2) -> a__U11#(mark X1, X2), mark# U11(X1, X2) -> mark# X1, mark# U12 X -> mark# X, mark# isNatList X -> a__isNatList# X, mark# U21(X1, X2) -> a__U21#(mark X1, X2), mark# U21(X1, X2) -> mark# X1, mark# U22 X -> mark# X, mark# U31(X1, X2) -> a__U31#(mark X1, X2), mark# U31(X1, X2) -> mark# X1, mark# U32 X -> mark# X, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3), mark# U41(X1, X2, X3) -> mark# X1, mark# U42(X1, X2) -> a__U42#(mark X1, X2), mark# U42(X1, X2) -> mark# X1, mark# U43 X -> mark# X, mark# isNatIList X -> a__isNatIList# X, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3), mark# U51(X1, X2, X3) -> mark# X1, mark# U52(X1, X2) -> a__U52#(mark X1, X2), mark# U52(X1, X2) -> mark# X1, mark# U53 X -> mark# X, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3), mark# U61(X1, X2, X3) -> mark# X1, mark# U62(X1, X2) -> a__U62#(mark X1, X2), mark# U62(X1, X2) -> mark# X1, mark# U63 X -> mark# X, mark# U71(X1, X2) -> mark# X1, mark# U71(X1, X2) -> a__U71#(mark X1, X2), mark# U81 X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4), a__U71#(tt(), L) -> a__length# mark L, a__U71#(tt(), L) -> mark# L, a__U91#(tt(), IL, M, N) -> mark# N, a__and#(tt(), X) -> mark# X, a__isNatIListKind# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatIListKind# cons(V1, V2) -> a__isNatKind# V1, a__isNatIListKind# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatIListKind# take(V1, V2) -> a__isNatKind# V1, a__isNatKind# s V1 -> a__isNatKind# V1, a__isNatKind# length V1 -> a__isNatIListKind# V1, a__take#(0(), IL) -> a__isNatIList# IL, a__take#(0(), IL) -> a__and#(a__isNatIList IL, isNatIListKind IL), a__take#(s M, cons(N, IL)) -> a__isNatIList# IL, a__take#(s M, cons(N, IL)) -> a__U91#(a__and(a__and(a__isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), a__take#(s M, cons(N, IL)) -> a__and#(a__isNatIList IL, isNatIListKind IL), a__take#(s M, cons(N, IL)) -> a__and#(a__and(a__isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))} SCC (90): Strict: { a__isNatList# cons(V1, V2) -> a__U51#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatList# cons(V1, V2) -> a__isNatKind# V1, a__isNatList# take(V1, V2) -> a__U61#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatList# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatList# take(V1, V2) -> a__isNatKind# V1, a__U11#(tt(), V1) -> a__isNatList# V1, a__isNat# s V1 -> a__U21#(a__isNatKind V1, V1), a__isNat# s V1 -> a__isNatKind# V1, a__isNat# length V1 -> a__U11#(a__isNatIListKind V1, V1), a__isNat# length V1 -> a__isNatIListKind# V1, a__U21#(tt(), V1) -> a__isNat# V1, a__U31#(tt(), V) -> a__isNatList# V, a__U42#(tt(), V2) -> a__isNatIList# V2, a__U41#(tt(), V1, V2) -> a__isNat# V1, a__U41#(tt(), V1, V2) -> a__U42#(a__isNat V1, V2), a__isNatIList# V -> a__U31#(a__isNatIListKind V, V), a__isNatIList# V -> a__isNatIListKind# V, a__isNatIList# cons(V1, V2) -> a__U41#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatIList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatIList# cons(V1, V2) -> a__isNatKind# V1, a__U52#(tt(), V2) -> a__isNatList# V2, a__U51#(tt(), V1, V2) -> a__isNat# V1, a__U51#(tt(), V1, V2) -> a__U52#(a__isNat V1, V2), a__U62#(tt(), V2) -> a__isNatIList# V2, a__U61#(tt(), V1, V2) -> a__isNat# V1, a__U61#(tt(), V1, V2) -> a__U62#(a__isNat V1, V2), a__length# cons(N, L) -> a__isNatList# L, a__length# cons(N, L) -> a__U71#(a__and(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), a__length# cons(N, L) -> a__and#(a__isNatList L, isNatIListKind L), a__length# cons(N, L) -> a__and#(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X, mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> a__take#(mark X1, mark X2), mark# length X -> a__length# mark X, mark# length X -> mark# X, mark# isNatIListKind X -> a__isNatIListKind# X, mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> a__and#(mark X1, X2), mark# isNat X -> a__isNat# X, mark# isNatKind X -> a__isNatKind# X, mark# U11(X1, X2) -> a__U11#(mark X1, X2), mark# U11(X1, X2) -> mark# X1, mark# U12 X -> mark# X, mark# isNatList X -> a__isNatList# X, mark# U21(X1, X2) -> a__U21#(mark X1, X2), mark# U21(X1, X2) -> mark# X1, mark# U22 X -> mark# X, mark# U31(X1, X2) -> a__U31#(mark X1, X2), mark# U31(X1, X2) -> mark# X1, mark# U32 X -> mark# X, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3), mark# U41(X1, X2, X3) -> mark# X1, mark# U42(X1, X2) -> a__U42#(mark X1, X2), mark# U42(X1, X2) -> mark# X1, mark# U43 X -> mark# X, mark# isNatIList X -> a__isNatIList# X, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3), mark# U51(X1, X2, X3) -> mark# X1, mark# U52(X1, X2) -> a__U52#(mark X1, X2), mark# U52(X1, X2) -> mark# X1, mark# U53 X -> mark# X, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3), mark# U61(X1, X2, X3) -> mark# X1, mark# U62(X1, X2) -> a__U62#(mark X1, X2), mark# U62(X1, X2) -> mark# X1, mark# U63 X -> mark# X, mark# U71(X1, X2) -> mark# X1, mark# U71(X1, X2) -> a__U71#(mark X1, X2), mark# U81 X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4), a__U71#(tt(), L) -> a__length# mark L, a__U71#(tt(), L) -> mark# L, a__U91#(tt(), IL, M, N) -> mark# N, a__and#(tt(), X) -> mark# X, a__isNatIListKind# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatIListKind# cons(V1, V2) -> a__isNatKind# V1, a__isNatIListKind# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatIListKind# take(V1, V2) -> a__isNatKind# V1, a__isNatKind# s V1 -> a__isNatKind# V1, a__isNatKind# length V1 -> a__isNatIListKind# V1, a__take#(0(), IL) -> a__isNatIList# IL, a__take#(0(), IL) -> a__and#(a__isNatIList IL, isNatIListKind IL), a__take#(s M, cons(N, IL)) -> a__isNatIList# IL, a__take#(s M, cons(N, IL)) -> a__U91#(a__and(a__and(a__isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), a__take#(s M, cons(N, IL)) -> a__and#(a__isNatIList IL, isNatIListKind IL), a__take#(s M, cons(N, IL)) -> a__and#(a__and(a__isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))} Weak: { a__zeros() -> cons(0(), zeros()), a__zeros() -> zeros(), a__U12 X -> U12 X, a__U12 tt() -> tt(), a__isNatList X -> isNatList X, a__isNatList cons(V1, V2) -> a__U51(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatList nil() -> tt(), a__isNatList take(V1, V2) -> a__U61(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__U11(X1, X2) -> U11(X1, X2), a__U11(tt(), V1) -> a__U12 a__isNatList V1, a__U22 X -> U22 X, a__U22 tt() -> tt(), a__isNat X -> isNat X, a__isNat 0() -> tt(), a__isNat s V1 -> a__U21(a__isNatKind V1, V1), a__isNat length V1 -> a__U11(a__isNatIListKind V1, V1), a__U21(X1, X2) -> U21(X1, X2), a__U21(tt(), V1) -> a__U22 a__isNat V1, a__U32 X -> U32 X, a__U32 tt() -> tt(), a__U31(X1, X2) -> U31(X1, X2), a__U31(tt(), V) -> a__U32 a__isNatList V, a__U42(X1, X2) -> U42(X1, X2), a__U42(tt(), V2) -> a__U43 a__isNatIList V2, a__U41(X1, X2, X3) -> U41(X1, X2, X3), a__U41(tt(), V1, V2) -> a__U42(a__isNat V1, V2), a__U43 X -> U43 X, a__U43 tt() -> tt(), a__isNatIList V -> a__U31(a__isNatIListKind V, V), a__isNatIList X -> isNatIList X, a__isNatIList cons(V1, V2) -> a__U41(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatIList zeros() -> tt(), a__U52(X1, X2) -> U52(X1, X2), a__U52(tt(), V2) -> a__U53 a__isNatList V2, a__U51(X1, X2, X3) -> U51(X1, X2, X3), a__U51(tt(), V1, V2) -> a__U52(a__isNat V1, V2), a__U53 X -> U53 X, a__U53 tt() -> tt(), a__U62(X1, X2) -> U62(X1, X2), a__U62(tt(), V2) -> a__U63 a__isNatIList V2, a__U61(X1, X2, X3) -> U61(X1, X2, X3), a__U61(tt(), V1, V2) -> a__U62(a__isNat V1, V2), a__U63 X -> U63 X, a__U63 tt() -> tt(), a__length X -> length X, a__length cons(N, L) -> a__U71(a__and(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), a__length nil() -> 0(), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark zeros() -> a__zeros(), mark tt() -> tt(), mark s X -> s mark X, mark nil() -> nil(), mark take(X1, X2) -> a__take(mark X1, mark X2), mark length X -> a__length mark X, mark isNatIListKind X -> a__isNatIListKind X, mark and(X1, X2) -> a__and(mark X1, X2), mark isNat X -> a__isNat X, mark isNatKind X -> a__isNatKind X, mark U11(X1, X2) -> a__U11(mark X1, X2), mark U12 X -> a__U12 mark X, mark isNatList X -> a__isNatList X, mark U21(X1, X2) -> a__U21(mark X1, X2), mark U22 X -> a__U22 mark X, mark U31(X1, X2) -> a__U31(mark X1, X2), mark U32 X -> a__U32 mark X, mark U41(X1, X2, X3) -> a__U41(mark X1, X2, X3), mark U42(X1, X2) -> a__U42(mark X1, X2), mark U43 X -> a__U43 mark X, mark isNatIList X -> a__isNatIList X, mark U51(X1, X2, X3) -> a__U51(mark X1, X2, X3), mark U52(X1, X2) -> a__U52(mark X1, X2), mark U53 X -> a__U53 mark X, mark U61(X1, X2, X3) -> a__U61(mark X1, X2, X3), mark U62(X1, X2) -> a__U62(mark X1, X2), mark U63 X -> a__U63 mark X, mark U71(X1, X2) -> a__U71(mark X1, X2), mark U81 X -> a__U81 mark X, mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4), a__U71(X1, X2) -> U71(X1, X2), a__U71(tt(), L) -> s a__length mark L, a__U81 X -> U81 X, a__U81 tt() -> nil(), a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4), a__U91(tt(), IL, M, N) -> cons(mark N, take(M, IL)), a__and(X1, X2) -> and(X1, X2), a__and(tt(), X) -> mark X, a__isNatIListKind X -> isNatIListKind X, a__isNatIListKind cons(V1, V2) -> a__and(a__isNatKind V1, isNatIListKind V2), a__isNatIListKind zeros() -> tt(), a__isNatIListKind nil() -> tt(), a__isNatIListKind take(V1, V2) -> a__and(a__isNatKind V1, isNatIListKind V2), a__isNatKind X -> isNatKind X, a__isNatKind 0() -> tt(), a__isNatKind s V1 -> a__isNatKind V1, a__isNatKind length V1 -> a__isNatIListKind V1, a__take(X1, X2) -> take(X1, X2), a__take(0(), IL) -> a__U81 a__and(a__isNatIList IL, isNatIListKind IL), a__take(s M, cons(N, IL)) -> a__U91(a__and(a__and(a__isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [a__U91](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U91](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [a__U41](x0, x1, x2) = x0, [a__U51](x0, x1, x2) = x0, [a__U61](x0, x1, x2) = x0, [U41](x0, x1, x2) = x0, [U51](x0, x1, x2) = x0, [U61](x0, x1, x2) = x0, [cons](x0, x1) = x0 + x1, [a__U11](x0, x1) = x0, [a__U21](x0, x1) = x0, [a__U31](x0, x1) = x0, [a__U42](x0, x1) = x0, [a__U52](x0, x1) = x0, [a__U62](x0, x1) = x0, [a__U71](x0, x1) = x0 + x1, [take](x0, x1) = x0 + x1 + 1, [a__and](x0, x1) = x0 + x1, [and](x0, x1) = x0 + x1, [a__take](x0, x1) = x0 + x1 + 1, [U11](x0, x1) = x0, [U21](x0, x1) = x0, [U31](x0, x1) = x0, [U42](x0, x1) = x0, [U52](x0, x1) = x0, [U62](x0, x1) = x0, [U71](x0, x1) = x0 + x1, [a__U12](x0) = x0, [a__isNatList](x0) = 0, [a__U22](x0) = x0, [a__isNat](x0) = 0, [a__U32](x0) = x0, [a__U43](x0) = x0, [a__isNatIList](x0) = 0, [a__U53](x0) = x0, [a__U63](x0) = x0, [s](x0) = x0, [a__length](x0) = x0, [mark](x0) = x0, [a__U81](x0) = x0, [a__isNatIListKind](x0) = 0, [length](x0) = x0, [a__isNatKind](x0) = 0, [isNatIListKind](x0) = 0, [isNat](x0) = 0, [isNatKind](x0) = 0, [U12](x0) = x0, [isNatList](x0) = 0, [U22](x0) = x0, [U32](x0) = x0, [U43](x0) = x0, [isNatIList](x0) = 0, [U53](x0) = x0, [U63](x0) = x0, [U81](x0) = x0, [0] = 0, [zeros] = 0, [a__zeros] = 0, [tt] = 0, [nil] = 0, [a__U91#](x0, x1, x2, x3) = x0, [a__U41#](x0, x1, x2) = 0, [a__U51#](x0, x1, x2) = 0, [a__U61#](x0, x1, x2) = 0, [a__U11#](x0, x1) = 0, [a__U21#](x0, x1) = 0, [a__U31#](x0, x1) = 0, [a__U42#](x0, x1) = 0, [a__U52#](x0, x1) = 0, [a__U62#](x0, x1) = 0, [a__U71#](x0, x1) = x0, [a__and#](x0, x1) = x0, [a__take#](x0, x1) = x0 + 1, [a__isNatList#](x0) = 0, [a__isNat#](x0) = 0, [a__isNatIList#](x0) = 0, [a__length#](x0) = x0, [mark#](x0) = x0, [a__isNatIListKind#](x0) = 0, [a__isNatKind#](x0) = 0 Strict: a__take#(s M, cons(N, IL)) -> a__and#(a__and(a__isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) 1 + 1N + 0M + 1IL >= 0 + 0N + 0M + 0IL a__take#(s M, cons(N, IL)) -> a__and#(a__isNatIList IL, isNatIListKind IL) 1 + 1N + 0M + 1IL >= 0 + 0IL a__take#(s M, cons(N, IL)) -> a__U91#(a__and(a__and(a__isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N) 1 + 1N + 0M + 1IL >= 0 + 1N + 0M + 0IL a__take#(s M, cons(N, IL)) -> a__isNatIList# IL 1 + 1N + 0M + 1IL >= 0 + 0IL a__take#(0(), IL) -> a__and#(a__isNatIList IL, isNatIListKind IL) 1 + 1IL >= 0 + 0IL a__take#(0(), IL) -> a__isNatIList# IL 1 + 1IL >= 0 + 0IL a__isNatKind# length V1 -> a__isNatIListKind# V1 0 + 0V1 >= 0 + 0V1 a__isNatKind# s V1 -> a__isNatKind# V1 0 + 0V1 >= 0 + 0V1 a__isNatIListKind# take(V1, V2) -> a__isNatKind# V1 0 + 0V1 + 0V2 >= 0 + 0V1 a__isNatIListKind# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__isNatIListKind# cons(V1, V2) -> a__isNatKind# V1 0 + 0V1 + 0V2 >= 0 + 0V1 a__isNatIListKind# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__and#(tt(), X) -> mark# X 0 + 1X >= 0 + 1X a__U91#(tt(), IL, M, N) -> mark# N 0 + 1N + 0M + 0IL >= 0 + 1N a__U71#(tt(), L) -> mark# L 0 + 1L >= 0 + 1L a__U71#(tt(), L) -> a__length# mark L 0 + 1L >= 0 + 1L mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 0X1 + 0X2 + 0X3 + 1X4 mark# U91(X1, X2, X3, X4) -> mark# X1 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 mark# U81 X -> mark# X 0 + 1X >= 0 + 1X mark# U71(X1, X2) -> a__U71#(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 0X1 + 1X2 mark# U71(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 mark# U63 X -> mark# X 0 + 1X >= 0 + 1X mark# U62(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 mark# U62(X1, X2) -> a__U62#(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 mark# U61(X1, X2, X3) -> mark# X1 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 mark# U53 X -> mark# X 0 + 1X >= 0 + 1X mark# U52(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 mark# U52(X1, X2) -> a__U52#(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 mark# U51(X1, X2, X3) -> mark# X1 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 mark# isNatIList X -> a__isNatIList# X 0 + 0X >= 0 + 0X mark# U43 X -> mark# X 0 + 1X >= 0 + 1X mark# U42(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 mark# U42(X1, X2) -> a__U42#(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 mark# U41(X1, X2, X3) -> mark# X1 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 mark# U32 X -> mark# X 0 + 1X >= 0 + 1X mark# U31(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 mark# U31(X1, X2) -> a__U31#(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 mark# U22 X -> mark# X 0 + 1X >= 0 + 1X mark# U21(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 mark# U21(X1, X2) -> a__U21#(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 mark# isNatList X -> a__isNatList# X 0 + 0X >= 0 + 0X mark# U12 X -> mark# X 0 + 1X >= 0 + 1X mark# U11(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 mark# U11(X1, X2) -> a__U11#(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 mark# isNatKind X -> a__isNatKind# X 0 + 0X >= 0 + 0X mark# isNat X -> a__isNat# X 0 + 0X >= 0 + 0X mark# and(X1, X2) -> a__and#(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 0X1 + 1X2 mark# and(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 mark# isNatIListKind X -> a__isNatIListKind# X 0 + 0X >= 0 + 0X mark# length X -> mark# X 0 + 1X >= 0 + 1X mark# length X -> a__length# mark X 0 + 1X >= 0 + 1X mark# take(X1, X2) -> a__take#(mark X1, mark X2) 1 + 1X1 + 1X2 >= 1 + 0X1 + 1X2 mark# take(X1, X2) -> mark# X2 1 + 1X1 + 1X2 >= 0 + 1X2 mark# take(X1, X2) -> mark# X1 1 + 1X1 + 1X2 >= 0 + 1X1 mark# s X -> mark# X 0 + 1X >= 0 + 1X mark# cons(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 a__length# cons(N, L) -> a__and#(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)) 0 + 1L + 1N >= 0 + 0L + 0N a__length# cons(N, L) -> a__and#(a__isNatList L, isNatIListKind L) 0 + 1L + 1N >= 0 + 0L a__length# cons(N, L) -> a__U71#(a__and(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L) 0 + 1L + 1N >= 0 + 1L + 0N a__length# cons(N, L) -> a__isNatList# L 0 + 1L + 1N >= 0 + 0L a__U61#(tt(), V1, V2) -> a__U62#(a__isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__U61#(tt(), V1, V2) -> a__isNat# V1 0 + 0V1 + 0V2 >= 0 + 0V1 a__U62#(tt(), V2) -> a__isNatIList# V2 0 + 0V2 >= 0 + 0V2 a__U51#(tt(), V1, V2) -> a__U52#(a__isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__U51#(tt(), V1, V2) -> a__isNat# V1 0 + 0V1 + 0V2 >= 0 + 0V1 a__U52#(tt(), V2) -> a__isNatList# V2 0 + 0V2 >= 0 + 0V2 a__isNatIList# cons(V1, V2) -> a__isNatKind# V1 0 + 0V1 + 0V2 >= 0 + 0V1 a__isNatIList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__isNatIList# cons(V1, V2) -> a__U41#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__isNatIList# V -> a__isNatIListKind# V 0 + 0V >= 0 + 0V a__isNatIList# V -> a__U31#(a__isNatIListKind V, V) 0 + 0V >= 0 + 0V a__U41#(tt(), V1, V2) -> a__U42#(a__isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__U41#(tt(), V1, V2) -> a__isNat# V1 0 + 0V1 + 0V2 >= 0 + 0V1 a__U42#(tt(), V2) -> a__isNatIList# V2 0 + 0V2 >= 0 + 0V2 a__U31#(tt(), V) -> a__isNatList# V 0 + 0V >= 0 + 0V a__U21#(tt(), V1) -> a__isNat# V1 0 + 0V1 >= 0 + 0V1 a__isNat# length V1 -> a__isNatIListKind# V1 0 + 0V1 >= 0 + 0V1 a__isNat# length V1 -> a__U11#(a__isNatIListKind V1, V1) 0 + 0V1 >= 0 + 0V1 a__isNat# s V1 -> a__isNatKind# V1 0 + 0V1 >= 0 + 0V1 a__isNat# s V1 -> a__U21#(a__isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 a__U11#(tt(), V1) -> a__isNatList# V1 0 + 0V1 >= 0 + 0V1 a__isNatList# take(V1, V2) -> a__isNatKind# V1 0 + 0V1 + 0V2 >= 0 + 0V1 a__isNatList# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__isNatList# take(V1, V2) -> a__U61#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__isNatList# cons(V1, V2) -> a__isNatKind# V1 0 + 0V1 + 0V2 >= 0 + 0V1 a__isNatList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__isNatList# cons(V1, V2) -> a__U51#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 Weak: a__take(s M, cons(N, IL)) -> a__U91(a__and(a__and(a__isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N) 1 + 1N + 1M + 1IL >= 1 + 1N + 1M + 1IL a__take(0(), IL) -> a__U81 a__and(a__isNatIList IL, isNatIListKind IL) 1 + 1IL >= 0 + 0IL a__take(X1, X2) -> take(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 a__isNatKind length V1 -> a__isNatIListKind V1 0 + 0V1 >= 0 + 0V1 a__isNatKind s V1 -> a__isNatKind V1 0 + 0V1 >= 0 + 0V1 a__isNatKind 0() -> tt() 0 >= 0 a__isNatKind X -> isNatKind X 0 + 0X >= 0 + 0X a__isNatIListKind take(V1, V2) -> a__and(a__isNatKind V1, isNatIListKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__isNatIListKind nil() -> tt() 0 >= 0 a__isNatIListKind zeros() -> tt() 0 >= 0 a__isNatIListKind cons(V1, V2) -> a__and(a__isNatKind V1, isNatIListKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__isNatIListKind X -> isNatIListKind X 0 + 0X >= 0 + 0X a__and(tt(), X) -> mark X 0 + 1X >= 0 + 1X a__and(X1, X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 a__U91(tt(), IL, M, N) -> cons(mark N, take(M, IL)) 1 + 1N + 1M + 1IL >= 1 + 1N + 1M + 1IL a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 a__U81 tt() -> nil() 0 >= 0 a__U81 X -> U81 X 0 + 1X >= 0 + 1X a__U71(tt(), L) -> s a__length mark L 0 + 1L >= 0 + 1L a__U71(X1, X2) -> U71(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 mark U81 X -> a__U81 mark X 0 + 1X >= 0 + 1X mark U71(X1, X2) -> a__U71(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark U63 X -> a__U63 mark X 0 + 1X >= 0 + 1X mark U62(X1, X2) -> a__U62(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark U61(X1, X2, X3) -> a__U61(mark X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 mark U53 X -> a__U53 mark X 0 + 1X >= 0 + 1X mark U52(X1, X2) -> a__U52(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark U51(X1, X2, X3) -> a__U51(mark X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 mark isNatIList X -> a__isNatIList X 0 + 0X >= 0 + 0X mark U43 X -> a__U43 mark X 0 + 1X >= 0 + 1X mark U42(X1, X2) -> a__U42(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark U41(X1, X2, X3) -> a__U41(mark X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 mark U32 X -> a__U32 mark X 0 + 1X >= 0 + 1X mark U31(X1, X2) -> a__U31(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark U22 X -> a__U22 mark X 0 + 1X >= 0 + 1X mark U21(X1, X2) -> a__U21(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark isNatList X -> a__isNatList X 0 + 0X >= 0 + 0X mark U12 X -> a__U12 mark X 0 + 1X >= 0 + 1X mark U11(X1, X2) -> a__U11(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark isNatKind X -> a__isNatKind X 0 + 0X >= 0 + 0X mark isNat X -> a__isNat X 0 + 0X >= 0 + 0X mark and(X1, X2) -> a__and(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark isNatIListKind X -> a__isNatIListKind X 0 + 0X >= 0 + 0X mark length X -> a__length mark X 0 + 1X >= 0 + 1X mark take(X1, X2) -> a__take(mark X1, mark X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark nil() -> nil() 0 >= 0 mark s X -> s mark X 0 + 1X >= 0 + 1X mark tt() -> tt() 0 >= 0 mark zeros() -> a__zeros() 0 >= 0 mark 0() -> 0() 0 >= 0 mark cons(X1, X2) -> cons(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 a__length nil() -> 0() 0 >= 0 a__length cons(N, L) -> a__U71(a__and(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L) 0 + 1L + 1N >= 0 + 1L + 0N a__length X -> length X 0 + 1X >= 0 + 1X a__U63 tt() -> tt() 0 >= 0 a__U63 X -> U63 X 0 + 1X >= 0 + 1X a__U61(tt(), V1, V2) -> a__U62(a__isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__U61(X1, X2, X3) -> U61(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 a__U62(tt(), V2) -> a__U63 a__isNatIList V2 0 + 0V2 >= 0 + 0V2 a__U62(X1, X2) -> U62(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__U53 tt() -> tt() 0 >= 0 a__U53 X -> U53 X 0 + 1X >= 0 + 1X a__U51(tt(), V1, V2) -> a__U52(a__isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__U51(X1, X2, X3) -> U51(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 a__U52(tt(), V2) -> a__U53 a__isNatList V2 0 + 0V2 >= 0 + 0V2 a__U52(X1, X2) -> U52(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__isNatIList zeros() -> tt() 0 >= 0 a__isNatIList cons(V1, V2) -> a__U41(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__isNatIList X -> isNatIList X 0 + 0X >= 0 + 0X a__isNatIList V -> a__U31(a__isNatIListKind V, V) 0 + 0V >= 0 + 0V a__U43 tt() -> tt() 0 >= 0 a__U43 X -> U43 X 0 + 1X >= 0 + 1X a__U41(tt(), V1, V2) -> a__U42(a__isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__U41(X1, X2, X3) -> U41(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 a__U42(tt(), V2) -> a__U43 a__isNatIList V2 0 + 0V2 >= 0 + 0V2 a__U42(X1, X2) -> U42(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__U31(tt(), V) -> a__U32 a__isNatList V 0 + 0V >= 0 + 0V a__U31(X1, X2) -> U31(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__U32 tt() -> tt() 0 >= 0 a__U32 X -> U32 X 0 + 1X >= 0 + 1X a__U21(tt(), V1) -> a__U22 a__isNat V1 0 + 0V1 >= 0 + 0V1 a__U21(X1, X2) -> U21(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__isNat length V1 -> a__U11(a__isNatIListKind V1, V1) 0 + 0V1 >= 0 + 0V1 a__isNat s V1 -> a__U21(a__isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 a__isNat 0() -> tt() 0 >= 0 a__isNat X -> isNat X 0 + 0X >= 0 + 0X a__U22 tt() -> tt() 0 >= 0 a__U22 X -> U22 X 0 + 1X >= 0 + 1X a__U11(tt(), V1) -> a__U12 a__isNatList V1 0 + 0V1 >= 0 + 0V1 a__U11(X1, X2) -> U11(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__isNatList take(V1, V2) -> a__U61(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__isNatList nil() -> tt() 0 >= 0 a__isNatList cons(V1, V2) -> a__U51(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__isNatList X -> isNatList X 0 + 0X >= 0 + 0X a__U12 tt() -> tt() 0 >= 0 a__U12 X -> U12 X 0 + 1X >= 0 + 1X a__zeros() -> zeros() 0 >= 0 a__zeros() -> cons(0(), zeros()) 0 >= 0 SCCS (1): Scc: { a__isNatList# cons(V1, V2) -> a__U51#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatList# cons(V1, V2) -> a__isNatKind# V1, a__isNatList# take(V1, V2) -> a__U61#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatList# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatList# take(V1, V2) -> a__isNatKind# V1, a__U11#(tt(), V1) -> a__isNatList# V1, a__isNat# s V1 -> a__U21#(a__isNatKind V1, V1), a__isNat# s V1 -> a__isNatKind# V1, a__isNat# length V1 -> a__U11#(a__isNatIListKind V1, V1), a__isNat# length V1 -> a__isNatIListKind# V1, a__U21#(tt(), V1) -> a__isNat# V1, a__U31#(tt(), V) -> a__isNatList# V, a__U42#(tt(), V2) -> a__isNatIList# V2, a__U41#(tt(), V1, V2) -> a__isNat# V1, a__U41#(tt(), V1, V2) -> a__U42#(a__isNat V1, V2), a__isNatIList# V -> a__U31#(a__isNatIListKind V, V), a__isNatIList# V -> a__isNatIListKind# V, a__isNatIList# cons(V1, V2) -> a__U41#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatIList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatIList# cons(V1, V2) -> a__isNatKind# V1, a__U52#(tt(), V2) -> a__isNatList# V2, a__U51#(tt(), V1, V2) -> a__isNat# V1, a__U51#(tt(), V1, V2) -> a__U52#(a__isNat V1, V2), a__U62#(tt(), V2) -> a__isNatIList# V2, a__U61#(tt(), V1, V2) -> a__isNat# V1, a__U61#(tt(), V1, V2) -> a__U62#(a__isNat V1, V2), a__length# cons(N, L) -> a__isNatList# L, a__length# cons(N, L) -> a__U71#(a__and(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), a__length# cons(N, L) -> a__and#(a__isNatList L, isNatIListKind L), a__length# cons(N, L) -> a__and#(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X, mark# length X -> a__length# mark X, mark# length X -> mark# X, mark# isNatIListKind X -> a__isNatIListKind# X, mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> a__and#(mark X1, X2), mark# isNat X -> a__isNat# X, mark# isNatKind X -> a__isNatKind# X, mark# U11(X1, X2) -> a__U11#(mark X1, X2), mark# U11(X1, X2) -> mark# X1, mark# U12 X -> mark# X, mark# isNatList X -> a__isNatList# X, mark# U21(X1, X2) -> a__U21#(mark X1, X2), mark# U21(X1, X2) -> mark# X1, mark# U22 X -> mark# X, mark# U31(X1, X2) -> a__U31#(mark X1, X2), mark# U31(X1, X2) -> mark# X1, mark# U32 X -> mark# X, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3), mark# U41(X1, X2, X3) -> mark# X1, mark# U42(X1, X2) -> a__U42#(mark X1, X2), mark# U42(X1, X2) -> mark# X1, mark# U43 X -> mark# X, mark# isNatIList X -> a__isNatIList# X, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3), mark# U51(X1, X2, X3) -> mark# X1, mark# U52(X1, X2) -> a__U52#(mark X1, X2), mark# U52(X1, X2) -> mark# X1, mark# U53 X -> mark# X, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3), mark# U61(X1, X2, X3) -> mark# X1, mark# U62(X1, X2) -> a__U62#(mark X1, X2), mark# U62(X1, X2) -> mark# X1, mark# U63 X -> mark# X, mark# U71(X1, X2) -> mark# X1, mark# U71(X1, X2) -> a__U71#(mark X1, X2), mark# U81 X -> mark# X, a__U71#(tt(), L) -> a__length# mark L, a__U71#(tt(), L) -> mark# L, a__and#(tt(), X) -> mark# X, a__isNatIListKind# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatIListKind# cons(V1, V2) -> a__isNatKind# V1, a__isNatIListKind# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatIListKind# take(V1, V2) -> a__isNatKind# V1, a__isNatKind# s V1 -> a__isNatKind# V1, a__isNatKind# length V1 -> a__isNatIListKind# V1} SCC (78): Strict: { a__isNatList# cons(V1, V2) -> a__U51#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatList# cons(V1, V2) -> a__isNatKind# V1, a__isNatList# take(V1, V2) -> a__U61#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatList# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatList# take(V1, V2) -> a__isNatKind# V1, a__U11#(tt(), V1) -> a__isNatList# V1, a__isNat# s V1 -> a__U21#(a__isNatKind V1, V1), a__isNat# s V1 -> a__isNatKind# V1, a__isNat# length V1 -> a__U11#(a__isNatIListKind V1, V1), a__isNat# length V1 -> a__isNatIListKind# V1, a__U21#(tt(), V1) -> a__isNat# V1, a__U31#(tt(), V) -> a__isNatList# V, a__U42#(tt(), V2) -> a__isNatIList# V2, a__U41#(tt(), V1, V2) -> a__isNat# V1, a__U41#(tt(), V1, V2) -> a__U42#(a__isNat V1, V2), a__isNatIList# V -> a__U31#(a__isNatIListKind V, V), a__isNatIList# V -> a__isNatIListKind# V, a__isNatIList# cons(V1, V2) -> a__U41#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatIList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatIList# cons(V1, V2) -> a__isNatKind# V1, a__U52#(tt(), V2) -> a__isNatList# V2, a__U51#(tt(), V1, V2) -> a__isNat# V1, a__U51#(tt(), V1, V2) -> a__U52#(a__isNat V1, V2), a__U62#(tt(), V2) -> a__isNatIList# V2, a__U61#(tt(), V1, V2) -> a__isNat# V1, a__U61#(tt(), V1, V2) -> a__U62#(a__isNat V1, V2), a__length# cons(N, L) -> a__isNatList# L, a__length# cons(N, L) -> a__U71#(a__and(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), a__length# cons(N, L) -> a__and#(a__isNatList L, isNatIListKind L), a__length# cons(N, L) -> a__and#(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X, mark# length X -> a__length# mark X, mark# length X -> mark# X, mark# isNatIListKind X -> a__isNatIListKind# X, mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> a__and#(mark X1, X2), mark# isNat X -> a__isNat# X, mark# isNatKind X -> a__isNatKind# X, mark# U11(X1, X2) -> a__U11#(mark X1, X2), mark# U11(X1, X2) -> mark# X1, mark# U12 X -> mark# X, mark# isNatList X -> a__isNatList# X, mark# U21(X1, X2) -> a__U21#(mark X1, X2), mark# U21(X1, X2) -> mark# X1, mark# U22 X -> mark# X, mark# U31(X1, X2) -> a__U31#(mark X1, X2), mark# U31(X1, X2) -> mark# X1, mark# U32 X -> mark# X, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3), mark# U41(X1, X2, X3) -> mark# X1, mark# U42(X1, X2) -> a__U42#(mark X1, X2), mark# U42(X1, X2) -> mark# X1, mark# U43 X -> mark# X, mark# isNatIList X -> a__isNatIList# X, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3), mark# U51(X1, X2, X3) -> mark# X1, mark# U52(X1, X2) -> a__U52#(mark X1, X2), mark# U52(X1, X2) -> mark# X1, mark# U53 X -> mark# X, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3), mark# U61(X1, X2, X3) -> mark# X1, mark# U62(X1, X2) -> a__U62#(mark X1, X2), mark# U62(X1, X2) -> mark# X1, mark# U63 X -> mark# X, mark# U71(X1, X2) -> mark# X1, mark# U71(X1, X2) -> a__U71#(mark X1, X2), mark# U81 X -> mark# X, a__U71#(tt(), L) -> a__length# mark L, a__U71#(tt(), L) -> mark# L, a__and#(tt(), X) -> mark# X, a__isNatIListKind# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatIListKind# cons(V1, V2) -> a__isNatKind# V1, a__isNatIListKind# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatIListKind# take(V1, V2) -> a__isNatKind# V1, a__isNatKind# s V1 -> a__isNatKind# V1, a__isNatKind# length V1 -> a__isNatIListKind# V1} Weak: { a__zeros() -> cons(0(), zeros()), a__zeros() -> zeros(), a__U12 X -> U12 X, a__U12 tt() -> tt(), a__isNatList X -> isNatList X, a__isNatList cons(V1, V2) -> a__U51(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatList nil() -> tt(), a__isNatList take(V1, V2) -> a__U61(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__U11(X1, X2) -> U11(X1, X2), a__U11(tt(), V1) -> a__U12 a__isNatList V1, a__U22 X -> U22 X, a__U22 tt() -> tt(), a__isNat X -> isNat X, a__isNat 0() -> tt(), a__isNat s V1 -> a__U21(a__isNatKind V1, V1), a__isNat length V1 -> a__U11(a__isNatIListKind V1, V1), a__U21(X1, X2) -> U21(X1, X2), a__U21(tt(), V1) -> a__U22 a__isNat V1, a__U32 X -> U32 X, a__U32 tt() -> tt(), a__U31(X1, X2) -> U31(X1, X2), a__U31(tt(), V) -> a__U32 a__isNatList V, a__U42(X1, X2) -> U42(X1, X2), a__U42(tt(), V2) -> a__U43 a__isNatIList V2, a__U41(X1, X2, X3) -> U41(X1, X2, X3), a__U41(tt(), V1, V2) -> a__U42(a__isNat V1, V2), a__U43 X -> U43 X, a__U43 tt() -> tt(), a__isNatIList V -> a__U31(a__isNatIListKind V, V), a__isNatIList X -> isNatIList X, a__isNatIList cons(V1, V2) -> a__U41(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatIList zeros() -> tt(), a__U52(X1, X2) -> U52(X1, X2), a__U52(tt(), V2) -> a__U53 a__isNatList V2, a__U51(X1, X2, X3) -> U51(X1, X2, X3), a__U51(tt(), V1, V2) -> a__U52(a__isNat V1, V2), a__U53 X -> U53 X, a__U53 tt() -> tt(), a__U62(X1, X2) -> U62(X1, X2), a__U62(tt(), V2) -> a__U63 a__isNatIList V2, a__U61(X1, X2, X3) -> U61(X1, X2, X3), a__U61(tt(), V1, V2) -> a__U62(a__isNat V1, V2), a__U63 X -> U63 X, a__U63 tt() -> tt(), a__length X -> length X, a__length cons(N, L) -> a__U71(a__and(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), a__length nil() -> 0(), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark zeros() -> a__zeros(), mark tt() -> tt(), mark s X -> s mark X, mark nil() -> nil(), mark take(X1, X2) -> a__take(mark X1, mark X2), mark length X -> a__length mark X, mark isNatIListKind X -> a__isNatIListKind X, mark and(X1, X2) -> a__and(mark X1, X2), mark isNat X -> a__isNat X, mark isNatKind X -> a__isNatKind X, mark U11(X1, X2) -> a__U11(mark X1, X2), mark U12 X -> a__U12 mark X, mark isNatList X -> a__isNatList X, mark U21(X1, X2) -> a__U21(mark X1, X2), mark U22 X -> a__U22 mark X, mark U31(X1, X2) -> a__U31(mark X1, X2), mark U32 X -> a__U32 mark X, mark U41(X1, X2, X3) -> a__U41(mark X1, X2, X3), mark U42(X1, X2) -> a__U42(mark X1, X2), mark U43 X -> a__U43 mark X, mark isNatIList X -> a__isNatIList X, mark U51(X1, X2, X3) -> a__U51(mark X1, X2, X3), mark U52(X1, X2) -> a__U52(mark X1, X2), mark U53 X -> a__U53 mark X, mark U61(X1, X2, X3) -> a__U61(mark X1, X2, X3), mark U62(X1, X2) -> a__U62(mark X1, X2), mark U63 X -> a__U63 mark X, mark U71(X1, X2) -> a__U71(mark X1, X2), mark U81 X -> a__U81 mark X, mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4), a__U71(X1, X2) -> U71(X1, X2), a__U71(tt(), L) -> s a__length mark L, a__U81 X -> U81 X, a__U81 tt() -> nil(), a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4), a__U91(tt(), IL, M, N) -> cons(mark N, take(M, IL)), a__and(X1, X2) -> and(X1, X2), a__and(tt(), X) -> mark X, a__isNatIListKind X -> isNatIListKind X, a__isNatIListKind cons(V1, V2) -> a__and(a__isNatKind V1, isNatIListKind V2), a__isNatIListKind zeros() -> tt(), a__isNatIListKind nil() -> tt(), a__isNatIListKind take(V1, V2) -> a__and(a__isNatKind V1, isNatIListKind V2), a__isNatKind X -> isNatKind X, a__isNatKind 0() -> tt(), a__isNatKind s V1 -> a__isNatKind V1, a__isNatKind length V1 -> a__isNatIListKind V1, a__take(X1, X2) -> take(X1, X2), a__take(0(), IL) -> a__U81 a__and(a__isNatIList IL, isNatIListKind IL), a__take(s M, cons(N, IL)) -> a__U91(a__and(a__and(a__isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [a__U91](x0, x1, x2, x3) = x0 + x1 + 1, [U91](x0, x1, x2, x3) = x0 + x1 + 1, [a__U41](x0, x1, x2) = x0, [a__U51](x0, x1, x2) = x0, [a__U61](x0, x1, x2) = x0, [U41](x0, x1, x2) = x0, [U51](x0, x1, x2) = x0, [U61](x0, x1, x2) = x0, [cons](x0, x1) = x0 + x1, [a__U11](x0, x1) = x0, [a__U21](x0, x1) = x0, [a__U31](x0, x1) = x0, [a__U42](x0, x1) = x0, [a__U52](x0, x1) = x0, [a__U62](x0, x1) = x0, [a__U71](x0, x1) = x0 + x1, [take](x0, x1) = x0 + 1, [a__and](x0, x1) = x0 + x1, [and](x0, x1) = x0 + x1, [a__take](x0, x1) = x0 + 1, [U11](x0, x1) = x0, [U21](x0, x1) = x0, [U31](x0, x1) = x0, [U42](x0, x1) = x0, [U52](x0, x1) = x0, [U62](x0, x1) = x0, [U71](x0, x1) = x0 + x1, [a__U12](x0) = x0, [a__isNatList](x0) = 0, [a__U22](x0) = x0, [a__isNat](x0) = 0, [a__U32](x0) = x0, [a__U43](x0) = x0, [a__isNatIList](x0) = 0, [a__U53](x0) = x0, [a__U63](x0) = x0, [s](x0) = x0, [a__length](x0) = x0, [mark](x0) = x0, [a__U81](x0) = x0 + 1, [a__isNatIListKind](x0) = 0, [length](x0) = x0, [a__isNatKind](x0) = 0, [isNatIListKind](x0) = 0, [isNat](x0) = 0, [isNatKind](x0) = 0, [U12](x0) = x0, [isNatList](x0) = 0, [U22](x0) = x0, [U32](x0) = x0, [U43](x0) = x0, [isNatIList](x0) = 0, [U53](x0) = x0, [U63](x0) = x0, [U81](x0) = x0 + 1, [0] = 0, [zeros] = 0, [a__zeros] = 0, [tt] = 0, [nil] = 0, [a__U41#](x0, x1, x2) = 1, [a__U51#](x0, x1, x2) = 1, [a__U61#](x0, x1, x2) = 1, [a__U11#](x0, x1) = 1, [a__U21#](x0, x1) = 1, [a__U31#](x0, x1) = 1, [a__U42#](x0, x1) = 1, [a__U52#](x0, x1) = 1, [a__U62#](x0, x1) = 1, [a__U71#](x0, x1) = x0 + 1, [a__and#](x0, x1) = x0 + 1, [a__isNatList#](x0) = 1, [a__isNat#](x0) = 1, [a__isNatIList#](x0) = 1, [a__length#](x0) = x0 + 1, [mark#](x0) = x0 + 1, [a__isNatIListKind#](x0) = 1, [a__isNatKind#](x0) = 1 Strict: a__isNatKind# length V1 -> a__isNatIListKind# V1 1 + 0V1 >= 1 + 0V1 a__isNatKind# s V1 -> a__isNatKind# V1 1 + 0V1 >= 1 + 0V1 a__isNatIListKind# take(V1, V2) -> a__isNatKind# V1 1 + 0V1 + 0V2 >= 1 + 0V1 a__isNatIListKind# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 a__isNatIListKind# cons(V1, V2) -> a__isNatKind# V1 1 + 0V1 + 0V2 >= 1 + 0V1 a__isNatIListKind# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 a__and#(tt(), X) -> mark# X 1 + 1X >= 1 + 1X a__U71#(tt(), L) -> mark# L 1 + 1L >= 1 + 1L a__U71#(tt(), L) -> a__length# mark L 1 + 1L >= 1 + 1L mark# U81 X -> mark# X 2 + 1X >= 1 + 1X mark# U71(X1, X2) -> a__U71#(mark X1, X2) 1 + 1X1 + 1X2 >= 1 + 0X1 + 1X2 mark# U71(X1, X2) -> mark# X1 1 + 1X1 + 1X2 >= 1 + 1X1 mark# U63 X -> mark# X 1 + 1X >= 1 + 1X mark# U62(X1, X2) -> mark# X1 1 + 1X1 + 0X2 >= 1 + 1X1 mark# U62(X1, X2) -> a__U62#(mark X1, X2) 1 + 1X1 + 0X2 >= 1 + 0X1 + 0X2 mark# U61(X1, X2, X3) -> mark# X1 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark# U53 X -> mark# X 1 + 1X >= 1 + 1X mark# U52(X1, X2) -> mark# X1 1 + 1X1 + 0X2 >= 1 + 1X1 mark# U52(X1, X2) -> a__U52#(mark X1, X2) 1 + 1X1 + 0X2 >= 1 + 0X1 + 0X2 mark# U51(X1, X2, X3) -> mark# X1 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark# isNatIList X -> a__isNatIList# X 1 + 0X >= 1 + 0X mark# U43 X -> mark# X 1 + 1X >= 1 + 1X mark# U42(X1, X2) -> mark# X1 1 + 1X1 + 0X2 >= 1 + 1X1 mark# U42(X1, X2) -> a__U42#(mark X1, X2) 1 + 1X1 + 0X2 >= 1 + 0X1 + 0X2 mark# U41(X1, X2, X3) -> mark# X1 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark# U32 X -> mark# X 1 + 1X >= 1 + 1X mark# U31(X1, X2) -> mark# X1 1 + 1X1 + 0X2 >= 1 + 1X1 mark# U31(X1, X2) -> a__U31#(mark X1, X2) 1 + 1X1 + 0X2 >= 1 + 0X1 + 0X2 mark# U22 X -> mark# X 1 + 1X >= 1 + 1X mark# U21(X1, X2) -> mark# X1 1 + 1X1 + 0X2 >= 1 + 1X1 mark# U21(X1, X2) -> a__U21#(mark X1, X2) 1 + 1X1 + 0X2 >= 1 + 0X1 + 0X2 mark# isNatList X -> a__isNatList# X 1 + 0X >= 1 + 0X mark# U12 X -> mark# X 1 + 1X >= 1 + 1X mark# U11(X1, X2) -> mark# X1 1 + 1X1 + 0X2 >= 1 + 1X1 mark# U11(X1, X2) -> a__U11#(mark X1, X2) 1 + 1X1 + 0X2 >= 1 + 0X1 + 0X2 mark# isNatKind X -> a__isNatKind# X 1 + 0X >= 1 + 0X mark# isNat X -> a__isNat# X 1 + 0X >= 1 + 0X mark# and(X1, X2) -> a__and#(mark X1, X2) 1 + 1X1 + 1X2 >= 1 + 0X1 + 1X2 mark# and(X1, X2) -> mark# X1 1 + 1X1 + 1X2 >= 1 + 1X1 mark# isNatIListKind X -> a__isNatIListKind# X 1 + 0X >= 1 + 0X mark# length X -> mark# X 1 + 1X >= 1 + 1X mark# length X -> a__length# mark X 1 + 1X >= 1 + 1X mark# s X -> mark# X 1 + 1X >= 1 + 1X mark# cons(X1, X2) -> mark# X1 1 + 1X1 + 1X2 >= 1 + 1X1 a__length# cons(N, L) -> a__and#(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)) 1 + 1L + 1N >= 1 + 0L + 0N a__length# cons(N, L) -> a__and#(a__isNatList L, isNatIListKind L) 1 + 1L + 1N >= 1 + 0L a__length# cons(N, L) -> a__U71#(a__and(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L) 1 + 1L + 1N >= 1 + 1L + 0N a__length# cons(N, L) -> a__isNatList# L 1 + 1L + 1N >= 1 + 0L a__U61#(tt(), V1, V2) -> a__U62#(a__isNat V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 a__U61#(tt(), V1, V2) -> a__isNat# V1 1 + 0V1 + 0V2 >= 1 + 0V1 a__U62#(tt(), V2) -> a__isNatIList# V2 1 + 0V2 >= 1 + 0V2 a__U51#(tt(), V1, V2) -> a__U52#(a__isNat V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 a__U51#(tt(), V1, V2) -> a__isNat# V1 1 + 0V1 + 0V2 >= 1 + 0V1 a__U52#(tt(), V2) -> a__isNatList# V2 1 + 0V2 >= 1 + 0V2 a__isNatIList# cons(V1, V2) -> a__isNatKind# V1 1 + 0V1 + 0V2 >= 1 + 0V1 a__isNatIList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 a__isNatIList# cons(V1, V2) -> a__U41#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 a__isNatIList# V -> a__isNatIListKind# V 1 + 0V >= 1 + 0V a__isNatIList# V -> a__U31#(a__isNatIListKind V, V) 1 + 0V >= 1 + 0V a__U41#(tt(), V1, V2) -> a__U42#(a__isNat V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 a__U41#(tt(), V1, V2) -> a__isNat# V1 1 + 0V1 + 0V2 >= 1 + 0V1 a__U42#(tt(), V2) -> a__isNatIList# V2 1 + 0V2 >= 1 + 0V2 a__U31#(tt(), V) -> a__isNatList# V 1 + 0V >= 1 + 0V a__U21#(tt(), V1) -> a__isNat# V1 1 + 0V1 >= 1 + 0V1 a__isNat# length V1 -> a__isNatIListKind# V1 1 + 0V1 >= 1 + 0V1 a__isNat# length V1 -> a__U11#(a__isNatIListKind V1, V1) 1 + 0V1 >= 1 + 0V1 a__isNat# s V1 -> a__isNatKind# V1 1 + 0V1 >= 1 + 0V1 a__isNat# s V1 -> a__U21#(a__isNatKind V1, V1) 1 + 0V1 >= 1 + 0V1 a__U11#(tt(), V1) -> a__isNatList# V1 1 + 0V1 >= 1 + 0V1 a__isNatList# take(V1, V2) -> a__isNatKind# V1 1 + 0V1 + 0V2 >= 1 + 0V1 a__isNatList# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 a__isNatList# take(V1, V2) -> a__U61#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 a__isNatList# cons(V1, V2) -> a__isNatKind# V1 1 + 0V1 + 0V2 >= 1 + 0V1 a__isNatList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 a__isNatList# cons(V1, V2) -> a__U51#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 Weak: a__take(s M, cons(N, IL)) -> a__U91(a__and(a__and(a__isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N) 1 + 1N + 0M + 1IL >= 1 + 1N + 0M + 1IL a__take(0(), IL) -> a__U81 a__and(a__isNatIList IL, isNatIListKind IL) 1 + 1IL >= 1 + 0IL a__take(X1, X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 a__isNatKind length V1 -> a__isNatIListKind V1 0 + 0V1 >= 0 + 0V1 a__isNatKind s V1 -> a__isNatKind V1 0 + 0V1 >= 0 + 0V1 a__isNatKind 0() -> tt() 0 >= 0 a__isNatKind X -> isNatKind X 0 + 0X >= 0 + 0X a__isNatIListKind take(V1, V2) -> a__and(a__isNatKind V1, isNatIListKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__isNatIListKind nil() -> tt() 0 >= 0 a__isNatIListKind zeros() -> tt() 0 >= 0 a__isNatIListKind cons(V1, V2) -> a__and(a__isNatKind V1, isNatIListKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__isNatIListKind X -> isNatIListKind X 0 + 0X >= 0 + 0X a__and(tt(), X) -> mark X 0 + 1X >= 0 + 1X a__and(X1, X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 a__U91(tt(), IL, M, N) -> cons(mark N, take(M, IL)) 1 + 1N + 0M + 1IL >= 1 + 1N + 0M + 1IL a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4) 1 + 0X1 + 1X2 + 0X3 + 1X4 >= 1 + 0X1 + 1X2 + 0X3 + 1X4 a__U81 tt() -> nil() 1 >= 0 a__U81 X -> U81 X 1 + 1X >= 1 + 1X a__U71(tt(), L) -> s a__length mark L 0 + 1L >= 0 + 1L a__U71(X1, X2) -> U71(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4) 1 + 0X1 + 1X2 + 0X3 + 1X4 >= 1 + 0X1 + 1X2 + 0X3 + 1X4 mark U81 X -> a__U81 mark X 1 + 1X >= 1 + 1X mark U71(X1, X2) -> a__U71(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark U63 X -> a__U63 mark X 0 + 1X >= 0 + 1X mark U62(X1, X2) -> a__U62(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark U61(X1, X2, X3) -> a__U61(mark X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 mark U53 X -> a__U53 mark X 0 + 1X >= 0 + 1X mark U52(X1, X2) -> a__U52(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark U51(X1, X2, X3) -> a__U51(mark X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 mark isNatIList X -> a__isNatIList X 0 + 0X >= 0 + 0X mark U43 X -> a__U43 mark X 0 + 1X >= 0 + 1X mark U42(X1, X2) -> a__U42(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark U41(X1, X2, X3) -> a__U41(mark X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 mark U32 X -> a__U32 mark X 0 + 1X >= 0 + 1X mark U31(X1, X2) -> a__U31(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark U22 X -> a__U22 mark X 0 + 1X >= 0 + 1X mark U21(X1, X2) -> a__U21(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark isNatList X -> a__isNatList X 0 + 0X >= 0 + 0X mark U12 X -> a__U12 mark X 0 + 1X >= 0 + 1X mark U11(X1, X2) -> a__U11(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark isNatKind X -> a__isNatKind X 0 + 0X >= 0 + 0X mark isNat X -> a__isNat X 0 + 0X >= 0 + 0X mark and(X1, X2) -> a__and(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark isNatIListKind X -> a__isNatIListKind X 0 + 0X >= 0 + 0X mark length X -> a__length mark X 0 + 1X >= 0 + 1X mark take(X1, X2) -> a__take(mark X1, mark X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 mark nil() -> nil() 0 >= 0 mark s X -> s mark X 0 + 1X >= 0 + 1X mark tt() -> tt() 0 >= 0 mark zeros() -> a__zeros() 0 >= 0 mark 0() -> 0() 0 >= 0 mark cons(X1, X2) -> cons(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 a__length nil() -> 0() 0 >= 0 a__length cons(N, L) -> a__U71(a__and(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L) 0 + 1L + 1N >= 0 + 1L + 0N a__length X -> length X 0 + 1X >= 0 + 1X a__U63 tt() -> tt() 0 >= 0 a__U63 X -> U63 X 0 + 1X >= 0 + 1X a__U61(tt(), V1, V2) -> a__U62(a__isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__U61(X1, X2, X3) -> U61(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 a__U62(tt(), V2) -> a__U63 a__isNatIList V2 0 + 0V2 >= 0 + 0V2 a__U62(X1, X2) -> U62(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__U53 tt() -> tt() 0 >= 0 a__U53 X -> U53 X 0 + 1X >= 0 + 1X a__U51(tt(), V1, V2) -> a__U52(a__isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__U51(X1, X2, X3) -> U51(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 a__U52(tt(), V2) -> a__U53 a__isNatList V2 0 + 0V2 >= 0 + 0V2 a__U52(X1, X2) -> U52(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__isNatIList zeros() -> tt() 0 >= 0 a__isNatIList cons(V1, V2) -> a__U41(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__isNatIList X -> isNatIList X 0 + 0X >= 0 + 0X a__isNatIList V -> a__U31(a__isNatIListKind V, V) 0 + 0V >= 0 + 0V a__U43 tt() -> tt() 0 >= 0 a__U43 X -> U43 X 0 + 1X >= 0 + 1X a__U41(tt(), V1, V2) -> a__U42(a__isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__U41(X1, X2, X3) -> U41(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 a__U42(tt(), V2) -> a__U43 a__isNatIList V2 0 + 0V2 >= 0 + 0V2 a__U42(X1, X2) -> U42(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__U31(tt(), V) -> a__U32 a__isNatList V 0 + 0V >= 0 + 0V a__U31(X1, X2) -> U31(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__U32 tt() -> tt() 0 >= 0 a__U32 X -> U32 X 0 + 1X >= 0 + 1X a__U21(tt(), V1) -> a__U22 a__isNat V1 0 + 0V1 >= 0 + 0V1 a__U21(X1, X2) -> U21(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__isNat length V1 -> a__U11(a__isNatIListKind V1, V1) 0 + 0V1 >= 0 + 0V1 a__isNat s V1 -> a__U21(a__isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 a__isNat 0() -> tt() 0 >= 0 a__isNat X -> isNat X 0 + 0X >= 0 + 0X a__U22 tt() -> tt() 0 >= 0 a__U22 X -> U22 X 0 + 1X >= 0 + 1X a__U11(tt(), V1) -> a__U12 a__isNatList V1 0 + 0V1 >= 0 + 0V1 a__U11(X1, X2) -> U11(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__isNatList take(V1, V2) -> a__U61(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__isNatList nil() -> tt() 0 >= 0 a__isNatList cons(V1, V2) -> a__U51(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__isNatList X -> isNatList X 0 + 0X >= 0 + 0X a__U12 tt() -> tt() 0 >= 0 a__U12 X -> U12 X 0 + 1X >= 0 + 1X a__zeros() -> zeros() 0 >= 0 a__zeros() -> cons(0(), zeros()) 0 >= 0 SCCS (1): Scc: { a__isNatList# cons(V1, V2) -> a__U51#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatList# cons(V1, V2) -> a__isNatKind# V1, a__isNatList# take(V1, V2) -> a__U61#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatList# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatList# take(V1, V2) -> a__isNatKind# V1, a__U11#(tt(), V1) -> a__isNatList# V1, a__isNat# s V1 -> a__U21#(a__isNatKind V1, V1), a__isNat# s V1 -> a__isNatKind# V1, a__isNat# length V1 -> a__U11#(a__isNatIListKind V1, V1), a__isNat# length V1 -> a__isNatIListKind# V1, a__U21#(tt(), V1) -> a__isNat# V1, a__U31#(tt(), V) -> a__isNatList# V, a__U42#(tt(), V2) -> a__isNatIList# V2, a__U41#(tt(), V1, V2) -> a__isNat# V1, a__U41#(tt(), V1, V2) -> a__U42#(a__isNat V1, V2), a__isNatIList# V -> a__U31#(a__isNatIListKind V, V), a__isNatIList# V -> a__isNatIListKind# V, a__isNatIList# cons(V1, V2) -> a__U41#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatIList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatIList# cons(V1, V2) -> a__isNatKind# V1, a__U52#(tt(), V2) -> a__isNatList# V2, a__U51#(tt(), V1, V2) -> a__isNat# V1, a__U51#(tt(), V1, V2) -> a__U52#(a__isNat V1, V2), a__U62#(tt(), V2) -> a__isNatIList# V2, a__U61#(tt(), V1, V2) -> a__isNat# V1, a__U61#(tt(), V1, V2) -> a__U62#(a__isNat V1, V2), a__length# cons(N, L) -> a__isNatList# L, a__length# cons(N, L) -> a__U71#(a__and(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), a__length# cons(N, L) -> a__and#(a__isNatList L, isNatIListKind L), a__length# cons(N, L) -> a__and#(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X, mark# length X -> a__length# mark X, mark# length X -> mark# X, mark# isNatIListKind X -> a__isNatIListKind# X, mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> a__and#(mark X1, X2), mark# isNat X -> a__isNat# X, mark# isNatKind X -> a__isNatKind# X, mark# U11(X1, X2) -> a__U11#(mark X1, X2), mark# U11(X1, X2) -> mark# X1, mark# U12 X -> mark# X, mark# isNatList X -> a__isNatList# X, mark# U21(X1, X2) -> a__U21#(mark X1, X2), mark# U21(X1, X2) -> mark# X1, mark# U22 X -> mark# X, mark# U31(X1, X2) -> a__U31#(mark X1, X2), mark# U31(X1, X2) -> mark# X1, mark# U32 X -> mark# X, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3), mark# U41(X1, X2, X3) -> mark# X1, mark# U42(X1, X2) -> a__U42#(mark X1, X2), mark# U42(X1, X2) -> mark# X1, mark# U43 X -> mark# X, mark# isNatIList X -> a__isNatIList# X, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3), mark# U51(X1, X2, X3) -> mark# X1, mark# U52(X1, X2) -> a__U52#(mark X1, X2), mark# U52(X1, X2) -> mark# X1, mark# U53 X -> mark# X, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3), mark# U61(X1, X2, X3) -> mark# X1, mark# U62(X1, X2) -> a__U62#(mark X1, X2), mark# U62(X1, X2) -> mark# X1, mark# U63 X -> mark# X, mark# U71(X1, X2) -> mark# X1, mark# U71(X1, X2) -> a__U71#(mark X1, X2), a__U71#(tt(), L) -> a__length# mark L, a__U71#(tt(), L) -> mark# L, a__and#(tt(), X) -> mark# X, a__isNatIListKind# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatIListKind# cons(V1, V2) -> a__isNatKind# V1, a__isNatIListKind# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatIListKind# take(V1, V2) -> a__isNatKind# V1, a__isNatKind# s V1 -> a__isNatKind# V1, a__isNatKind# length V1 -> a__isNatIListKind# V1} SCC (77): Strict: { a__isNatList# cons(V1, V2) -> a__U51#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatList# cons(V1, V2) -> a__isNatKind# V1, a__isNatList# take(V1, V2) -> a__U61#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatList# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatList# take(V1, V2) -> a__isNatKind# V1, a__U11#(tt(), V1) -> a__isNatList# V1, a__isNat# s V1 -> a__U21#(a__isNatKind V1, V1), a__isNat# s V1 -> a__isNatKind# V1, a__isNat# length V1 -> a__U11#(a__isNatIListKind V1, V1), a__isNat# length V1 -> a__isNatIListKind# V1, a__U21#(tt(), V1) -> a__isNat# V1, a__U31#(tt(), V) -> a__isNatList# V, a__U42#(tt(), V2) -> a__isNatIList# V2, a__U41#(tt(), V1, V2) -> a__isNat# V1, a__U41#(tt(), V1, V2) -> a__U42#(a__isNat V1, V2), a__isNatIList# V -> a__U31#(a__isNatIListKind V, V), a__isNatIList# V -> a__isNatIListKind# V, a__isNatIList# cons(V1, V2) -> a__U41#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatIList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatIList# cons(V1, V2) -> a__isNatKind# V1, a__U52#(tt(), V2) -> a__isNatList# V2, a__U51#(tt(), V1, V2) -> a__isNat# V1, a__U51#(tt(), V1, V2) -> a__U52#(a__isNat V1, V2), a__U62#(tt(), V2) -> a__isNatIList# V2, a__U61#(tt(), V1, V2) -> a__isNat# V1, a__U61#(tt(), V1, V2) -> a__U62#(a__isNat V1, V2), a__length# cons(N, L) -> a__isNatList# L, a__length# cons(N, L) -> a__U71#(a__and(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), a__length# cons(N, L) -> a__and#(a__isNatList L, isNatIListKind L), a__length# cons(N, L) -> a__and#(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X, mark# length X -> a__length# mark X, mark# length X -> mark# X, mark# isNatIListKind X -> a__isNatIListKind# X, mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> a__and#(mark X1, X2), mark# isNat X -> a__isNat# X, mark# isNatKind X -> a__isNatKind# X, mark# U11(X1, X2) -> a__U11#(mark X1, X2), mark# U11(X1, X2) -> mark# X1, mark# U12 X -> mark# X, mark# isNatList X -> a__isNatList# X, mark# U21(X1, X2) -> a__U21#(mark X1, X2), mark# U21(X1, X2) -> mark# X1, mark# U22 X -> mark# X, mark# U31(X1, X2) -> a__U31#(mark X1, X2), mark# U31(X1, X2) -> mark# X1, mark# U32 X -> mark# X, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3), mark# U41(X1, X2, X3) -> mark# X1, mark# U42(X1, X2) -> a__U42#(mark X1, X2), mark# U42(X1, X2) -> mark# X1, mark# U43 X -> mark# X, mark# isNatIList X -> a__isNatIList# X, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3), mark# U51(X1, X2, X3) -> mark# X1, mark# U52(X1, X2) -> a__U52#(mark X1, X2), mark# U52(X1, X2) -> mark# X1, mark# U53 X -> mark# X, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3), mark# U61(X1, X2, X3) -> mark# X1, mark# U62(X1, X2) -> a__U62#(mark X1, X2), mark# U62(X1, X2) -> mark# X1, mark# U63 X -> mark# X, mark# U71(X1, X2) -> mark# X1, mark# U71(X1, X2) -> a__U71#(mark X1, X2), a__U71#(tt(), L) -> a__length# mark L, a__U71#(tt(), L) -> mark# L, a__and#(tt(), X) -> mark# X, a__isNatIListKind# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatIListKind# cons(V1, V2) -> a__isNatKind# V1, a__isNatIListKind# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatIListKind# take(V1, V2) -> a__isNatKind# V1, a__isNatKind# s V1 -> a__isNatKind# V1, a__isNatKind# length V1 -> a__isNatIListKind# V1} Weak: { a__zeros() -> cons(0(), zeros()), a__zeros() -> zeros(), a__U12 X -> U12 X, a__U12 tt() -> tt(), a__isNatList X -> isNatList X, a__isNatList cons(V1, V2) -> a__U51(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatList nil() -> tt(), a__isNatList take(V1, V2) -> a__U61(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__U11(X1, X2) -> U11(X1, X2), a__U11(tt(), V1) -> a__U12 a__isNatList V1, a__U22 X -> U22 X, a__U22 tt() -> tt(), a__isNat X -> isNat X, a__isNat 0() -> tt(), a__isNat s V1 -> a__U21(a__isNatKind V1, V1), a__isNat length V1 -> a__U11(a__isNatIListKind V1, V1), a__U21(X1, X2) -> U21(X1, X2), a__U21(tt(), V1) -> a__U22 a__isNat V1, a__U32 X -> U32 X, a__U32 tt() -> tt(), a__U31(X1, X2) -> U31(X1, X2), a__U31(tt(), V) -> a__U32 a__isNatList V, a__U42(X1, X2) -> U42(X1, X2), a__U42(tt(), V2) -> a__U43 a__isNatIList V2, a__U41(X1, X2, X3) -> U41(X1, X2, X3), a__U41(tt(), V1, V2) -> a__U42(a__isNat V1, V2), a__U43 X -> U43 X, a__U43 tt() -> tt(), a__isNatIList V -> a__U31(a__isNatIListKind V, V), a__isNatIList X -> isNatIList X, a__isNatIList cons(V1, V2) -> a__U41(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatIList zeros() -> tt(), a__U52(X1, X2) -> U52(X1, X2), a__U52(tt(), V2) -> a__U53 a__isNatList V2, a__U51(X1, X2, X3) -> U51(X1, X2, X3), a__U51(tt(), V1, V2) -> a__U52(a__isNat V1, V2), a__U53 X -> U53 X, a__U53 tt() -> tt(), a__U62(X1, X2) -> U62(X1, X2), a__U62(tt(), V2) -> a__U63 a__isNatIList V2, a__U61(X1, X2, X3) -> U61(X1, X2, X3), a__U61(tt(), V1, V2) -> a__U62(a__isNat V1, V2), a__U63 X -> U63 X, a__U63 tt() -> tt(), a__length X -> length X, a__length cons(N, L) -> a__U71(a__and(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), a__length nil() -> 0(), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark zeros() -> a__zeros(), mark tt() -> tt(), mark s X -> s mark X, mark nil() -> nil(), mark take(X1, X2) -> a__take(mark X1, mark X2), mark length X -> a__length mark X, mark isNatIListKind X -> a__isNatIListKind X, mark and(X1, X2) -> a__and(mark X1, X2), mark isNat X -> a__isNat X, mark isNatKind X -> a__isNatKind X, mark U11(X1, X2) -> a__U11(mark X1, X2), mark U12 X -> a__U12 mark X, mark isNatList X -> a__isNatList X, mark U21(X1, X2) -> a__U21(mark X1, X2), mark U22 X -> a__U22 mark X, mark U31(X1, X2) -> a__U31(mark X1, X2), mark U32 X -> a__U32 mark X, mark U41(X1, X2, X3) -> a__U41(mark X1, X2, X3), mark U42(X1, X2) -> a__U42(mark X1, X2), mark U43 X -> a__U43 mark X, mark isNatIList X -> a__isNatIList X, mark U51(X1, X2, X3) -> a__U51(mark X1, X2, X3), mark U52(X1, X2) -> a__U52(mark X1, X2), mark U53 X -> a__U53 mark X, mark U61(X1, X2, X3) -> a__U61(mark X1, X2, X3), mark U62(X1, X2) -> a__U62(mark X1, X2), mark U63 X -> a__U63 mark X, mark U71(X1, X2) -> a__U71(mark X1, X2), mark U81 X -> a__U81 mark X, mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4), a__U71(X1, X2) -> U71(X1, X2), a__U71(tt(), L) -> s a__length mark L, a__U81 X -> U81 X, a__U81 tt() -> nil(), a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4), a__U91(tt(), IL, M, N) -> cons(mark N, take(M, IL)), a__and(X1, X2) -> and(X1, X2), a__and(tt(), X) -> mark X, a__isNatIListKind X -> isNatIListKind X, a__isNatIListKind cons(V1, V2) -> a__and(a__isNatKind V1, isNatIListKind V2), a__isNatIListKind zeros() -> tt(), a__isNatIListKind nil() -> tt(), a__isNatIListKind take(V1, V2) -> a__and(a__isNatKind V1, isNatIListKind V2), a__isNatKind X -> isNatKind X, a__isNatKind 0() -> tt(), a__isNatKind s V1 -> a__isNatKind V1, a__isNatKind length V1 -> a__isNatIListKind V1, a__take(X1, X2) -> take(X1, X2), a__take(0(), IL) -> a__U81 a__and(a__isNatIList IL, isNatIListKind IL), a__take(s M, cons(N, IL)) -> a__U91(a__and(a__and(a__isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [a__U91](x0, x1, x2, x3) = x0 + x1, [U91](x0, x1, x2, x3) = x0 + x1, [a__U41](x0, x1, x2) = x0, [a__U51](x0, x1, x2) = x0, [a__U61](x0, x1, x2) = x0, [U41](x0, x1, x2) = x0, [U51](x0, x1, x2) = x0, [U61](x0, x1, x2) = x0, [cons](x0, x1) = x0 + x1, [a__U11](x0, x1) = x0, [a__U21](x0, x1) = x0, [a__U31](x0, x1) = x0, [a__U42](x0, x1) = x0, [a__U52](x0, x1) = x0, [a__U62](x0, x1) = x0, [a__U71](x0, x1) = x0 + x1 + 1, [take](x0, x1) = x0, [a__and](x0, x1) = x0 + x1, [and](x0, x1) = x0 + x1, [a__take](x0, x1) = x0, [U11](x0, x1) = x0, [U21](x0, x1) = x0, [U31](x0, x1) = x0, [U42](x0, x1) = x0, [U52](x0, x1) = x0, [U62](x0, x1) = x0, [U71](x0, x1) = x0 + x1 + 1, [a__U12](x0) = x0, [a__isNatList](x0) = 0, [a__U22](x0) = x0, [a__isNat](x0) = 0, [a__U32](x0) = x0, [a__U43](x0) = x0, [a__isNatIList](x0) = 0, [a__U53](x0) = x0, [a__U63](x0) = x0, [s](x0) = x0, [a__length](x0) = x0 + 1, [mark](x0) = x0, [a__U81](x0) = 0, [a__isNatIListKind](x0) = 0, [length](x0) = x0 + 1, [a__isNatKind](x0) = 0, [isNatIListKind](x0) = 0, [isNat](x0) = 0, [isNatKind](x0) = 0, [U12](x0) = x0, [isNatList](x0) = 0, [U22](x0) = x0, [U32](x0) = x0, [U43](x0) = x0, [isNatIList](x0) = 0, [U53](x0) = x0, [U63](x0) = x0, [U81](x0) = 0, [0] = 0, [zeros] = 0, [a__zeros] = 0, [tt] = 0, [nil] = 0, [a__U41#](x0, x1, x2) = 0, [a__U51#](x0, x1, x2) = 0, [a__U61#](x0, x1, x2) = 0, [a__U11#](x0, x1) = 0, [a__U21#](x0, x1) = 0, [a__U31#](x0, x1) = 0, [a__U42#](x0, x1) = 0, [a__U52#](x0, x1) = 0, [a__U62#](x0, x1) = 0, [a__U71#](x0, x1) = x0, [a__and#](x0, x1) = x0, [a__isNatList#](x0) = 0, [a__isNat#](x0) = 0, [a__isNatIList#](x0) = 0, [a__length#](x0) = x0, [mark#](x0) = x0, [a__isNatIListKind#](x0) = 0, [a__isNatKind#](x0) = 0 Strict: a__isNatKind# length V1 -> a__isNatIListKind# V1 0 + 0V1 >= 0 + 0V1 a__isNatKind# s V1 -> a__isNatKind# V1 0 + 0V1 >= 0 + 0V1 a__isNatIListKind# take(V1, V2) -> a__isNatKind# V1 0 + 0V1 + 0V2 >= 0 + 0V1 a__isNatIListKind# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__isNatIListKind# cons(V1, V2) -> a__isNatKind# V1 0 + 0V1 + 0V2 >= 0 + 0V1 a__isNatIListKind# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__and#(tt(), X) -> mark# X 0 + 1X >= 0 + 1X a__U71#(tt(), L) -> mark# L 0 + 1L >= 0 + 1L a__U71#(tt(), L) -> a__length# mark L 0 + 1L >= 0 + 1L mark# U71(X1, X2) -> a__U71#(mark X1, X2) 1 + 1X1 + 1X2 >= 0 + 0X1 + 1X2 mark# U71(X1, X2) -> mark# X1 1 + 1X1 + 1X2 >= 0 + 1X1 mark# U63 X -> mark# X 0 + 1X >= 0 + 1X mark# U62(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 mark# U62(X1, X2) -> a__U62#(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 mark# U61(X1, X2, X3) -> mark# X1 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 mark# U53 X -> mark# X 0 + 1X >= 0 + 1X mark# U52(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 mark# U52(X1, X2) -> a__U52#(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 mark# U51(X1, X2, X3) -> mark# X1 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 mark# isNatIList X -> a__isNatIList# X 0 + 0X >= 0 + 0X mark# U43 X -> mark# X 0 + 1X >= 0 + 1X mark# U42(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 mark# U42(X1, X2) -> a__U42#(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 mark# U41(X1, X2, X3) -> mark# X1 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 mark# U32 X -> mark# X 0 + 1X >= 0 + 1X mark# U31(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 mark# U31(X1, X2) -> a__U31#(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 mark# U22 X -> mark# X 0 + 1X >= 0 + 1X mark# U21(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 mark# U21(X1, X2) -> a__U21#(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 mark# isNatList X -> a__isNatList# X 0 + 0X >= 0 + 0X mark# U12 X -> mark# X 0 + 1X >= 0 + 1X mark# U11(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 mark# U11(X1, X2) -> a__U11#(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 mark# isNatKind X -> a__isNatKind# X 0 + 0X >= 0 + 0X mark# isNat X -> a__isNat# X 0 + 0X >= 0 + 0X mark# and(X1, X2) -> a__and#(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 0X1 + 1X2 mark# and(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 mark# isNatIListKind X -> a__isNatIListKind# X 0 + 0X >= 0 + 0X mark# length X -> mark# X 1 + 1X >= 0 + 1X mark# length X -> a__length# mark X 1 + 1X >= 0 + 1X mark# s X -> mark# X 0 + 1X >= 0 + 1X mark# cons(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 a__length# cons(N, L) -> a__and#(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)) 0 + 1L + 1N >= 0 + 0L + 0N a__length# cons(N, L) -> a__and#(a__isNatList L, isNatIListKind L) 0 + 1L + 1N >= 0 + 0L a__length# cons(N, L) -> a__U71#(a__and(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L) 0 + 1L + 1N >= 0 + 1L + 0N a__length# cons(N, L) -> a__isNatList# L 0 + 1L + 1N >= 0 + 0L a__U61#(tt(), V1, V2) -> a__U62#(a__isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__U61#(tt(), V1, V2) -> a__isNat# V1 0 + 0V1 + 0V2 >= 0 + 0V1 a__U62#(tt(), V2) -> a__isNatIList# V2 0 + 0V2 >= 0 + 0V2 a__U51#(tt(), V1, V2) -> a__U52#(a__isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__U51#(tt(), V1, V2) -> a__isNat# V1 0 + 0V1 + 0V2 >= 0 + 0V1 a__U52#(tt(), V2) -> a__isNatList# V2 0 + 0V2 >= 0 + 0V2 a__isNatIList# cons(V1, V2) -> a__isNatKind# V1 0 + 0V1 + 0V2 >= 0 + 0V1 a__isNatIList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__isNatIList# cons(V1, V2) -> a__U41#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__isNatIList# V -> a__isNatIListKind# V 0 + 0V >= 0 + 0V a__isNatIList# V -> a__U31#(a__isNatIListKind V, V) 0 + 0V >= 0 + 0V a__U41#(tt(), V1, V2) -> a__U42#(a__isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__U41#(tt(), V1, V2) -> a__isNat# V1 0 + 0V1 + 0V2 >= 0 + 0V1 a__U42#(tt(), V2) -> a__isNatIList# V2 0 + 0V2 >= 0 + 0V2 a__U31#(tt(), V) -> a__isNatList# V 0 + 0V >= 0 + 0V a__U21#(tt(), V1) -> a__isNat# V1 0 + 0V1 >= 0 + 0V1 a__isNat# length V1 -> a__isNatIListKind# V1 0 + 0V1 >= 0 + 0V1 a__isNat# length V1 -> a__U11#(a__isNatIListKind V1, V1) 0 + 0V1 >= 0 + 0V1 a__isNat# s V1 -> a__isNatKind# V1 0 + 0V1 >= 0 + 0V1 a__isNat# s V1 -> a__U21#(a__isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 a__U11#(tt(), V1) -> a__isNatList# V1 0 + 0V1 >= 0 + 0V1 a__isNatList# take(V1, V2) -> a__isNatKind# V1 0 + 0V1 + 0V2 >= 0 + 0V1 a__isNatList# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__isNatList# take(V1, V2) -> a__U61#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__isNatList# cons(V1, V2) -> a__isNatKind# V1 0 + 0V1 + 0V2 >= 0 + 0V1 a__isNatList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__isNatList# cons(V1, V2) -> a__U51#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 Weak: a__take(s M, cons(N, IL)) -> a__U91(a__and(a__and(a__isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N) 0 + 1N + 0M + 1IL >= 0 + 1N + 0M + 1IL a__take(0(), IL) -> a__U81 a__and(a__isNatIList IL, isNatIListKind IL) 0 + 1IL >= 0 + 0IL a__take(X1, X2) -> take(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 a__isNatKind length V1 -> a__isNatIListKind V1 0 + 0V1 >= 0 + 0V1 a__isNatKind s V1 -> a__isNatKind V1 0 + 0V1 >= 0 + 0V1 a__isNatKind 0() -> tt() 0 >= 0 a__isNatKind X -> isNatKind X 0 + 0X >= 0 + 0X a__isNatIListKind take(V1, V2) -> a__and(a__isNatKind V1, isNatIListKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__isNatIListKind nil() -> tt() 0 >= 0 a__isNatIListKind zeros() -> tt() 0 >= 0 a__isNatIListKind cons(V1, V2) -> a__and(a__isNatKind V1, isNatIListKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__isNatIListKind X -> isNatIListKind X 0 + 0X >= 0 + 0X a__and(tt(), X) -> mark X 0 + 1X >= 0 + 1X a__and(X1, X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 a__U91(tt(), IL, M, N) -> cons(mark N, take(M, IL)) 0 + 1N + 0M + 1IL >= 0 + 1N + 0M + 1IL a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4) 0 + 0X1 + 1X2 + 0X3 + 1X4 >= 0 + 0X1 + 1X2 + 0X3 + 1X4 a__U81 tt() -> nil() 0 >= 0 a__U81 X -> U81 X 0 + 0X >= 0 + 0X a__U71(tt(), L) -> s a__length mark L 1 + 1L >= 1 + 1L a__U71(X1, X2) -> U71(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4) 0 + 0X1 + 1X2 + 0X3 + 1X4 >= 0 + 0X1 + 1X2 + 0X3 + 1X4 mark U81 X -> a__U81 mark X 0 + 0X >= 0 + 0X mark U71(X1, X2) -> a__U71(mark X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark U63 X -> a__U63 mark X 0 + 1X >= 0 + 1X mark U62(X1, X2) -> a__U62(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark U61(X1, X2, X3) -> a__U61(mark X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 mark U53 X -> a__U53 mark X 0 + 1X >= 0 + 1X mark U52(X1, X2) -> a__U52(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark U51(X1, X2, X3) -> a__U51(mark X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 mark isNatIList X -> a__isNatIList X 0 + 0X >= 0 + 0X mark U43 X -> a__U43 mark X 0 + 1X >= 0 + 1X mark U42(X1, X2) -> a__U42(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark U41(X1, X2, X3) -> a__U41(mark X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 mark U32 X -> a__U32 mark X 0 + 1X >= 0 + 1X mark U31(X1, X2) -> a__U31(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark U22 X -> a__U22 mark X 0 + 1X >= 0 + 1X mark U21(X1, X2) -> a__U21(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark isNatList X -> a__isNatList X 0 + 0X >= 0 + 0X mark U12 X -> a__U12 mark X 0 + 1X >= 0 + 1X mark U11(X1, X2) -> a__U11(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark isNatKind X -> a__isNatKind X 0 + 0X >= 0 + 0X mark isNat X -> a__isNat X 0 + 0X >= 0 + 0X mark and(X1, X2) -> a__and(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark isNatIListKind X -> a__isNatIListKind X 0 + 0X >= 0 + 0X mark length X -> a__length mark X 1 + 1X >= 1 + 1X mark take(X1, X2) -> a__take(mark X1, mark X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 mark nil() -> nil() 0 >= 0 mark s X -> s mark X 0 + 1X >= 0 + 1X mark tt() -> tt() 0 >= 0 mark zeros() -> a__zeros() 0 >= 0 mark 0() -> 0() 0 >= 0 mark cons(X1, X2) -> cons(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 a__length nil() -> 0() 1 >= 0 a__length cons(N, L) -> a__U71(a__and(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L) 1 + 1L + 1N >= 1 + 1L + 0N a__length X -> length X 1 + 1X >= 1 + 1X a__U63 tt() -> tt() 0 >= 0 a__U63 X -> U63 X 0 + 1X >= 0 + 1X a__U61(tt(), V1, V2) -> a__U62(a__isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__U61(X1, X2, X3) -> U61(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 a__U62(tt(), V2) -> a__U63 a__isNatIList V2 0 + 0V2 >= 0 + 0V2 a__U62(X1, X2) -> U62(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__U53 tt() -> tt() 0 >= 0 a__U53 X -> U53 X 0 + 1X >= 0 + 1X a__U51(tt(), V1, V2) -> a__U52(a__isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__U51(X1, X2, X3) -> U51(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 a__U52(tt(), V2) -> a__U53 a__isNatList V2 0 + 0V2 >= 0 + 0V2 a__U52(X1, X2) -> U52(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__isNatIList zeros() -> tt() 0 >= 0 a__isNatIList cons(V1, V2) -> a__U41(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__isNatIList X -> isNatIList X 0 + 0X >= 0 + 0X a__isNatIList V -> a__U31(a__isNatIListKind V, V) 0 + 0V >= 0 + 0V a__U43 tt() -> tt() 0 >= 0 a__U43 X -> U43 X 0 + 1X >= 0 + 1X a__U41(tt(), V1, V2) -> a__U42(a__isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__U41(X1, X2, X3) -> U41(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 a__U42(tt(), V2) -> a__U43 a__isNatIList V2 0 + 0V2 >= 0 + 0V2 a__U42(X1, X2) -> U42(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__U31(tt(), V) -> a__U32 a__isNatList V 0 + 0V >= 0 + 0V a__U31(X1, X2) -> U31(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__U32 tt() -> tt() 0 >= 0 a__U32 X -> U32 X 0 + 1X >= 0 + 1X a__U21(tt(), V1) -> a__U22 a__isNat V1 0 + 0V1 >= 0 + 0V1 a__U21(X1, X2) -> U21(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__isNat length V1 -> a__U11(a__isNatIListKind V1, V1) 0 + 0V1 >= 0 + 0V1 a__isNat s V1 -> a__U21(a__isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 a__isNat 0() -> tt() 0 >= 0 a__isNat X -> isNat X 0 + 0X >= 0 + 0X a__U22 tt() -> tt() 0 >= 0 a__U22 X -> U22 X 0 + 1X >= 0 + 1X a__U11(tt(), V1) -> a__U12 a__isNatList V1 0 + 0V1 >= 0 + 0V1 a__U11(X1, X2) -> U11(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__isNatList take(V1, V2) -> a__U61(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__isNatList nil() -> tt() 0 >= 0 a__isNatList cons(V1, V2) -> a__U51(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__isNatList X -> isNatList X 0 + 0X >= 0 + 0X a__U12 tt() -> tt() 0 >= 0 a__U12 X -> U12 X 0 + 1X >= 0 + 1X a__zeros() -> zeros() 0 >= 0 a__zeros() -> cons(0(), zeros()) 0 >= 0 SCCS (2): Scc: {a__length# cons(N, L) -> a__U71#(a__and(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), a__U71#(tt(), L) -> a__length# mark L} Scc: { a__isNatList# cons(V1, V2) -> a__U51#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatList# cons(V1, V2) -> a__isNatKind# V1, a__isNatList# take(V1, V2) -> a__U61#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatList# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatList# take(V1, V2) -> a__isNatKind# V1, a__U11#(tt(), V1) -> a__isNatList# V1, a__isNat# s V1 -> a__U21#(a__isNatKind V1, V1), a__isNat# s V1 -> a__isNatKind# V1, a__isNat# length V1 -> a__U11#(a__isNatIListKind V1, V1), a__isNat# length V1 -> a__isNatIListKind# V1, a__U21#(tt(), V1) -> a__isNat# V1, a__U31#(tt(), V) -> a__isNatList# V, a__U42#(tt(), V2) -> a__isNatIList# V2, a__U41#(tt(), V1, V2) -> a__isNat# V1, a__U41#(tt(), V1, V2) -> a__U42#(a__isNat V1, V2), a__isNatIList# V -> a__U31#(a__isNatIListKind V, V), a__isNatIList# V -> a__isNatIListKind# V, a__isNatIList# cons(V1, V2) -> a__U41#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatIList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatIList# cons(V1, V2) -> a__isNatKind# V1, a__U52#(tt(), V2) -> a__isNatList# V2, a__U51#(tt(), V1, V2) -> a__isNat# V1, a__U51#(tt(), V1, V2) -> a__U52#(a__isNat V1, V2), a__U62#(tt(), V2) -> a__isNatIList# V2, a__U61#(tt(), V1, V2) -> a__isNat# V1, a__U61#(tt(), V1, V2) -> a__U62#(a__isNat V1, V2), mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X, mark# isNatIListKind X -> a__isNatIListKind# X, mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> a__and#(mark X1, X2), mark# isNat X -> a__isNat# X, mark# isNatKind X -> a__isNatKind# X, mark# U11(X1, X2) -> a__U11#(mark X1, X2), mark# U11(X1, X2) -> mark# X1, mark# U12 X -> mark# X, mark# isNatList X -> a__isNatList# X, mark# U21(X1, X2) -> a__U21#(mark X1, X2), mark# U21(X1, X2) -> mark# X1, mark# U22 X -> mark# X, mark# U31(X1, X2) -> a__U31#(mark X1, X2), mark# U31(X1, X2) -> mark# X1, mark# U32 X -> mark# X, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3), mark# U41(X1, X2, X3) -> mark# X1, mark# U42(X1, X2) -> a__U42#(mark X1, X2), mark# U42(X1, X2) -> mark# X1, mark# U43 X -> mark# X, mark# isNatIList X -> a__isNatIList# X, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3), mark# U51(X1, X2, X3) -> mark# X1, mark# U52(X1, X2) -> a__U52#(mark X1, X2), mark# U52(X1, X2) -> mark# X1, mark# U53 X -> mark# X, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3), mark# U61(X1, X2, X3) -> mark# X1, mark# U62(X1, X2) -> a__U62#(mark X1, X2), mark# U62(X1, X2) -> mark# X1, mark# U63 X -> mark# X, a__and#(tt(), X) -> mark# X, a__isNatIListKind# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatIListKind# cons(V1, V2) -> a__isNatKind# V1, a__isNatIListKind# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatIListKind# take(V1, V2) -> a__isNatKind# V1, a__isNatKind# s V1 -> a__isNatKind# V1, a__isNatKind# length V1 -> a__isNatIListKind# V1} SCC (2): Strict: {a__length# cons(N, L) -> a__U71#(a__and(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), a__U71#(tt(), L) -> a__length# mark L} Weak: { a__zeros() -> cons(0(), zeros()), a__zeros() -> zeros(), a__U12 X -> U12 X, a__U12 tt() -> tt(), a__isNatList X -> isNatList X, a__isNatList cons(V1, V2) -> a__U51(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatList nil() -> tt(), a__isNatList take(V1, V2) -> a__U61(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__U11(X1, X2) -> U11(X1, X2), a__U11(tt(), V1) -> a__U12 a__isNatList V1, a__U22 X -> U22 X, a__U22 tt() -> tt(), a__isNat X -> isNat X, a__isNat 0() -> tt(), a__isNat s V1 -> a__U21(a__isNatKind V1, V1), a__isNat length V1 -> a__U11(a__isNatIListKind V1, V1), a__U21(X1, X2) -> U21(X1, X2), a__U21(tt(), V1) -> a__U22 a__isNat V1, a__U32 X -> U32 X, a__U32 tt() -> tt(), a__U31(X1, X2) -> U31(X1, X2), a__U31(tt(), V) -> a__U32 a__isNatList V, a__U42(X1, X2) -> U42(X1, X2), a__U42(tt(), V2) -> a__U43 a__isNatIList V2, a__U41(X1, X2, X3) -> U41(X1, X2, X3), a__U41(tt(), V1, V2) -> a__U42(a__isNat V1, V2), a__U43 X -> U43 X, a__U43 tt() -> tt(), a__isNatIList V -> a__U31(a__isNatIListKind V, V), a__isNatIList X -> isNatIList X, a__isNatIList cons(V1, V2) -> a__U41(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatIList zeros() -> tt(), a__U52(X1, X2) -> U52(X1, X2), a__U52(tt(), V2) -> a__U53 a__isNatList V2, a__U51(X1, X2, X3) -> U51(X1, X2, X3), a__U51(tt(), V1, V2) -> a__U52(a__isNat V1, V2), a__U53 X -> U53 X, a__U53 tt() -> tt(), a__U62(X1, X2) -> U62(X1, X2), a__U62(tt(), V2) -> a__U63 a__isNatIList V2, a__U61(X1, X2, X3) -> U61(X1, X2, X3), a__U61(tt(), V1, V2) -> a__U62(a__isNat V1, V2), a__U63 X -> U63 X, a__U63 tt() -> tt(), a__length X -> length X, a__length cons(N, L) -> a__U71(a__and(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), a__length nil() -> 0(), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark zeros() -> a__zeros(), mark tt() -> tt(), mark s X -> s mark X, mark nil() -> nil(), mark take(X1, X2) -> a__take(mark X1, mark X2), mark length X -> a__length mark X, mark isNatIListKind X -> a__isNatIListKind X, mark and(X1, X2) -> a__and(mark X1, X2), mark isNat X -> a__isNat X, mark isNatKind X -> a__isNatKind X, mark U11(X1, X2) -> a__U11(mark X1, X2), mark U12 X -> a__U12 mark X, mark isNatList X -> a__isNatList X, mark U21(X1, X2) -> a__U21(mark X1, X2), mark U22 X -> a__U22 mark X, mark U31(X1, X2) -> a__U31(mark X1, X2), mark U32 X -> a__U32 mark X, mark U41(X1, X2, X3) -> a__U41(mark X1, X2, X3), mark U42(X1, X2) -> a__U42(mark X1, X2), mark U43 X -> a__U43 mark X, mark isNatIList X -> a__isNatIList X, mark U51(X1, X2, X3) -> a__U51(mark X1, X2, X3), mark U52(X1, X2) -> a__U52(mark X1, X2), mark U53 X -> a__U53 mark X, mark U61(X1, X2, X3) -> a__U61(mark X1, X2, X3), mark U62(X1, X2) -> a__U62(mark X1, X2), mark U63 X -> a__U63 mark X, mark U71(X1, X2) -> a__U71(mark X1, X2), mark U81 X -> a__U81 mark X, mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4), a__U71(X1, X2) -> U71(X1, X2), a__U71(tt(), L) -> s a__length mark L, a__U81 X -> U81 X, a__U81 tt() -> nil(), a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4), a__U91(tt(), IL, M, N) -> cons(mark N, take(M, IL)), a__and(X1, X2) -> and(X1, X2), a__and(tt(), X) -> mark X, a__isNatIListKind X -> isNatIListKind X, a__isNatIListKind cons(V1, V2) -> a__and(a__isNatKind V1, isNatIListKind V2), a__isNatIListKind zeros() -> tt(), a__isNatIListKind nil() -> tt(), a__isNatIListKind take(V1, V2) -> a__and(a__isNatKind V1, isNatIListKind V2), a__isNatKind X -> isNatKind X, a__isNatKind 0() -> tt(), a__isNatKind s V1 -> a__isNatKind V1, a__isNatKind length V1 -> a__isNatIListKind V1, a__take(X1, X2) -> take(X1, X2), a__take(0(), IL) -> a__U81 a__and(a__isNatIList IL, isNatIListKind IL), a__take(s M, cons(N, IL)) -> a__U91(a__and(a__and(a__isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)} Fail SCC (67): Strict: { a__isNatList# cons(V1, V2) -> a__U51#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatList# cons(V1, V2) -> a__isNatKind# V1, a__isNatList# take(V1, V2) -> a__U61#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatList# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatList# take(V1, V2) -> a__isNatKind# V1, a__U11#(tt(), V1) -> a__isNatList# V1, a__isNat# s V1 -> a__U21#(a__isNatKind V1, V1), a__isNat# s V1 -> a__isNatKind# V1, a__isNat# length V1 -> a__U11#(a__isNatIListKind V1, V1), a__isNat# length V1 -> a__isNatIListKind# V1, a__U21#(tt(), V1) -> a__isNat# V1, a__U31#(tt(), V) -> a__isNatList# V, a__U42#(tt(), V2) -> a__isNatIList# V2, a__U41#(tt(), V1, V2) -> a__isNat# V1, a__U41#(tt(), V1, V2) -> a__U42#(a__isNat V1, V2), a__isNatIList# V -> a__U31#(a__isNatIListKind V, V), a__isNatIList# V -> a__isNatIListKind# V, a__isNatIList# cons(V1, V2) -> a__U41#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatIList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatIList# cons(V1, V2) -> a__isNatKind# V1, a__U52#(tt(), V2) -> a__isNatList# V2, a__U51#(tt(), V1, V2) -> a__isNat# V1, a__U51#(tt(), V1, V2) -> a__U52#(a__isNat V1, V2), a__U62#(tt(), V2) -> a__isNatIList# V2, a__U61#(tt(), V1, V2) -> a__isNat# V1, a__U61#(tt(), V1, V2) -> a__U62#(a__isNat V1, V2), mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X, mark# isNatIListKind X -> a__isNatIListKind# X, mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> a__and#(mark X1, X2), mark# isNat X -> a__isNat# X, mark# isNatKind X -> a__isNatKind# X, mark# U11(X1, X2) -> a__U11#(mark X1, X2), mark# U11(X1, X2) -> mark# X1, mark# U12 X -> mark# X, mark# isNatList X -> a__isNatList# X, mark# U21(X1, X2) -> a__U21#(mark X1, X2), mark# U21(X1, X2) -> mark# X1, mark# U22 X -> mark# X, mark# U31(X1, X2) -> a__U31#(mark X1, X2), mark# U31(X1, X2) -> mark# X1, mark# U32 X -> mark# X, mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3), mark# U41(X1, X2, X3) -> mark# X1, mark# U42(X1, X2) -> a__U42#(mark X1, X2), mark# U42(X1, X2) -> mark# X1, mark# U43 X -> mark# X, mark# isNatIList X -> a__isNatIList# X, mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3), mark# U51(X1, X2, X3) -> mark# X1, mark# U52(X1, X2) -> a__U52#(mark X1, X2), mark# U52(X1, X2) -> mark# X1, mark# U53 X -> mark# X, mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3), mark# U61(X1, X2, X3) -> mark# X1, mark# U62(X1, X2) -> a__U62#(mark X1, X2), mark# U62(X1, X2) -> mark# X1, mark# U63 X -> mark# X, a__and#(tt(), X) -> mark# X, a__isNatIListKind# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatIListKind# cons(V1, V2) -> a__isNatKind# V1, a__isNatIListKind# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatIListKind# take(V1, V2) -> a__isNatKind# V1, a__isNatKind# s V1 -> a__isNatKind# V1, a__isNatKind# length V1 -> a__isNatIListKind# V1} Weak: { a__zeros() -> cons(0(), zeros()), a__zeros() -> zeros(), a__U12 X -> U12 X, a__U12 tt() -> tt(), a__isNatList X -> isNatList X, a__isNatList cons(V1, V2) -> a__U51(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatList nil() -> tt(), a__isNatList take(V1, V2) -> a__U61(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__U11(X1, X2) -> U11(X1, X2), a__U11(tt(), V1) -> a__U12 a__isNatList V1, a__U22 X -> U22 X, a__U22 tt() -> tt(), a__isNat X -> isNat X, a__isNat 0() -> tt(), a__isNat s V1 -> a__U21(a__isNatKind V1, V1), a__isNat length V1 -> a__U11(a__isNatIListKind V1, V1), a__U21(X1, X2) -> U21(X1, X2), a__U21(tt(), V1) -> a__U22 a__isNat V1, a__U32 X -> U32 X, a__U32 tt() -> tt(), a__U31(X1, X2) -> U31(X1, X2), a__U31(tt(), V) -> a__U32 a__isNatList V, a__U42(X1, X2) -> U42(X1, X2), a__U42(tt(), V2) -> a__U43 a__isNatIList V2, a__U41(X1, X2, X3) -> U41(X1, X2, X3), a__U41(tt(), V1, V2) -> a__U42(a__isNat V1, V2), a__U43 X -> U43 X, a__U43 tt() -> tt(), a__isNatIList V -> a__U31(a__isNatIListKind V, V), a__isNatIList X -> isNatIList X, a__isNatIList cons(V1, V2) -> a__U41(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatIList zeros() -> tt(), a__U52(X1, X2) -> U52(X1, X2), a__U52(tt(), V2) -> a__U53 a__isNatList V2, a__U51(X1, X2, X3) -> U51(X1, X2, X3), a__U51(tt(), V1, V2) -> a__U52(a__isNat V1, V2), a__U53 X -> U53 X, a__U53 tt() -> tt(), a__U62(X1, X2) -> U62(X1, X2), a__U62(tt(), V2) -> a__U63 a__isNatIList V2, a__U61(X1, X2, X3) -> U61(X1, X2, X3), a__U61(tt(), V1, V2) -> a__U62(a__isNat V1, V2), a__U63 X -> U63 X, a__U63 tt() -> tt(), a__length X -> length X, a__length cons(N, L) -> a__U71(a__and(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), a__length nil() -> 0(), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark zeros() -> a__zeros(), mark tt() -> tt(), mark s X -> s mark X, mark nil() -> nil(), mark take(X1, X2) -> a__take(mark X1, mark X2), mark length X -> a__length mark X, mark isNatIListKind X -> a__isNatIListKind X, mark and(X1, X2) -> a__and(mark X1, X2), mark isNat X -> a__isNat X, mark isNatKind X -> a__isNatKind X, mark U11(X1, X2) -> a__U11(mark X1, X2), mark U12 X -> a__U12 mark X, mark isNatList X -> a__isNatList X, mark U21(X1, X2) -> a__U21(mark X1, X2), mark U22 X -> a__U22 mark X, mark U31(X1, X2) -> a__U31(mark X1, X2), mark U32 X -> a__U32 mark X, mark U41(X1, X2, X3) -> a__U41(mark X1, X2, X3), mark U42(X1, X2) -> a__U42(mark X1, X2), mark U43 X -> a__U43 mark X, mark isNatIList X -> a__isNatIList X, mark U51(X1, X2, X3) -> a__U51(mark X1, X2, X3), mark U52(X1, X2) -> a__U52(mark X1, X2), mark U53 X -> a__U53 mark X, mark U61(X1, X2, X3) -> a__U61(mark X1, X2, X3), mark U62(X1, X2) -> a__U62(mark X1, X2), mark U63 X -> a__U63 mark X, mark U71(X1, X2) -> a__U71(mark X1, X2), mark U81 X -> a__U81 mark X, mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4), a__U71(X1, X2) -> U71(X1, X2), a__U71(tt(), L) -> s a__length mark L, a__U81 X -> U81 X, a__U81 tt() -> nil(), a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4), a__U91(tt(), IL, M, N) -> cons(mark N, take(M, IL)), a__and(X1, X2) -> and(X1, X2), a__and(tt(), X) -> mark X, a__isNatIListKind X -> isNatIListKind X, a__isNatIListKind cons(V1, V2) -> a__and(a__isNatKind V1, isNatIListKind V2), a__isNatIListKind zeros() -> tt(), a__isNatIListKind nil() -> tt(), a__isNatIListKind take(V1, V2) -> a__and(a__isNatKind V1, isNatIListKind V2), a__isNatKind X -> isNatKind X, a__isNatKind 0() -> tt(), a__isNatKind s V1 -> a__isNatKind V1, a__isNatKind length V1 -> a__isNatIListKind V1, a__take(X1, X2) -> take(X1, X2), a__take(0(), IL) -> a__U81 a__and(a__isNatIList IL, isNatIListKind IL), a__take(s M, cons(N, IL)) -> a__U91(a__and(a__and(a__isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [a__U91](x0, x1, x2, x3) = 0, [U91](x0, x1, x2, x3) = 0, [a__U41](x0, x1, x2) = x0 + x1 + x2 + 1, [a__U51](x0, x1, x2) = x0 + x1 + x2, [a__U61](x0, x1, x2) = x0 + x1 + x2, [U41](x0, x1, x2) = x0 + x1 + x2 + 1, [U51](x0, x1, x2) = x0 + x1 + x2 + 1, [U61](x0, x1, x2) = x0 + x1 + x2 + 1, [cons](x0, x1) = x0 + x1 + 1, [a__U11](x0, x1) = x0 + 1, [a__U21](x0, x1) = x0 + x1, [a__U31](x0, x1) = x0 + 1, [a__U42](x0, x1) = x0 + 1, [a__U52](x0, x1) = 0, [a__U62](x0, x1) = x0 + 1, [a__U71](x0, x1) = x0, [take](x0, x1) = x0 + x1 + 1, [a__and](x0, x1) = x0 + x1 + 1, [and](x0, x1) = x0 + x1, [a__take](x0, x1) = x0 + x1, [U11](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1 + 1, [U31](x0, x1) = x0 + x1 + 1, [U42](x0, x1) = x0 + x1 + 1, [U52](x0, x1) = x0 + x1 + 1, [U62](x0, x1) = x0 + x1 + 1, [U71](x0, x1) = 0, [a__U12](x0) = x0 + 1, [a__isNatList](x0) = x0 + 1, [a__U22](x0) = x0 + 1, [a__isNat](x0) = 0, [a__U32](x0) = x0 + 1, [a__U43](x0) = x0 + 1, [a__isNatIList](x0) = 1, [a__U53](x0) = x0 + 1, [a__U63](x0) = x0 + 1, [s](x0) = x0 + 1, [a__length](x0) = x0 + 1, [mark](x0) = 0, [a__U81](x0) = 0, [a__isNatIListKind](x0) = 1, [length](x0) = x0 + 1, [a__isNatKind](x0) = x0, [isNatIListKind](x0) = x0 + 1, [isNat](x0) = x0 + 1, [isNatKind](x0) = x0 + 1, [U12](x0) = x0 + 1, [isNatList](x0) = x0, [U22](x0) = x0 + 1, [U32](x0) = x0, [U43](x0) = x0, [isNatIList](x0) = x0 + 1, [U53](x0) = x0, [U63](x0) = x0, [U81](x0) = 0, [0] = 0, [zeros] = 0, [a__zeros] = 0, [tt] = 1, [nil] = 1, [a__U41#](x0, x1, x2) = x0 + x1 + 1, [a__U51#](x0, x1, x2) = x0 + x1 + 1, [a__U61#](x0, x1, x2) = x0 + x1 + 1, [a__U11#](x0, x1) = x0, [a__U21#](x0, x1) = x0 + 1, [a__U31#](x0, x1) = x0 + 1, [a__U42#](x0, x1) = x0 + 1, [a__U52#](x0, x1) = x0 + 1, [a__U62#](x0, x1) = x0 + 1, [a__and#](x0, x1) = x0, [a__isNatList#](x0) = x0, [a__isNat#](x0) = x0 + 1, [a__isNatIList#](x0) = x0 + 1, [mark#](x0) = x0, [a__isNatIListKind#](x0) = x0 + 1, [a__isNatKind#](x0) = x0 + 1 Strict: a__isNatKind# length V1 -> a__isNatIListKind# V1 2 + 1V1 >= 1 + 1V1 a__isNatKind# s V1 -> a__isNatKind# V1 2 + 1V1 >= 1 + 1V1 a__isNatIListKind# take(V1, V2) -> a__isNatKind# V1 2 + 1V1 + 1V2 >= 1 + 1V1 a__isNatIListKind# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2) 2 + 1V1 + 1V2 >= 1 + 0V1 + 1V2 a__isNatIListKind# cons(V1, V2) -> a__isNatKind# V1 2 + 1V1 + 1V2 >= 1 + 1V1 a__isNatIListKind# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2) 2 + 1V1 + 1V2 >= 1 + 0V1 + 1V2 a__and#(tt(), X) -> mark# X 0 + 1X >= 0 + 1X mark# U63 X -> mark# X 0 + 1X >= 0 + 1X mark# U62(X1, X2) -> mark# X1 1 + 1X1 + 1X2 >= 0 + 1X1 mark# U62(X1, X2) -> a__U62#(mark X1, X2) 1 + 1X1 + 1X2 >= 1 + 0X1 + 1X2 mark# U61(X1, X2, X3) -> mark# X1 1 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 mark# U61(X1, X2, X3) -> a__U61#(mark X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 mark# U53 X -> mark# X 0 + 1X >= 0 + 1X mark# U52(X1, X2) -> mark# X1 1 + 1X1 + 1X2 >= 0 + 1X1 mark# U52(X1, X2) -> a__U52#(mark X1, X2) 1 + 1X1 + 1X2 >= 1 + 0X1 + 1X2 mark# U51(X1, X2, X3) -> mark# X1 1 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 mark# U51(X1, X2, X3) -> a__U51#(mark X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 mark# isNatIList X -> a__isNatIList# X 1 + 1X >= 1 + 1X mark# U43 X -> mark# X 0 + 1X >= 0 + 1X mark# U42(X1, X2) -> mark# X1 1 + 1X1 + 1X2 >= 0 + 1X1 mark# U42(X1, X2) -> a__U42#(mark X1, X2) 1 + 1X1 + 1X2 >= 1 + 0X1 + 1X2 mark# U41(X1, X2, X3) -> mark# X1 1 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 mark# U41(X1, X2, X3) -> a__U41#(mark X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 mark# U32 X -> mark# X 0 + 1X >= 0 + 1X mark# U31(X1, X2) -> mark# X1 1 + 1X1 + 1X2 >= 0 + 1X1 mark# U31(X1, X2) -> a__U31#(mark X1, X2) 1 + 1X1 + 1X2 >= 1 + 0X1 + 1X2 mark# U22 X -> mark# X 1 + 1X >= 0 + 1X mark# U21(X1, X2) -> mark# X1 1 + 1X1 + 1X2 >= 0 + 1X1 mark# U21(X1, X2) -> a__U21#(mark X1, X2) 1 + 1X1 + 1X2 >= 1 + 0X1 + 1X2 mark# isNatList X -> a__isNatList# X 0 + 1X >= 0 + 1X mark# U12 X -> mark# X 1 + 1X >= 0 + 1X mark# U11(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 mark# U11(X1, X2) -> a__U11#(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 0X1 + 1X2 mark# isNatKind X -> a__isNatKind# X 1 + 1X >= 1 + 1X mark# isNat X -> a__isNat# X 1 + 1X >= 1 + 1X mark# and(X1, X2) -> a__and#(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 0X1 + 1X2 mark# and(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 mark# isNatIListKind X -> a__isNatIListKind# X 1 + 1X >= 1 + 1X mark# s X -> mark# X 1 + 1X >= 0 + 1X mark# cons(X1, X2) -> mark# X1 1 + 1X1 + 1X2 >= 0 + 1X1 a__U61#(tt(), V1, V2) -> a__U62#(a__isNat V1, V2) 1 + 1V1 + 1V2 >= 1 + 0V1 + 1V2 a__U61#(tt(), V1, V2) -> a__isNat# V1 1 + 1V1 + 1V2 >= 1 + 1V1 a__U62#(tt(), V2) -> a__isNatIList# V2 1 + 1V2 >= 1 + 1V2 a__U51#(tt(), V1, V2) -> a__U52#(a__isNat V1, V2) 1 + 1V1 + 1V2 >= 1 + 0V1 + 1V2 a__U51#(tt(), V1, V2) -> a__isNat# V1 1 + 1V1 + 1V2 >= 1 + 1V1 a__U52#(tt(), V2) -> a__isNatList# V2 1 + 1V2 >= 0 + 1V2 a__isNatIList# cons(V1, V2) -> a__isNatKind# V1 2 + 1V1 + 1V2 >= 1 + 1V1 a__isNatIList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2) 2 + 1V1 + 1V2 >= 1 + 0V1 + 1V2 a__isNatIList# cons(V1, V2) -> a__U41#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2) 2 + 1V1 + 1V2 >= 1 + 1V1 + 1V2 a__isNatIList# V -> a__isNatIListKind# V 1 + 1V >= 1 + 1V a__isNatIList# V -> a__U31#(a__isNatIListKind V, V) 1 + 1V >= 1 + 1V a__U41#(tt(), V1, V2) -> a__U42#(a__isNat V1, V2) 1 + 1V1 + 1V2 >= 1 + 0V1 + 1V2 a__U41#(tt(), V1, V2) -> a__isNat# V1 1 + 1V1 + 1V2 >= 1 + 1V1 a__U42#(tt(), V2) -> a__isNatIList# V2 1 + 1V2 >= 1 + 1V2 a__U31#(tt(), V) -> a__isNatList# V 1 + 1V >= 0 + 1V a__U21#(tt(), V1) -> a__isNat# V1 1 + 1V1 >= 1 + 1V1 a__isNat# length V1 -> a__isNatIListKind# V1 2 + 1V1 >= 1 + 1V1 a__isNat# length V1 -> a__U11#(a__isNatIListKind V1, V1) 2 + 1V1 >= 0 + 1V1 a__isNat# s V1 -> a__isNatKind# V1 2 + 1V1 >= 1 + 1V1 a__isNat# s V1 -> a__U21#(a__isNatKind V1, V1) 2 + 1V1 >= 1 + 1V1 a__U11#(tt(), V1) -> a__isNatList# V1 0 + 1V1 >= 0 + 1V1 a__isNatList# take(V1, V2) -> a__isNatKind# V1 1 + 1V1 + 1V2 >= 1 + 1V1 a__isNatList# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2) 1 + 1V1 + 1V2 >= 1 + 0V1 + 1V2 a__isNatList# take(V1, V2) -> a__U61#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2) 1 + 1V1 + 1V2 >= 1 + 1V1 + 1V2 a__isNatList# cons(V1, V2) -> a__isNatKind# V1 1 + 1V1 + 1V2 >= 1 + 1V1 a__isNatList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2) 1 + 1V1 + 1V2 >= 1 + 0V1 + 1V2 a__isNatList# cons(V1, V2) -> a__U51#(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2) 1 + 1V1 + 1V2 >= 1 + 1V1 + 1V2 Weak: a__take(s M, cons(N, IL)) -> a__U91(a__and(a__and(a__isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N) 2 + 1N + 1M + 1IL >= 0 + 0N + 0M + 0IL a__take(0(), IL) -> a__U81 a__and(a__isNatIList IL, isNatIListKind IL) 0 + 1IL >= 0 + 0IL a__take(X1, X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 a__isNatKind length V1 -> a__isNatIListKind V1 1 + 1V1 >= 1 + 0V1 a__isNatKind s V1 -> a__isNatKind V1 1 + 1V1 >= 0 + 1V1 a__isNatKind 0() -> tt() 0 >= 1 a__isNatKind X -> isNatKind X 0 + 1X >= 1 + 1X a__isNatIListKind take(V1, V2) -> a__and(a__isNatKind V1, isNatIListKind V2) 1 + 0V1 + 0V2 >= 2 + 1V1 + 1V2 a__isNatIListKind nil() -> tt() 1 >= 1 a__isNatIListKind zeros() -> tt() 1 >= 1 a__isNatIListKind cons(V1, V2) -> a__and(a__isNatKind V1, isNatIListKind V2) 1 + 0V1 + 0V2 >= 2 + 1V1 + 1V2 a__isNatIListKind X -> isNatIListKind X 1 + 0X >= 1 + 1X a__and(tt(), X) -> mark X 2 + 1X >= 0 + 0X a__and(X1, X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 a__U91(tt(), IL, M, N) -> cons(mark N, take(M, IL)) 0 + 0N + 0M + 0IL >= 2 + 0N + 1M + 1IL a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U81 tt() -> nil() 0 >= 1 a__U81 X -> U81 X 0 + 0X >= 0 + 0X a__U71(tt(), L) -> s a__length mark L 1 + 0L >= 2 + 0L a__U71(X1, X2) -> U71(X1, X2) 0 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark U81 X -> a__U81 mark X 0 + 0X >= 0 + 0X mark U71(X1, X2) -> a__U71(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U63 X -> a__U63 mark X 0 + 0X >= 1 + 0X mark U62(X1, X2) -> a__U62(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U61(X1, X2, X3) -> a__U61(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 mark U53 X -> a__U53 mark X 0 + 0X >= 1 + 0X mark U52(X1, X2) -> a__U52(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U51(X1, X2, X3) -> a__U51(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 mark isNatIList X -> a__isNatIList X 0 + 0X >= 1 + 0X mark U43 X -> a__U43 mark X 0 + 0X >= 1 + 0X mark U42(X1, X2) -> a__U42(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U41(X1, X2, X3) -> a__U41(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 1X2 + 1X3 mark U32 X -> a__U32 mark X 0 + 0X >= 1 + 0X mark U31(X1, X2) -> a__U31(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U22 X -> a__U22 mark X 0 + 0X >= 1 + 0X mark U21(X1, X2) -> a__U21(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 mark isNatList X -> a__isNatList X 0 + 0X >= 1 + 1X mark U12 X -> a__U12 mark X 0 + 0X >= 1 + 0X mark U11(X1, X2) -> a__U11(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark isNatKind X -> a__isNatKind X 0 + 0X >= 0 + 1X mark isNat X -> a__isNat X 0 + 0X >= 0 + 0X mark and(X1, X2) -> a__and(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 1X2 mark isNatIListKind X -> a__isNatIListKind X 0 + 0X >= 1 + 0X mark length X -> a__length mark X 0 + 0X >= 1 + 0X mark take(X1, X2) -> a__take(mark X1, mark X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> nil() 0 >= 1 mark s X -> s mark X 0 + 0X >= 1 + 0X mark tt() -> tt() 0 >= 1 mark zeros() -> a__zeros() 0 >= 0 mark 0() -> 0() 0 >= 0 mark cons(X1, X2) -> cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 1X2 a__length nil() -> 0() 2 >= 0 a__length cons(N, L) -> a__U71(a__and(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L) 2 + 1L + 1N >= 6 + 2L + 2N a__length X -> length X 1 + 1X >= 1 + 1X a__U63 tt() -> tt() 2 >= 1 a__U63 X -> U63 X 1 + 1X >= 0 + 1X a__U61(tt(), V1, V2) -> a__U62(a__isNat V1, V2) 1 + 1V1 + 1V2 >= 1 + 0V1 + 0V2 a__U61(X1, X2, X3) -> U61(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 a__U62(tt(), V2) -> a__U63 a__isNatIList V2 2 + 0V2 >= 2 + 0V2 a__U62(X1, X2) -> U62(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 1X2 a__U53 tt() -> tt() 2 >= 1 a__U53 X -> U53 X 1 + 1X >= 0 + 1X a__U51(tt(), V1, V2) -> a__U52(a__isNat V1, V2) 1 + 1V1 + 1V2 >= 0 + 0V1 + 0V2 a__U51(X1, X2, X3) -> U51(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 a__U52(tt(), V2) -> a__U53 a__isNatList V2 0 + 0V2 >= 2 + 1V2 a__U52(X1, X2) -> U52(X1, X2) 0 + 0X1 + 0X2 >= 1 + 1X1 + 1X2 a__isNatIList zeros() -> tt() 1 >= 1 a__isNatIList cons(V1, V2) -> a__U41(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2) 1 + 0V1 + 0V2 >= 3 + 2V1 + 2V2 a__isNatIList X -> isNatIList X 1 + 0X >= 1 + 1X a__isNatIList V -> a__U31(a__isNatIListKind V, V) 1 + 0V >= 2 + 0V a__U43 tt() -> tt() 2 >= 1 a__U43 X -> U43 X 1 + 1X >= 0 + 1X a__U41(tt(), V1, V2) -> a__U42(a__isNat V1, V2) 2 + 1V1 + 1V2 >= 1 + 0V1 + 0V2 a__U41(X1, X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 a__U42(tt(), V2) -> a__U43 a__isNatIList V2 2 + 0V2 >= 2 + 0V2 a__U42(X1, X2) -> U42(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 1X2 a__U31(tt(), V) -> a__U32 a__isNatList V 2 + 0V >= 2 + 1V a__U31(X1, X2) -> U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 1X2 a__U32 tt() -> tt() 2 >= 1 a__U32 X -> U32 X 1 + 1X >= 0 + 1X a__U21(tt(), V1) -> a__U22 a__isNat V1 1 + 1V1 >= 1 + 0V1 a__U21(X1, X2) -> U21(X1, X2) 0 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 a__isNat length V1 -> a__U11(a__isNatIListKind V1, V1) 0 + 0V1 >= 2 + 0V1 a__isNat s V1 -> a__U21(a__isNatKind V1, V1) 0 + 0V1 >= 0 + 2V1 a__isNat 0() -> tt() 0 >= 1 a__isNat X -> isNat X 0 + 0X >= 1 + 1X a__U22 tt() -> tt() 2 >= 1 a__U22 X -> U22 X 1 + 1X >= 1 + 1X a__U11(tt(), V1) -> a__U12 a__isNatList V1 2 + 0V1 >= 2 + 1V1 a__U11(X1, X2) -> U11(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 1X2 a__isNatList take(V1, V2) -> a__U61(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2) 2 + 1V1 + 1V2 >= 2 + 2V1 + 2V2 a__isNatList nil() -> tt() 2 >= 1 a__isNatList cons(V1, V2) -> a__U51(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2) 2 + 1V1 + 1V2 >= 2 + 2V1 + 2V2 a__isNatList X -> isNatList X 1 + 1X >= 0 + 1X a__U12 tt() -> tt() 2 >= 1 a__U12 X -> U12 X 1 + 1X >= 1 + 1X a__zeros() -> zeros() 0 >= 0 a__zeros() -> cons(0(), zeros()) 0 >= 1 SCCS (1): Scc: {a__isNatList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatList# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__U11#(tt(), V1) -> a__isNatList# V1, mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> a__and#(mark X1, X2), mark# U11(X1, X2) -> a__U11#(mark X1, X2), mark# U11(X1, X2) -> mark# X1, mark# isNatList X -> a__isNatList# X, mark# U32 X -> mark# X, mark# U43 X -> mark# X, mark# U53 X -> mark# X, mark# U63 X -> mark# X, a__and#(tt(), X) -> mark# X} SCC (13): Strict: {a__isNatList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__isNatList# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2), a__U11#(tt(), V1) -> a__isNatList# V1, mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> a__and#(mark X1, X2), mark# U11(X1, X2) -> a__U11#(mark X1, X2), mark# U11(X1, X2) -> mark# X1, mark# isNatList X -> a__isNatList# X, mark# U32 X -> mark# X, mark# U43 X -> mark# X, mark# U53 X -> mark# X, mark# U63 X -> mark# X, a__and#(tt(), X) -> mark# X} Weak: { a__zeros() -> cons(0(), zeros()), a__zeros() -> zeros(), a__U12 X -> U12 X, a__U12 tt() -> tt(), a__isNatList X -> isNatList X, a__isNatList cons(V1, V2) -> a__U51(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatList nil() -> tt(), a__isNatList take(V1, V2) -> a__U61(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__U11(X1, X2) -> U11(X1, X2), a__U11(tt(), V1) -> a__U12 a__isNatList V1, a__U22 X -> U22 X, a__U22 tt() -> tt(), a__isNat X -> isNat X, a__isNat 0() -> tt(), a__isNat s V1 -> a__U21(a__isNatKind V1, V1), a__isNat length V1 -> a__U11(a__isNatIListKind V1, V1), a__U21(X1, X2) -> U21(X1, X2), a__U21(tt(), V1) -> a__U22 a__isNat V1, a__U32 X -> U32 X, a__U32 tt() -> tt(), a__U31(X1, X2) -> U31(X1, X2), a__U31(tt(), V) -> a__U32 a__isNatList V, a__U42(X1, X2) -> U42(X1, X2), a__U42(tt(), V2) -> a__U43 a__isNatIList V2, a__U41(X1, X2, X3) -> U41(X1, X2, X3), a__U41(tt(), V1, V2) -> a__U42(a__isNat V1, V2), a__U43 X -> U43 X, a__U43 tt() -> tt(), a__isNatIList V -> a__U31(a__isNatIListKind V, V), a__isNatIList X -> isNatIList X, a__isNatIList cons(V1, V2) -> a__U41(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatIList zeros() -> tt(), a__U52(X1, X2) -> U52(X1, X2), a__U52(tt(), V2) -> a__U53 a__isNatList V2, a__U51(X1, X2, X3) -> U51(X1, X2, X3), a__U51(tt(), V1, V2) -> a__U52(a__isNat V1, V2), a__U53 X -> U53 X, a__U53 tt() -> tt(), a__U62(X1, X2) -> U62(X1, X2), a__U62(tt(), V2) -> a__U63 a__isNatIList V2, a__U61(X1, X2, X3) -> U61(X1, X2, X3), a__U61(tt(), V1, V2) -> a__U62(a__isNat V1, V2), a__U63 X -> U63 X, a__U63 tt() -> tt(), a__length X -> length X, a__length cons(N, L) -> a__U71(a__and(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), a__length nil() -> 0(), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark zeros() -> a__zeros(), mark tt() -> tt(), mark s X -> s mark X, mark nil() -> nil(), mark take(X1, X2) -> a__take(mark X1, mark X2), mark length X -> a__length mark X, mark isNatIListKind X -> a__isNatIListKind X, mark and(X1, X2) -> a__and(mark X1, X2), mark isNat X -> a__isNat X, mark isNatKind X -> a__isNatKind X, mark U11(X1, X2) -> a__U11(mark X1, X2), mark U12 X -> a__U12 mark X, mark isNatList X -> a__isNatList X, mark U21(X1, X2) -> a__U21(mark X1, X2), mark U22 X -> a__U22 mark X, mark U31(X1, X2) -> a__U31(mark X1, X2), mark U32 X -> a__U32 mark X, mark U41(X1, X2, X3) -> a__U41(mark X1, X2, X3), mark U42(X1, X2) -> a__U42(mark X1, X2), mark U43 X -> a__U43 mark X, mark isNatIList X -> a__isNatIList X, mark U51(X1, X2, X3) -> a__U51(mark X1, X2, X3), mark U52(X1, X2) -> a__U52(mark X1, X2), mark U53 X -> a__U53 mark X, mark U61(X1, X2, X3) -> a__U61(mark X1, X2, X3), mark U62(X1, X2) -> a__U62(mark X1, X2), mark U63 X -> a__U63 mark X, mark U71(X1, X2) -> a__U71(mark X1, X2), mark U81 X -> a__U81 mark X, mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4), a__U71(X1, X2) -> U71(X1, X2), a__U71(tt(), L) -> s a__length mark L, a__U81 X -> U81 X, a__U81 tt() -> nil(), a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4), a__U91(tt(), IL, M, N) -> cons(mark N, take(M, IL)), a__and(X1, X2) -> and(X1, X2), a__and(tt(), X) -> mark X, a__isNatIListKind X -> isNatIListKind X, a__isNatIListKind cons(V1, V2) -> a__and(a__isNatKind V1, isNatIListKind V2), a__isNatIListKind zeros() -> tt(), a__isNatIListKind nil() -> tt(), a__isNatIListKind take(V1, V2) -> a__and(a__isNatKind V1, isNatIListKind V2), a__isNatKind X -> isNatKind X, a__isNatKind 0() -> tt(), a__isNatKind s V1 -> a__isNatKind V1, a__isNatKind length V1 -> a__isNatIListKind V1, a__take(X1, X2) -> take(X1, X2), a__take(0(), IL) -> a__U81 a__and(a__isNatIList IL, isNatIListKind IL), a__take(s M, cons(N, IL)) -> a__U91(a__and(a__and(a__isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [a__U91](x0, x1, x2, x3) = x0, [U91](x0, x1, x2, x3) = 0, [a__U41](x0, x1, x2) = 0, [a__U51](x0, x1, x2) = 0, [a__U61](x0, x1, x2) = 0, [U41](x0, x1, x2) = 0, [U51](x0, x1, x2) = 0, [U61](x0, x1, x2) = 0, [cons](x0, x1) = 1, [a__U11](x0, x1) = 0, [a__U21](x0, x1) = 0, [a__U31](x0, x1) = 0, [a__U42](x0, x1) = 0, [a__U52](x0, x1) = 0, [a__U62](x0, x1) = 0, [a__U71](x0, x1) = x0, [take](x0, x1) = 1, [a__and](x0, x1) = x0, [and](x0, x1) = x0 + x1 + 1, [a__take](x0, x1) = 0, [U11](x0, x1) = x0 + x1, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [U42](x0, x1) = 0, [U52](x0, x1) = 0, [U62](x0, x1) = 0, [U71](x0, x1) = 0, [a__U12](x0) = 0, [a__isNatList](x0) = x0 + 1, [a__U22](x0) = 0, [a__isNat](x0) = x0 + 1, [a__U32](x0) = 0, [a__U43](x0) = x0 + 1, [a__isNatIList](x0) = 1, [a__U53](x0) = x0 + 1, [a__U63](x0) = x0 + 1, [s](x0) = 1, [a__length](x0) = x0 + 1, [mark](x0) = 0, [a__U81](x0) = 0, [a__isNatIListKind](x0) = 0, [length](x0) = 1, [a__isNatKind](x0) = 0, [isNatIListKind](x0) = 0, [isNat](x0) = 0, [isNatKind](x0) = 1, [U12](x0) = 0, [isNatList](x0) = x0, [U22](x0) = 0, [U32](x0) = x0, [U43](x0) = x0, [isNatIList](x0) = 0, [U53](x0) = x0, [U63](x0) = x0, [U81](x0) = 0, [0] = 1, [zeros] = 0, [a__zeros] = 0, [tt] = 0, [nil] = 1, [a__U11#](x0, x1) = x0, [a__and#](x0, x1) = x0 + 1, [a__isNatList#](x0) = x0, [mark#](x0) = x0 Strict: a__and#(tt(), X) -> mark# X 1 + 1X >= 0 + 1X mark# U63 X -> mark# X 0 + 1X >= 0 + 1X mark# U53 X -> mark# X 0 + 1X >= 0 + 1X mark# U43 X -> mark# X 0 + 1X >= 0 + 1X mark# U32 X -> mark# X 0 + 1X >= 0 + 1X mark# isNatList X -> a__isNatList# X 0 + 1X >= 0 + 1X mark# U11(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 mark# U11(X1, X2) -> a__U11#(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 0X1 + 1X2 mark# and(X1, X2) -> a__and#(mark X1, X2) 1 + 1X1 + 1X2 >= 1 + 0X1 + 1X2 mark# and(X1, X2) -> mark# X1 1 + 1X1 + 1X2 >= 0 + 1X1 a__U11#(tt(), V1) -> a__isNatList# V1 0 + 1V1 >= 0 + 1V1 a__isNatList# take(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 a__isNatList# cons(V1, V2) -> a__and#(a__isNatKind V1, isNatIListKind V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 Weak: a__take(s M, cons(N, IL)) -> a__U91(a__and(a__and(a__isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N) 0 + 0N + 0M + 0IL >= 5 + 0N + 0M + 0IL a__take(0(), IL) -> a__U81 a__and(a__isNatIList IL, isNatIListKind IL) 0 + 0IL >= 0 + 0IL a__take(X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 a__isNatKind length V1 -> a__isNatIListKind V1 0 + 0V1 >= 0 + 0V1 a__isNatKind s V1 -> a__isNatKind V1 0 + 0V1 >= 0 + 0V1 a__isNatKind 0() -> tt() 0 >= 0 a__isNatKind X -> isNatKind X 0 + 0X >= 1 + 0X a__isNatIListKind take(V1, V2) -> a__and(a__isNatKind V1, isNatIListKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__isNatIListKind nil() -> tt() 0 >= 0 a__isNatIListKind zeros() -> tt() 0 >= 0 a__isNatIListKind cons(V1, V2) -> a__and(a__isNatKind V1, isNatIListKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__isNatIListKind X -> isNatIListKind X 0 + 0X >= 0 + 0X a__and(tt(), X) -> mark X 0 + 1X >= 0 + 0X a__and(X1, X2) -> and(X1, X2) 0 + 0X1 + 1X2 >= 1 + 1X1 + 1X2 a__U91(tt(), IL, M, N) -> cons(mark N, take(M, IL)) 0 + 0N + 0M + 0IL >= 1 + 0N + 0M + 0IL a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U81 tt() -> nil() 0 >= 1 a__U81 X -> U81 X 0 + 0X >= 0 + 0X a__U71(tt(), L) -> s a__length mark L 0 + 0L >= 1 + 0L a__U71(X1, X2) -> U71(X1, X2) 0 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark U81 X -> a__U81 mark X 0 + 0X >= 0 + 0X mark U71(X1, X2) -> a__U71(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U63 X -> a__U63 mark X 0 + 0X >= 1 + 0X mark U62(X1, X2) -> a__U62(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U61(X1, X2, X3) -> a__U61(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 mark U53 X -> a__U53 mark X 0 + 0X >= 1 + 0X mark U52(X1, X2) -> a__U52(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U51(X1, X2, X3) -> a__U51(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 mark isNatIList X -> a__isNatIList X 0 + 0X >= 1 + 0X mark U43 X -> a__U43 mark X 0 + 0X >= 1 + 0X mark U42(X1, X2) -> a__U42(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U41(X1, X2, X3) -> a__U41(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 mark U32 X -> a__U32 mark X 0 + 0X >= 0 + 0X mark U31(X1, X2) -> a__U31(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U22 X -> a__U22 mark X 0 + 0X >= 0 + 0X mark U21(X1, X2) -> a__U21(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark isNatList X -> a__isNatList X 0 + 0X >= 1 + 1X mark U12 X -> a__U12 mark X 0 + 0X >= 0 + 0X mark U11(X1, X2) -> a__U11(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark isNatKind X -> a__isNatKind X 0 + 0X >= 0 + 0X mark isNat X -> a__isNat X 0 + 0X >= 1 + 1X mark and(X1, X2) -> a__and(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 mark isNatIListKind X -> a__isNatIListKind X 0 + 0X >= 0 + 0X mark length X -> a__length mark X 0 + 0X >= 1 + 0X mark take(X1, X2) -> a__take(mark X1, mark X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> nil() 0 >= 1 mark s X -> s mark X 0 + 0X >= 1 + 0X mark tt() -> tt() 0 >= 0 mark zeros() -> a__zeros() 0 >= 0 mark 0() -> 0() 0 >= 1 mark cons(X1, X2) -> cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 a__length nil() -> 0() 2 >= 1 a__length cons(N, L) -> a__U71(a__and(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L) 2 + 0L + 0N >= 2 + 0L + 0N a__length X -> length X 1 + 1X >= 1 + 0X a__U63 tt() -> tt() 1 >= 0 a__U63 X -> U63 X 1 + 1X >= 0 + 1X a__U61(tt(), V1, V2) -> a__U62(a__isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__U61(X1, X2, X3) -> U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 a__U62(tt(), V2) -> a__U63 a__isNatIList V2 0 + 0V2 >= 2 + 0V2 a__U62(X1, X2) -> U62(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 a__U53 tt() -> tt() 1 >= 0 a__U53 X -> U53 X 1 + 1X >= 0 + 1X a__U51(tt(), V1, V2) -> a__U52(a__isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__U51(X1, X2, X3) -> U51(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 a__U52(tt(), V2) -> a__U53 a__isNatList V2 0 + 0V2 >= 2 + 1V2 a__U52(X1, X2) -> U52(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 a__isNatIList zeros() -> tt() 1 >= 0 a__isNatIList cons(V1, V2) -> a__U41(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__isNatIList X -> isNatIList X 1 + 0X >= 0 + 0X a__isNatIList V -> a__U31(a__isNatIListKind V, V) 1 + 0V >= 0 + 0V a__U43 tt() -> tt() 1 >= 0 a__U43 X -> U43 X 1 + 1X >= 0 + 1X a__U41(tt(), V1, V2) -> a__U42(a__isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__U41(X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 a__U42(tt(), V2) -> a__U43 a__isNatIList V2 0 + 0V2 >= 2 + 0V2 a__U42(X1, X2) -> U42(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 a__U31(tt(), V) -> a__U32 a__isNatList V 0 + 0V >= 0 + 0V a__U31(X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 a__U32 tt() -> tt() 0 >= 0 a__U32 X -> U32 X 0 + 0X >= 0 + 1X a__U21(tt(), V1) -> a__U22 a__isNat V1 0 + 0V1 >= 0 + 0V1 a__U21(X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 a__isNat length V1 -> a__U11(a__isNatIListKind V1, V1) 2 + 0V1 >= 0 + 0V1 a__isNat s V1 -> a__U21(a__isNatKind V1, V1) 2 + 0V1 >= 0 + 0V1 a__isNat 0() -> tt() 2 >= 0 a__isNat X -> isNat X 1 + 1X >= 0 + 0X a__U22 tt() -> tt() 0 >= 0 a__U22 X -> U22 X 0 + 0X >= 0 + 0X a__U11(tt(), V1) -> a__U12 a__isNatList V1 0 + 0V1 >= 0 + 0V1 a__U11(X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 1X1 + 1X2 a__isNatList take(V1, V2) -> a__U61(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2) 2 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__isNatList nil() -> tt() 2 >= 0 a__isNatList cons(V1, V2) -> a__U51(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2) 2 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__isNatList X -> isNatList X 1 + 1X >= 0 + 1X a__U12 tt() -> tt() 0 >= 0 a__U12 X -> U12 X 0 + 0X >= 0 + 0X a__zeros() -> zeros() 0 >= 0 a__zeros() -> cons(0(), zeros()) 0 >= 1 SCCS (1): Scc: {mark# U11(X1, X2) -> mark# X1, mark# U32 X -> mark# X, mark# U43 X -> mark# X, mark# U53 X -> mark# X, mark# U63 X -> mark# X} SCC (5): Strict: {mark# U11(X1, X2) -> mark# X1, mark# U32 X -> mark# X, mark# U43 X -> mark# X, mark# U53 X -> mark# X, mark# U63 X -> mark# X} Weak: { a__zeros() -> cons(0(), zeros()), a__zeros() -> zeros(), a__U12 X -> U12 X, a__U12 tt() -> tt(), a__isNatList X -> isNatList X, a__isNatList cons(V1, V2) -> a__U51(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatList nil() -> tt(), a__isNatList take(V1, V2) -> a__U61(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__U11(X1, X2) -> U11(X1, X2), a__U11(tt(), V1) -> a__U12 a__isNatList V1, a__U22 X -> U22 X, a__U22 tt() -> tt(), a__isNat X -> isNat X, a__isNat 0() -> tt(), a__isNat s V1 -> a__U21(a__isNatKind V1, V1), a__isNat length V1 -> a__U11(a__isNatIListKind V1, V1), a__U21(X1, X2) -> U21(X1, X2), a__U21(tt(), V1) -> a__U22 a__isNat V1, a__U32 X -> U32 X, a__U32 tt() -> tt(), a__U31(X1, X2) -> U31(X1, X2), a__U31(tt(), V) -> a__U32 a__isNatList V, a__U42(X1, X2) -> U42(X1, X2), a__U42(tt(), V2) -> a__U43 a__isNatIList V2, a__U41(X1, X2, X3) -> U41(X1, X2, X3), a__U41(tt(), V1, V2) -> a__U42(a__isNat V1, V2), a__U43 X -> U43 X, a__U43 tt() -> tt(), a__isNatIList V -> a__U31(a__isNatIListKind V, V), a__isNatIList X -> isNatIList X, a__isNatIList cons(V1, V2) -> a__U41(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2), a__isNatIList zeros() -> tt(), a__U52(X1, X2) -> U52(X1, X2), a__U52(tt(), V2) -> a__U53 a__isNatList V2, a__U51(X1, X2, X3) -> U51(X1, X2, X3), a__U51(tt(), V1, V2) -> a__U52(a__isNat V1, V2), a__U53 X -> U53 X, a__U53 tt() -> tt(), a__U62(X1, X2) -> U62(X1, X2), a__U62(tt(), V2) -> a__U63 a__isNatIList V2, a__U61(X1, X2, X3) -> U61(X1, X2, X3), a__U61(tt(), V1, V2) -> a__U62(a__isNat V1, V2), a__U63 X -> U63 X, a__U63 tt() -> tt(), a__length X -> length X, a__length cons(N, L) -> a__U71(a__and(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), a__length nil() -> 0(), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark zeros() -> a__zeros(), mark tt() -> tt(), mark s X -> s mark X, mark nil() -> nil(), mark take(X1, X2) -> a__take(mark X1, mark X2), mark length X -> a__length mark X, mark isNatIListKind X -> a__isNatIListKind X, mark and(X1, X2) -> a__and(mark X1, X2), mark isNat X -> a__isNat X, mark isNatKind X -> a__isNatKind X, mark U11(X1, X2) -> a__U11(mark X1, X2), mark U12 X -> a__U12 mark X, mark isNatList X -> a__isNatList X, mark U21(X1, X2) -> a__U21(mark X1, X2), mark U22 X -> a__U22 mark X, mark U31(X1, X2) -> a__U31(mark X1, X2), mark U32 X -> a__U32 mark X, mark U41(X1, X2, X3) -> a__U41(mark X1, X2, X3), mark U42(X1, X2) -> a__U42(mark X1, X2), mark U43 X -> a__U43 mark X, mark isNatIList X -> a__isNatIList X, mark U51(X1, X2, X3) -> a__U51(mark X1, X2, X3), mark U52(X1, X2) -> a__U52(mark X1, X2), mark U53 X -> a__U53 mark X, mark U61(X1, X2, X3) -> a__U61(mark X1, X2, X3), mark U62(X1, X2) -> a__U62(mark X1, X2), mark U63 X -> a__U63 mark X, mark U71(X1, X2) -> a__U71(mark X1, X2), mark U81 X -> a__U81 mark X, mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4), a__U71(X1, X2) -> U71(X1, X2), a__U71(tt(), L) -> s a__length mark L, a__U81 X -> U81 X, a__U81 tt() -> nil(), a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4), a__U91(tt(), IL, M, N) -> cons(mark N, take(M, IL)), a__and(X1, X2) -> and(X1, X2), a__and(tt(), X) -> mark X, a__isNatIListKind X -> isNatIListKind X, a__isNatIListKind cons(V1, V2) -> a__and(a__isNatKind V1, isNatIListKind V2), a__isNatIListKind zeros() -> tt(), a__isNatIListKind nil() -> tt(), a__isNatIListKind take(V1, V2) -> a__and(a__isNatKind V1, isNatIListKind V2), a__isNatKind X -> isNatKind X, a__isNatKind 0() -> tt(), a__isNatKind s V1 -> a__isNatKind V1, a__isNatKind length V1 -> a__isNatIListKind V1, a__take(X1, X2) -> take(X1, X2), a__take(0(), IL) -> a__U81 a__and(a__isNatIList IL, isNatIListKind IL), a__take(s M, cons(N, IL)) -> a__U91(a__and(a__and(a__isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [a__U91](x0, x1, x2, x3) = 0, [U91](x0, x1, x2, x3) = 0, [a__U41](x0, x1, x2) = x0 + x1 + x2 + 1, [a__U51](x0, x1, x2) = x0 + x1 + x2 + 1, [a__U61](x0, x1, x2) = 0, [U41](x0, x1, x2) = 0, [U51](x0, x1, x2) = 0, [U61](x0, x1, x2) = 0, [cons](x0, x1) = 0, [a__U11](x0, x1) = x0 + x1 + 1, [a__U21](x0, x1) = x0 + x1, [a__U31](x0, x1) = x0 + x1 + 1, [a__U42](x0, x1) = x0 + 1, [a__U52](x0, x1) = x0 + 1, [a__U62](x0, x1) = x0 + 1, [a__U71](x0, x1) = x0, [take](x0, x1) = 1, [a__and](x0, x1) = x0 + x1 + 1, [and](x0, x1) = 0, [a__take](x0, x1) = 0, [U11](x0, x1) = x0 + 1, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [U42](x0, x1) = 0, [U52](x0, x1) = 0, [U62](x0, x1) = 0, [U71](x0, x1) = 0, [a__U12](x0) = x0 + 1, [a__isNatList](x0) = 0, [a__U22](x0) = x0 + 1, [a__isNat](x0) = x0 + 1, [a__U32](x0) = x0 + 1, [a__U43](x0) = x0 + 1, [a__isNatIList](x0) = 1, [a__U53](x0) = 0, [a__U63](x0) = x0 + 1, [s](x0) = 1, [a__length](x0) = 0, [mark](x0) = 0, [a__U81](x0) = 0, [a__isNatIListKind](x0) = x0 + 1, [length](x0) = 1, [a__isNatKind](x0) = x0, [isNatIListKind](x0) = x0, [isNat](x0) = 0, [isNatKind](x0) = 0, [U12](x0) = 0, [isNatList](x0) = 0, [U22](x0) = 0, [U32](x0) = x0 + 1, [U43](x0) = x0 + 1, [isNatIList](x0) = 0, [U53](x0) = x0 + 1, [U63](x0) = x0 + 1, [U81](x0) = 0, [0] = 1, [zeros] = 1, [a__zeros] = 0, [tt] = 1, [nil] = 1, [mark#](x0) = x0 + 1 Strict: mark# U63 X -> mark# X 2 + 1X >= 1 + 1X mark# U53 X -> mark# X 2 + 1X >= 1 + 1X mark# U43 X -> mark# X 2 + 1X >= 1 + 1X mark# U32 X -> mark# X 2 + 1X >= 1 + 1X mark# U11(X1, X2) -> mark# X1 2 + 1X1 + 0X2 >= 1 + 1X1 Weak: a__take(s M, cons(N, IL)) -> a__U91(a__and(a__and(a__isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N) 0 + 0N + 0M + 0IL >= 0 + 0N + 0M + 0IL a__take(0(), IL) -> a__U81 a__and(a__isNatIList IL, isNatIListKind IL) 0 + 0IL >= 0 + 0IL a__take(X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 a__isNatKind length V1 -> a__isNatIListKind V1 1 + 0V1 >= 1 + 1V1 a__isNatKind s V1 -> a__isNatKind V1 1 + 0V1 >= 0 + 1V1 a__isNatKind 0() -> tt() 1 >= 1 a__isNatKind X -> isNatKind X 0 + 1X >= 0 + 0X a__isNatIListKind take(V1, V2) -> a__and(a__isNatKind V1, isNatIListKind V2) 2 + 0V1 + 0V2 >= 1 + 1V1 + 1V2 a__isNatIListKind nil() -> tt() 2 >= 1 a__isNatIListKind zeros() -> tt() 2 >= 1 a__isNatIListKind cons(V1, V2) -> a__and(a__isNatKind V1, isNatIListKind V2) 1 + 0V1 + 0V2 >= 1 + 1V1 + 1V2 a__isNatIListKind X -> isNatIListKind X 1 + 1X >= 0 + 1X a__and(tt(), X) -> mark X 2 + 1X >= 0 + 0X a__and(X1, X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 0 + 0X1 + 0X2 a__U91(tt(), IL, M, N) -> cons(mark N, take(M, IL)) 0 + 0N + 0M + 0IL >= 0 + 0N + 0M + 0IL a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U81 tt() -> nil() 0 >= 1 a__U81 X -> U81 X 0 + 0X >= 0 + 0X a__U71(tt(), L) -> s a__length mark L 1 + 0L >= 1 + 0L a__U71(X1, X2) -> U71(X1, X2) 0 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark U81 X -> a__U81 mark X 0 + 0X >= 0 + 0X mark U71(X1, X2) -> a__U71(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U63 X -> a__U63 mark X 0 + 0X >= 1 + 0X mark U62(X1, X2) -> a__U62(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U61(X1, X2, X3) -> a__U61(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 mark U53 X -> a__U53 mark X 0 + 0X >= 0 + 0X mark U52(X1, X2) -> a__U52(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U51(X1, X2, X3) -> a__U51(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 1X2 + 1X3 mark isNatIList X -> a__isNatIList X 0 + 0X >= 1 + 0X mark U43 X -> a__U43 mark X 0 + 0X >= 1 + 0X mark U42(X1, X2) -> a__U42(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U41(X1, X2, X3) -> a__U41(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 1X2 + 1X3 mark U32 X -> a__U32 mark X 0 + 0X >= 1 + 0X mark U31(X1, X2) -> a__U31(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 1X2 mark U22 X -> a__U22 mark X 0 + 0X >= 1 + 0X mark U21(X1, X2) -> a__U21(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 mark isNatList X -> a__isNatList X 0 + 0X >= 0 + 0X mark U12 X -> a__U12 mark X 0 + 0X >= 1 + 0X mark U11(X1, X2) -> a__U11(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 1X2 mark isNatKind X -> a__isNatKind X 0 + 0X >= 0 + 1X mark isNat X -> a__isNat X 0 + 0X >= 1 + 1X mark and(X1, X2) -> a__and(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 1X2 mark isNatIListKind X -> a__isNatIListKind X 0 + 0X >= 1 + 1X mark length X -> a__length mark X 0 + 0X >= 0 + 0X mark take(X1, X2) -> a__take(mark X1, mark X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> nil() 0 >= 1 mark s X -> s mark X 0 + 0X >= 1 + 0X mark tt() -> tt() 0 >= 1 mark zeros() -> a__zeros() 0 >= 0 mark 0() -> 0() 0 >= 1 mark cons(X1, X2) -> cons(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 a__length nil() -> 0() 0 >= 1 a__length cons(N, L) -> a__U71(a__and(a__and(a__isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L) 0 + 0L + 0N >= 2 + 1L + 0N a__length X -> length X 0 + 0X >= 1 + 0X a__U63 tt() -> tt() 2 >= 1 a__U63 X -> U63 X 1 + 1X >= 1 + 1X a__U61(tt(), V1, V2) -> a__U62(a__isNat V1, V2) 0 + 0V1 + 0V2 >= 2 + 1V1 + 0V2 a__U61(X1, X2, X3) -> U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 a__U62(tt(), V2) -> a__U63 a__isNatIList V2 2 + 0V2 >= 2 + 0V2 a__U62(X1, X2) -> U62(X1, X2) 1 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 a__U53 tt() -> tt() 0 >= 1 a__U53 X -> U53 X 0 + 0X >= 1 + 1X a__U51(tt(), V1, V2) -> a__U52(a__isNat V1, V2) 2 + 1V1 + 1V2 >= 2 + 1V1 + 0V2 a__U51(X1, X2, X3) -> U51(X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 a__U52(tt(), V2) -> a__U53 a__isNatList V2 2 + 0V2 >= 0 + 0V2 a__U52(X1, X2) -> U52(X1, X2) 1 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 a__isNatIList zeros() -> tt() 1 >= 1 a__isNatIList cons(V1, V2) -> a__U41(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2) 1 + 0V1 + 0V2 >= 2 + 2V1 + 2V2 a__isNatIList X -> isNatIList X 1 + 0X >= 0 + 0X a__isNatIList V -> a__U31(a__isNatIListKind V, V) 1 + 0V >= 2 + 2V a__U43 tt() -> tt() 2 >= 1 a__U43 X -> U43 X 1 + 1X >= 1 + 1X a__U41(tt(), V1, V2) -> a__U42(a__isNat V1, V2) 2 + 1V1 + 1V2 >= 2 + 1V1 + 0V2 a__U41(X1, X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 a__U42(tt(), V2) -> a__U43 a__isNatIList V2 2 + 0V2 >= 2 + 0V2 a__U42(X1, X2) -> U42(X1, X2) 1 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 a__U31(tt(), V) -> a__U32 a__isNatList V 2 + 1V >= 1 + 0V a__U31(X1, X2) -> U31(X1, X2) 1 + 1X1 + 1X2 >= 0 + 0X1 + 0X2 a__U32 tt() -> tt() 2 >= 1 a__U32 X -> U32 X 1 + 1X >= 1 + 1X a__U21(tt(), V1) -> a__U22 a__isNat V1 1 + 1V1 >= 2 + 1V1 a__U21(X1, X2) -> U21(X1, X2) 0 + 1X1 + 1X2 >= 0 + 0X1 + 0X2 a__isNat length V1 -> a__U11(a__isNatIListKind V1, V1) 2 + 0V1 >= 2 + 2V1 a__isNat s V1 -> a__U21(a__isNatKind V1, V1) 2 + 0V1 >= 0 + 2V1 a__isNat 0() -> tt() 2 >= 1 a__isNat X -> isNat X 1 + 1X >= 0 + 0X a__U22 tt() -> tt() 2 >= 1 a__U22 X -> U22 X 1 + 1X >= 0 + 0X a__U11(tt(), V1) -> a__U12 a__isNatList V1 2 + 1V1 >= 1 + 0V1 a__U11(X1, X2) -> U11(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 0X2 a__isNatList take(V1, V2) -> a__U61(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 a__isNatList nil() -> tt() 0 >= 1 a__isNatList cons(V1, V2) -> a__U51(a__and(a__isNatKind V1, isNatIListKind V2), V1, V2) 0 + 0V1 + 0V2 >= 2 + 2V1 + 2V2 a__isNatList X -> isNatList X 0 + 0X >= 0 + 0X a__U12 tt() -> tt() 2 >= 1 a__U12 X -> U12 X 1 + 1X >= 0 + 0X a__zeros() -> zeros() 0 >= 1 a__zeros() -> cons(0(), zeros()) 0 >= 0 Qed