MAYBE Time: 1.001498 TRS: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, top mark X -> top proper X, top ok X -> top active X} DP: DP: { cons#(mark X1, X2) -> cons#(X1, X2), cons#(ok X1, ok X2) -> cons#(X1, X2), active# cons(X1, X2) -> cons#(active X1, X2), active# cons(X1, X2) -> active# X1, active# zeros() -> cons#(0(), zeros()), active# U12 X -> active# X, active# U12 X -> U12# active X, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2), active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), active# isNatList cons(V1, V2) -> isNatIListKind# V2, active# isNatList cons(V1, V2) -> isNatKind# V1, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2), active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), active# isNatList take(V1, V2) -> isNatIListKind# V2, active# isNatList take(V1, V2) -> isNatKind# V1, active# U11(X1, X2) -> active# X1, active# U11(X1, X2) -> U11#(active X1, X2), active# U11(tt(), V1) -> U12# isNatList V1, active# U11(tt(), V1) -> isNatList# V1, active# U22 X -> active# X, active# U22 X -> U22# active X, active# isNat s V1 -> U21#(isNatKind V1, V1), active# isNat s V1 -> isNatKind# V1, active# isNat length V1 -> U11#(isNatIListKind V1, V1), active# isNat length V1 -> isNatIListKind# V1, active# U21(X1, X2) -> active# X1, active# U21(X1, X2) -> U21#(active X1, X2), active# U21(tt(), V1) -> U22# isNat V1, active# U21(tt(), V1) -> isNat# V1, active# U32 X -> active# X, active# U32 X -> U32# active X, active# U31(X1, X2) -> active# X1, active# U31(X1, X2) -> U31#(active X1, X2), active# U31(tt(), V) -> isNatList# V, active# U31(tt(), V) -> U32# isNatList V, active# U42(X1, X2) -> active# X1, active# U42(X1, X2) -> U42#(active X1, X2), active# U42(tt(), V2) -> U43# isNatIList V2, active# U42(tt(), V2) -> isNatIList# V2, active# U41(X1, X2, X3) -> active# X1, active# U41(X1, X2, X3) -> U41#(active X1, X2, X3), active# U41(tt(), V1, V2) -> isNat# V1, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2), active# U43 X -> active# X, active# U43 X -> U43# active X, active# isNatIList V -> U31#(isNatIListKind V, V), active# isNatIList V -> isNatIListKind# V, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2), active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), active# isNatIList cons(V1, V2) -> isNatIListKind# V2, active# isNatIList cons(V1, V2) -> isNatKind# V1, active# U52(X1, X2) -> active# X1, active# U52(X1, X2) -> U52#(active X1, X2), active# U52(tt(), V2) -> isNatList# V2, active# U52(tt(), V2) -> U53# isNatList V2, active# U51(X1, X2, X3) -> active# X1, active# U51(X1, X2, X3) -> U51#(active X1, X2, X3), active# U51(tt(), V1, V2) -> isNat# V1, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2), active# U53 X -> active# X, active# U53 X -> U53# active X, active# U62(X1, X2) -> active# X1, active# U62(X1, X2) -> U62#(active X1, X2), active# U62(tt(), V2) -> isNatIList# V2, active# U62(tt(), V2) -> U63# isNatIList V2, active# U61(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3), active# U61(tt(), V1, V2) -> isNat# V1, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2), active# U63 X -> active# X, active# U63 X -> U63# active X, active# s X -> active# X, active# s X -> s# active X, active# length X -> active# X, active# length X -> length# active X, active# length cons(N, L) -> isNatList# L, active# length cons(N, L) -> isNat# N, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active# length cons(N, L) -> and#(isNatList L, isNatIListKind L), active# length cons(N, L) -> and#(isNat N, isNatKind N), active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), active# length cons(N, L) -> isNatIListKind# L, active# length cons(N, L) -> isNatKind# N, active# U71(X1, X2) -> active# X1, active# U71(X1, X2) -> U71#(active X1, X2), active# U71(tt(), L) -> s# length L, active# U71(tt(), L) -> length# L, active# U81 X -> active# X, active# U81 X -> U81# active X, active# take(X1, X2) -> active# X1, active# take(X1, X2) -> active# X2, active# take(X1, X2) -> take#(X1, active X2), active# take(X1, X2) -> take#(active X1, X2), active# take(0(), IL) -> isNatIList# IL, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL), active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL), active# take(0(), IL) -> isNatIListKind# IL, active# take(s M, cons(N, IL)) -> isNat# N, active# take(s M, cons(N, IL)) -> isNat# M, active# take(s M, cons(N, IL)) -> isNatIList# IL, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N), active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M), active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL), active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), active# take(s M, cons(N, IL)) -> isNatIListKind# IL, active# take(s M, cons(N, IL)) -> isNatKind# N, active# take(s M, cons(N, IL)) -> isNatKind# M, active# U91(X1, X2, X3, X4) -> active# X1, active# U91(X1, X2, X3, X4) -> U91#(active X1, X2, X3, X4), active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)), active# U91(tt(), IL, M, N) -> take#(M, IL), active# and(X1, X2) -> active# X1, active# and(X1, X2) -> and#(active X1, X2), active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2, active# isNatIListKind cons(V1, V2) -> isNatKind# V1, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), active# isNatIListKind take(V1, V2) -> isNatIListKind# V2, active# isNatIListKind take(V1, V2) -> isNatKind# V1, active# isNatKind s V1 -> isNatKind# V1, active# isNatKind length V1 -> isNatIListKind# V1, U12# mark X -> U12# X, U12# ok X -> U12# X, isNatList# ok X -> isNatList# X, U11#(mark X1, X2) -> U11#(X1, X2), U11#(ok X1, ok X2) -> U11#(X1, X2), U22# mark X -> U22# X, U22# ok X -> U22# X, isNat# ok X -> isNat# X, U21#(mark X1, X2) -> U21#(X1, X2), U21#(ok X1, ok X2) -> U21#(X1, X2), U32# mark X -> U32# X, U32# ok X -> U32# X, U31#(mark X1, X2) -> U31#(X1, X2), U31#(ok X1, ok X2) -> U31#(X1, X2), U42#(mark X1, X2) -> U42#(X1, X2), U42#(ok X1, ok X2) -> U42#(X1, X2), U41#(mark X1, X2, X3) -> U41#(X1, X2, X3), U41#(ok X1, ok X2, ok X3) -> U41#(X1, X2, X3), U43# mark X -> U43# X, U43# ok X -> U43# X, isNatIList# ok X -> isNatIList# X, U52#(mark X1, X2) -> U52#(X1, X2), U52#(ok X1, ok X2) -> U52#(X1, X2), U51#(mark X1, X2, X3) -> U51#(X1, X2, X3), U51#(ok X1, ok X2, ok X3) -> U51#(X1, X2, X3), U53# mark X -> U53# X, U53# ok X -> U53# X, U62#(mark X1, X2) -> U62#(X1, X2), U62#(ok X1, ok X2) -> U62#(X1, X2), U61#(mark X1, X2, X3) -> U61#(X1, X2, X3), U61#(ok X1, ok X2, ok X3) -> U61#(X1, X2, X3), U63# mark X -> U63# X, U63# ok X -> U63# X, s# mark X -> s# X, s# ok X -> s# X, length# mark X -> length# X, length# ok X -> length# X, U71#(mark X1, X2) -> U71#(X1, X2), U71#(ok X1, ok X2) -> U71#(X1, X2), U81# mark X -> U81# X, U81# ok X -> U81# X, take#(X1, mark X2) -> take#(X1, X2), take#(mark X1, X2) -> take#(X1, X2), take#(ok X1, ok X2) -> take#(X1, X2), U91#(mark X1, X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(ok X1, ok X2, ok X3, ok X4) -> U91#(X1, X2, X3, X4), and#(mark X1, X2) -> and#(X1, X2), and#(ok X1, ok X2) -> and#(X1, X2), isNatIListKind# ok X -> isNatIListKind# X, isNatKind# ok X -> isNatKind# X, proper# cons(X1, X2) -> cons#(proper X1, proper X2), proper# cons(X1, X2) -> proper# X1, proper# cons(X1, X2) -> proper# X2, proper# U12 X -> U12# proper X, proper# U12 X -> proper# X, proper# isNatList X -> isNatList# proper X, proper# isNatList X -> proper# X, proper# U11(X1, X2) -> U11#(proper X1, proper X2), proper# U11(X1, X2) -> proper# X1, proper# U11(X1, X2) -> proper# X2, proper# U22 X -> U22# proper X, proper# U22 X -> proper# X, proper# isNat X -> isNat# proper X, proper# isNat X -> proper# X, proper# U21(X1, X2) -> U21#(proper X1, proper X2), proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2, proper# U32 X -> U32# proper X, proper# U32 X -> proper# X, proper# U31(X1, X2) -> U31#(proper X1, proper X2), proper# U31(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2, proper# U42(X1, X2) -> U42#(proper X1, proper X2), proper# U42(X1, X2) -> proper# X1, proper# U42(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3), proper# U41(X1, X2, X3) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X3, proper# U43 X -> U43# proper X, proper# U43 X -> proper# X, proper# isNatIList X -> isNatIList# proper X, proper# isNatIList X -> proper# X, proper# U52(X1, X2) -> U52#(proper X1, proper X2), proper# U52(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3), proper# U51(X1, X2, X3) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X3, proper# U53 X -> U53# proper X, proper# U53 X -> proper# X, proper# U62(X1, X2) -> U62#(proper X1, proper X2), proper# U62(X1, X2) -> proper# X1, proper# U62(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3), proper# U61(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3, proper# U63 X -> U63# proper X, proper# U63 X -> proper# X, proper# s X -> s# proper X, proper# s X -> proper# X, proper# length X -> length# proper X, proper# length X -> proper# X, proper# U71(X1, X2) -> U71#(proper X1, proper X2), proper# U71(X1, X2) -> proper# X1, proper# U71(X1, X2) -> proper# X2, proper# U81 X -> U81# proper X, proper# U81 X -> proper# X, proper# take(X1, X2) -> take#(proper X1, proper X2), proper# take(X1, X2) -> proper# X1, proper# take(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4), proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U91(X1, X2, X3, X4) -> proper# X4, proper# and(X1, X2) -> and#(proper X1, proper X2), proper# and(X1, X2) -> proper# X1, proper# and(X1, X2) -> proper# X2, proper# isNatIListKind X -> isNatIListKind# proper X, proper# isNatIListKind X -> proper# X, proper# isNatKind X -> isNatKind# proper X, proper# isNatKind X -> proper# X, top# mark X -> proper# X, top# mark X -> top# proper X, top# ok X -> active# X, top# ok X -> top# active X } TRS: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, top mark X -> top proper X, top ok X -> top active X} UR: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, a(x, y) -> x, a(x, y) -> y} EDG: { (active# isNatList take(V1, V2) -> isNatKind# V1, isNatKind# ok X -> isNatKind# X) (active# isNat s V1 -> isNatKind# V1, isNatKind# ok X -> isNatKind# X) (active# U21(tt(), V1) -> isNat# V1, isNat# ok X -> isNat# X) (active# isNatIList cons(V1, V2) -> isNatKind# V1, isNatKind# ok X -> isNatKind# X) (active# U61(tt(), V1, V2) -> isNat# V1, isNat# ok X -> isNat# X) (active# isNatIListKind take(V1, V2) -> isNatKind# V1, isNatKind# ok X -> isNatKind# X) (active# isNatKind length V1 -> isNatIListKind# V1, isNatIListKind# ok X -> isNatIListKind# X) (active# take(s M, cons(N, IL)) -> isNat# M, isNat# ok X -> isNat# X) (active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), and#(ok X1, ok X2) -> and#(X1, X2)) (active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), and#(mark X1, X2) -> and#(X1, X2)) (active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), and#(ok X1, ok X2) -> and#(X1, X2)) (active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), and#(mark X1, X2) -> and#(X1, X2)) (active# U51(X1, X2, X3) -> U51#(active X1, X2, X3), U51#(ok X1, ok X2, ok X3) -> U51#(X1, X2, X3)) (active# U51(X1, X2, X3) -> U51#(active X1, X2, X3), U51#(mark X1, X2, X3) -> U51#(X1, X2, X3)) (U41#(mark X1, X2, X3) -> U41#(X1, X2, X3), U41#(ok X1, ok X2, ok X3) -> U41#(X1, X2, X3)) (U41#(mark X1, X2, X3) -> U41#(X1, X2, X3), U41#(mark X1, X2, X3) -> U41#(X1, X2, X3)) (U51#(mark X1, X2, X3) -> U51#(X1, X2, X3), U51#(ok X1, ok X2, ok X3) -> U51#(X1, X2, X3)) (U51#(mark X1, X2, X3) -> U51#(X1, X2, X3), U51#(mark X1, X2, X3) -> U51#(X1, X2, X3)) (U61#(mark X1, X2, X3) -> U61#(X1, X2, X3), U61#(ok X1, ok X2, ok X3) -> U61#(X1, X2, X3)) (U61#(mark X1, X2, X3) -> U61#(X1, X2, X3), U61#(mark X1, X2, X3) -> U61#(X1, X2, X3)) (active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)), cons#(ok X1, ok X2) -> cons#(X1, X2)) (active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL)), cons#(mark X1, X2) -> cons#(X1, X2)) (proper# U51(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X3, proper# isNatKind X -> isNatKind# proper X) (proper# U51(X1, X2, X3) -> proper# X3, proper# isNatIListKind X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X3, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U51(X1, X2, X3) -> proper# X3, proper# and(X1, X2) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X3, proper# and(X1, X2) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X3, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U51(X1, X2, X3) -> proper# X3, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U51(X1, X2, X3) -> proper# X3, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U51(X1, X2, X3) -> proper# X3, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X3, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X3, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U51(X1, X2, X3) -> proper# X3, proper# take(X1, X2) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X3, proper# take(X1, X2) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X3, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U51(X1, X2, X3) -> proper# X3, proper# U81 X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X3, proper# U81 X -> U81# proper X) (proper# U51(X1, X2, X3) -> proper# X3, proper# U71(X1, X2) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X3, proper# U71(X1, X2) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X3, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U51(X1, X2, X3) -> proper# X3, proper# length X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X3, proper# length X -> length# proper X) (proper# U51(X1, X2, X3) -> proper# X3, proper# s X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X3, proper# s X -> s# proper X) (proper# U51(X1, X2, X3) -> proper# X3, proper# U63 X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X3, proper# U63 X -> U63# proper X) (proper# U51(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X3) (proper# U51(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U51(X1, X2, X3) -> proper# X3, proper# U62(X1, X2) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X3, proper# U62(X1, X2) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X3, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U51(X1, X2, X3) -> proper# X3, proper# U53 X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X3, proper# U53 X -> U53# proper X) (proper# U51(X1, X2, X3) -> proper# X3, proper# U51(X1, X2, X3) -> proper# X3) (proper# U51(X1, X2, X3) -> proper# X3, proper# U51(X1, X2, X3) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X3, proper# U51(X1, X2, X3) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X3, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U51(X1, X2, X3) -> proper# X3, proper# U52(X1, X2) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X3, proper# U52(X1, X2) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X3, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U51(X1, X2, X3) -> proper# X3, proper# isNatIList X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X3, proper# isNatIList X -> isNatIList# proper X) (proper# U51(X1, X2, X3) -> proper# X3, proper# U43 X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X3, proper# U43 X -> U43# proper X) (proper# U51(X1, X2, X3) -> proper# X3, proper# U41(X1, X2, X3) -> proper# X3) (proper# U51(X1, X2, X3) -> proper# X3, proper# U41(X1, X2, X3) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X3, proper# U41(X1, X2, X3) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X3, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U51(X1, X2, X3) -> proper# X3, proper# U42(X1, X2) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X3, proper# U42(X1, X2) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X3, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U51(X1, X2, X3) -> proper# X3, proper# U31(X1, X2) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X3, proper# U31(X1, X2) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X3, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U51(X1, X2, X3) -> proper# X3, proper# U32 X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X3, proper# U32 X -> U32# proper X) (proper# U51(X1, X2, X3) -> proper# X3, proper# U21(X1, X2) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X3, proper# U21(X1, X2) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X3, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U51(X1, X2, X3) -> proper# X3, proper# isNat X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X3, proper# isNat X -> isNat# proper X) (proper# U51(X1, X2, X3) -> proper# X3, proper# U22 X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X3, proper# U22 X -> U22# proper X) (proper# U51(X1, X2, X3) -> proper# X3, proper# U11(X1, X2) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X3, proper# U11(X1, X2) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X3, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U51(X1, X2, X3) -> proper# X3, proper# isNatList X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X3, proper# isNatList X -> isNatList# proper X) (proper# U51(X1, X2, X3) -> proper# X3, proper# U12 X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X3, proper# U12 X -> U12# proper X) (proper# U51(X1, X2, X3) -> proper# X3, proper# cons(X1, X2) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X3, proper# cons(X1, X2) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X3, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# isNatKind X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# isNatKind X -> isNatKind# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# isNatIListKind X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# and(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# and(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# take(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# take(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U81 X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U81 X -> U81# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U71(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U71(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# length X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# length X -> length# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# s X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# s X -> s# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U63 X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U63 X -> U63# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X3) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U62(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U62(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U53 X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U53 X -> U53# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U51(X1, X2, X3) -> proper# X3) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U51(X1, X2, X3) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U51(X1, X2, X3) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U52(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U52(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# isNatIList X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# isNatIList X -> isNatIList# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U43 X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U43 X -> U43# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U41(X1, X2, X3) -> proper# X3) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U41(X1, X2, X3) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U41(X1, X2, X3) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U42(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U42(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U31(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U31(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U32 X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U32 X -> U32# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U21(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U21(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# isNat X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# isNat X -> isNat# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U22 X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U22 X -> U22# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U11(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U11(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# isNatList X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# isNatList X -> isNatList# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U12 X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U12 X -> U12# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# cons(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# cons(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X3, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (active# length cons(N, L) -> isNatIListKind# L, isNatIListKind# ok X -> isNatIListKind# X) (active# cons(X1, X2) -> cons#(active X1, X2), cons#(ok X1, ok X2) -> cons#(X1, X2)) (active# cons(X1, X2) -> cons#(active X1, X2), cons#(mark X1, X2) -> cons#(X1, X2)) (active# U11(X1, X2) -> active# X1, active# isNatKind length V1 -> isNatIListKind# V1) (active# U11(X1, X2) -> active# X1, active# isNatKind s V1 -> isNatKind# V1) (active# U11(X1, X2) -> active# X1, active# isNatIListKind take(V1, V2) -> isNatKind# V1) (active# U11(X1, X2) -> active# X1, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2) (active# U11(X1, X2) -> active# X1, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U11(X1, X2) -> active# X1, active# isNatIListKind cons(V1, V2) -> isNatKind# V1) (active# U11(X1, X2) -> active# X1, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2) (active# U11(X1, X2) -> active# X1, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U11(X1, X2) -> active# X1, active# and(X1, X2) -> and#(active X1, X2)) (active# U11(X1, X2) -> active# X1, active# and(X1, X2) -> active# X1) (active# U11(X1, X2) -> active# X1, active# U91(tt(), IL, M, N) -> take#(M, IL)) (active# U11(X1, X2) -> active# X1, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL))) (active# U11(X1, X2) -> active# X1, active# U91(X1, X2, X3, X4) -> U91#(active X1, X2, X3, X4)) (active# U11(X1, X2) -> active# X1, active# U91(X1, X2, X3, X4) -> active# X1) (active# U11(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatKind# M) (active# U11(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatKind# N) (active# U11(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatIListKind# IL) (active# U11(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))) (active# U11(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (active# U11(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL)) (active# U11(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M)) (active# U11(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N)) (active# U11(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)) (active# U11(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatIList# IL) (active# U11(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNat# M) (active# U11(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNat# N) (active# U11(X1, X2) -> active# X1, active# take(0(), IL) -> isNatIListKind# IL) (active# U11(X1, X2) -> active# X1, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL)) (active# U11(X1, X2) -> active# X1, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL)) (active# U11(X1, X2) -> active# X1, active# take(0(), IL) -> isNatIList# IL) (active# U11(X1, X2) -> active# X1, active# take(X1, X2) -> take#(active X1, X2)) (active# U11(X1, X2) -> active# X1, active# take(X1, X2) -> take#(X1, active X2)) (active# U11(X1, X2) -> active# X1, active# take(X1, X2) -> active# X2) (active# U11(X1, X2) -> active# X1, active# take(X1, X2) -> active# X1) (active# U11(X1, X2) -> active# X1, active# U81 X -> U81# active X) (active# U11(X1, X2) -> active# X1, active# U81 X -> active# X) (active# U11(X1, X2) -> active# X1, active# U71(tt(), L) -> length# L) (active# U11(X1, X2) -> active# X1, active# U71(tt(), L) -> s# length L) (active# U11(X1, X2) -> active# X1, active# U71(X1, X2) -> U71#(active X1, X2)) (active# U11(X1, X2) -> active# X1, active# U71(X1, X2) -> active# X1) (active# U11(X1, X2) -> active# X1, active# length cons(N, L) -> isNatKind# N) (active# U11(X1, X2) -> active# X1, active# length cons(N, L) -> isNatIListKind# L) (active# U11(X1, X2) -> active# X1, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N))) (active# U11(X1, X2) -> active# X1, active# length cons(N, L) -> and#(isNat N, isNatKind N)) (active# U11(X1, X2) -> active# X1, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L)) (active# U11(X1, X2) -> active# X1, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L)) (active# U11(X1, X2) -> active# X1, active# length cons(N, L) -> isNat# N) (active# U11(X1, X2) -> active# X1, active# length cons(N, L) -> isNatList# L) (active# U11(X1, X2) -> active# X1, active# length X -> length# active X) (active# U11(X1, X2) -> active# X1, active# length X -> active# X) (active# U11(X1, X2) -> active# X1, active# s X -> s# active X) (active# U11(X1, X2) -> active# X1, active# s X -> active# X) (active# U11(X1, X2) -> active# X1, active# U63 X -> U63# active X) (active# U11(X1, X2) -> active# X1, active# U63 X -> active# X) (active# U11(X1, X2) -> active# X1, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2)) (active# U11(X1, X2) -> active# X1, active# U61(tt(), V1, V2) -> isNat# V1) (active# U11(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U11(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> active# X1) (active# U11(X1, X2) -> active# X1, active# U62(tt(), V2) -> U63# isNatIList V2) (active# U11(X1, X2) -> active# X1, active# U62(tt(), V2) -> isNatIList# V2) (active# U11(X1, X2) -> active# X1, active# U62(X1, X2) -> U62#(active X1, X2)) (active# U11(X1, X2) -> active# X1, active# U62(X1, X2) -> active# X1) (active# U11(X1, X2) -> active# X1, active# U53 X -> U53# active X) (active# U11(X1, X2) -> active# X1, active# U53 X -> active# X) (active# U11(X1, X2) -> active# X1, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2)) (active# U11(X1, X2) -> active# X1, active# U51(tt(), V1, V2) -> isNat# V1) (active# U11(X1, X2) -> active# X1, active# U51(X1, X2, X3) -> U51#(active X1, X2, X3)) (active# U11(X1, X2) -> active# X1, active# U51(X1, X2, X3) -> active# X1) (active# U11(X1, X2) -> active# X1, active# U52(tt(), V2) -> U53# isNatList V2) (active# U11(X1, X2) -> active# X1, active# U52(tt(), V2) -> isNatList# V2) (active# U11(X1, X2) -> active# X1, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U11(X1, X2) -> active# X1, active# U52(X1, X2) -> active# X1) (active# U11(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> isNatKind# V1) (active# U11(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> isNatIListKind# V2) (active# U11(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U11(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U11(X1, X2) -> active# X1, active# isNatIList V -> isNatIListKind# V) (active# U11(X1, X2) -> active# X1, active# isNatIList V -> U31#(isNatIListKind V, V)) (active# U11(X1, X2) -> active# X1, active# U43 X -> U43# active X) (active# U11(X1, X2) -> active# X1, active# U43 X -> active# X) (active# U11(X1, X2) -> active# X1, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2)) (active# U11(X1, X2) -> active# X1, active# U41(tt(), V1, V2) -> isNat# V1) (active# U11(X1, X2) -> active# X1, active# U41(X1, X2, X3) -> U41#(active X1, X2, X3)) (active# U11(X1, X2) -> active# X1, active# U41(X1, X2, X3) -> active# X1) (active# U11(X1, X2) -> active# X1, active# U42(tt(), V2) -> isNatIList# V2) (active# U11(X1, X2) -> active# X1, active# U42(tt(), V2) -> U43# isNatIList V2) (active# U11(X1, X2) -> active# X1, active# U42(X1, X2) -> U42#(active X1, X2)) (active# U11(X1, X2) -> active# X1, active# U42(X1, X2) -> active# X1) (active# U11(X1, X2) -> active# X1, active# U31(tt(), V) -> U32# isNatList V) (active# U11(X1, X2) -> active# X1, active# U31(tt(), V) -> isNatList# V) (active# U11(X1, X2) -> active# X1, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U11(X1, X2) -> active# X1, active# U31(X1, X2) -> active# X1) (active# U11(X1, X2) -> active# X1, active# U32 X -> U32# active X) (active# U11(X1, X2) -> active# X1, active# U32 X -> active# X) (active# U11(X1, X2) -> active# X1, active# U21(tt(), V1) -> isNat# V1) (active# U11(X1, X2) -> active# X1, active# U21(tt(), V1) -> U22# isNat V1) (active# U11(X1, X2) -> active# X1, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U11(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1) (active# U11(X1, X2) -> active# X1, active# isNat length V1 -> isNatIListKind# V1) (active# U11(X1, X2) -> active# X1, active# isNat length V1 -> U11#(isNatIListKind V1, V1)) (active# U11(X1, X2) -> active# X1, active# isNat s V1 -> isNatKind# V1) (active# U11(X1, X2) -> active# X1, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U11(X1, X2) -> active# X1, active# U22 X -> U22# active X) (active# U11(X1, X2) -> active# X1, active# U22 X -> active# X) (active# U11(X1, X2) -> active# X1, active# U11(tt(), V1) -> isNatList# V1) (active# U11(X1, X2) -> active# X1, active# U11(tt(), V1) -> U12# isNatList V1) (active# U11(X1, X2) -> active# X1, active# U11(X1, X2) -> U11#(active X1, X2)) (active# U11(X1, X2) -> active# X1, active# U11(X1, X2) -> active# X1) (active# U11(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> isNatKind# V1) (active# U11(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> isNatIListKind# V2) (active# U11(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U11(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U11(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> isNatKind# V1) (active# U11(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> isNatIListKind# V2) (active# U11(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U11(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U11(X1, X2) -> active# X1, active# U12 X -> U12# active X) (active# U11(X1, X2) -> active# X1, active# U12 X -> active# X) (active# U11(X1, X2) -> active# X1, active# zeros() -> cons#(0(), zeros())) (active# U11(X1, X2) -> active# X1, active# cons(X1, X2) -> active# X1) (active# U11(X1, X2) -> active# X1, active# cons(X1, X2) -> cons#(active X1, X2)) (active# U21(X1, X2) -> active# X1, active# isNatKind length V1 -> isNatIListKind# V1) (active# U21(X1, X2) -> active# X1, active# isNatKind s V1 -> isNatKind# V1) (active# U21(X1, X2) -> active# X1, active# isNatIListKind take(V1, V2) -> isNatKind# V1) (active# U21(X1, X2) -> active# X1, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2) (active# U21(X1, X2) -> active# X1, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U21(X1, X2) -> active# X1, active# isNatIListKind cons(V1, V2) -> isNatKind# V1) (active# U21(X1, X2) -> active# X1, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2) (active# U21(X1, X2) -> active# X1, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U21(X1, X2) -> active# X1, active# and(X1, X2) -> and#(active X1, X2)) (active# U21(X1, X2) -> active# X1, active# and(X1, X2) -> active# X1) (active# U21(X1, X2) -> active# X1, active# U91(tt(), IL, M, N) -> take#(M, IL)) (active# U21(X1, X2) -> active# X1, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL))) (active# U21(X1, X2) -> active# X1, active# U91(X1, X2, X3, X4) -> U91#(active X1, X2, X3, X4)) (active# U21(X1, X2) -> active# X1, active# U91(X1, X2, X3, X4) -> active# X1) (active# U21(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatKind# M) (active# U21(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatKind# N) (active# U21(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatIListKind# IL) (active# U21(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))) (active# U21(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (active# U21(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL)) (active# U21(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M)) (active# U21(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N)) (active# U21(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)) (active# U21(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatIList# IL) (active# U21(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNat# M) (active# U21(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNat# N) (active# U21(X1, X2) -> active# X1, active# take(0(), IL) -> isNatIListKind# IL) (active# U21(X1, X2) -> active# X1, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL)) (active# U21(X1, X2) -> active# X1, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL)) (active# U21(X1, X2) -> active# X1, active# take(0(), IL) -> isNatIList# IL) (active# U21(X1, X2) -> active# X1, active# take(X1, X2) -> take#(active X1, X2)) (active# U21(X1, X2) -> active# X1, active# take(X1, X2) -> take#(X1, active X2)) (active# U21(X1, X2) -> active# X1, active# take(X1, X2) -> active# X2) (active# U21(X1, X2) -> active# X1, active# take(X1, X2) -> active# X1) (active# U21(X1, X2) -> active# X1, active# U81 X -> U81# active X) (active# U21(X1, X2) -> active# X1, active# U81 X -> active# X) (active# U21(X1, X2) -> active# X1, active# U71(tt(), L) -> length# L) (active# U21(X1, X2) -> active# X1, active# U71(tt(), L) -> s# length L) (active# U21(X1, X2) -> active# X1, active# U71(X1, X2) -> U71#(active X1, X2)) (active# U21(X1, X2) -> active# X1, active# U71(X1, X2) -> active# X1) (active# U21(X1, X2) -> active# X1, active# length cons(N, L) -> isNatKind# N) (active# U21(X1, X2) -> active# X1, active# length cons(N, L) -> isNatIListKind# L) (active# U21(X1, X2) -> active# X1, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N))) (active# U21(X1, X2) -> active# X1, active# length cons(N, L) -> and#(isNat N, isNatKind N)) (active# U21(X1, X2) -> active# X1, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L)) (active# U21(X1, X2) -> active# X1, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L)) (active# U21(X1, X2) -> active# X1, active# length cons(N, L) -> isNat# N) (active# U21(X1, X2) -> active# X1, active# length cons(N, L) -> isNatList# L) (active# U21(X1, X2) -> active# X1, active# length X -> length# active X) (active# U21(X1, X2) -> active# X1, active# length X -> active# X) (active# U21(X1, X2) -> active# X1, active# s X -> s# active X) (active# U21(X1, X2) -> active# X1, active# s X -> active# X) (active# U21(X1, X2) -> active# X1, active# U63 X -> U63# active X) (active# U21(X1, X2) -> active# X1, active# U63 X -> active# X) (active# U21(X1, X2) -> active# X1, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2)) (active# U21(X1, X2) -> active# X1, active# U61(tt(), V1, V2) -> isNat# V1) (active# U21(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U21(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> active# X1) (active# U21(X1, X2) -> active# X1, active# U62(tt(), V2) -> U63# isNatIList V2) (active# U21(X1, X2) -> active# X1, active# U62(tt(), V2) -> isNatIList# V2) (active# U21(X1, X2) -> active# X1, active# U62(X1, X2) -> U62#(active X1, X2)) (active# U21(X1, X2) -> active# X1, active# U62(X1, X2) -> active# X1) (active# U21(X1, X2) -> active# X1, active# U53 X -> U53# active X) (active# U21(X1, X2) -> active# X1, active# U53 X -> active# X) (active# U21(X1, X2) -> active# X1, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2)) (active# U21(X1, X2) -> active# X1, active# U51(tt(), V1, V2) -> isNat# V1) (active# U21(X1, X2) -> active# X1, active# U51(X1, X2, X3) -> U51#(active X1, X2, X3)) (active# U21(X1, X2) -> active# X1, active# U51(X1, X2, X3) -> active# X1) (active# U21(X1, X2) -> active# X1, active# U52(tt(), V2) -> U53# isNatList V2) (active# U21(X1, X2) -> active# X1, active# U52(tt(), V2) -> isNatList# V2) (active# U21(X1, X2) -> active# X1, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U21(X1, X2) -> active# X1, active# U52(X1, X2) -> active# X1) (active# U21(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> isNatKind# V1) (active# U21(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> isNatIListKind# V2) (active# U21(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U21(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U21(X1, X2) -> active# X1, active# isNatIList V -> isNatIListKind# V) (active# U21(X1, X2) -> active# X1, active# isNatIList V -> U31#(isNatIListKind V, V)) (active# U21(X1, X2) -> active# X1, active# U43 X -> U43# active X) (active# U21(X1, X2) -> active# X1, active# U43 X -> active# X) (active# U21(X1, X2) -> active# X1, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2)) (active# U21(X1, X2) -> active# X1, active# U41(tt(), V1, V2) -> isNat# V1) (active# U21(X1, X2) -> active# X1, active# U41(X1, X2, X3) -> U41#(active X1, X2, X3)) (active# U21(X1, X2) -> active# X1, active# U41(X1, X2, X3) -> active# X1) (active# U21(X1, X2) -> active# X1, active# U42(tt(), V2) -> isNatIList# V2) (active# U21(X1, X2) -> active# X1, active# U42(tt(), V2) -> U43# isNatIList V2) (active# U21(X1, X2) -> active# X1, active# U42(X1, X2) -> U42#(active X1, X2)) (active# U21(X1, X2) -> active# X1, active# U42(X1, X2) -> active# X1) (active# U21(X1, X2) -> active# X1, active# U31(tt(), V) -> U32# isNatList V) (active# U21(X1, X2) -> active# X1, active# U31(tt(), V) -> isNatList# V) (active# U21(X1, X2) -> active# X1, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U21(X1, X2) -> active# X1, active# U31(X1, X2) -> active# X1) (active# U21(X1, X2) -> active# X1, active# U32 X -> U32# active X) (active# U21(X1, X2) -> active# X1, active# U32 X -> active# X) (active# U21(X1, X2) -> active# X1, active# U21(tt(), V1) -> isNat# V1) (active# U21(X1, X2) -> active# X1, active# U21(tt(), V1) -> U22# isNat V1) (active# U21(X1, X2) -> active# X1, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U21(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1) (active# U21(X1, X2) -> active# X1, active# isNat length V1 -> isNatIListKind# V1) (active# U21(X1, X2) -> active# X1, active# isNat length V1 -> U11#(isNatIListKind V1, V1)) (active# U21(X1, X2) -> active# X1, active# isNat s V1 -> isNatKind# V1) (active# U21(X1, X2) -> active# X1, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U21(X1, X2) -> active# X1, active# U22 X -> U22# active X) (active# U21(X1, X2) -> active# X1, active# U22 X -> active# X) (active# U21(X1, X2) -> active# X1, active# U11(tt(), V1) -> isNatList# V1) (active# U21(X1, X2) -> active# X1, active# U11(tt(), V1) -> U12# isNatList V1) (active# U21(X1, X2) -> active# X1, active# U11(X1, X2) -> U11#(active X1, X2)) (active# U21(X1, X2) -> active# X1, active# U11(X1, X2) -> active# X1) (active# U21(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> isNatKind# V1) (active# U21(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> isNatIListKind# V2) (active# U21(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U21(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U21(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> isNatKind# V1) (active# U21(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> isNatIListKind# V2) (active# U21(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U21(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U21(X1, X2) -> active# X1, active# U12 X -> U12# active X) (active# U21(X1, X2) -> active# X1, active# U12 X -> active# X) (active# U21(X1, X2) -> active# X1, active# zeros() -> cons#(0(), zeros())) (active# U21(X1, X2) -> active# X1, active# cons(X1, X2) -> active# X1) (active# U21(X1, X2) -> active# X1, active# cons(X1, X2) -> cons#(active X1, X2)) (active# U31(X1, X2) -> active# X1, active# isNatKind length V1 -> isNatIListKind# V1) (active# U31(X1, X2) -> active# X1, active# isNatKind s V1 -> isNatKind# V1) (active# U31(X1, X2) -> active# X1, active# isNatIListKind take(V1, V2) -> isNatKind# V1) (active# U31(X1, X2) -> active# X1, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2) (active# U31(X1, X2) -> active# X1, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U31(X1, X2) -> active# X1, active# isNatIListKind cons(V1, V2) -> isNatKind# V1) (active# U31(X1, X2) -> active# X1, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2) (active# U31(X1, X2) -> active# X1, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U31(X1, X2) -> active# X1, active# and(X1, X2) -> and#(active X1, X2)) (active# U31(X1, X2) -> active# X1, active# and(X1, X2) -> active# X1) (active# U31(X1, X2) -> active# X1, active# U91(tt(), IL, M, N) -> take#(M, IL)) (active# U31(X1, X2) -> active# X1, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL))) (active# U31(X1, X2) -> active# X1, active# U91(X1, X2, X3, X4) -> U91#(active X1, X2, X3, X4)) (active# U31(X1, X2) -> active# X1, active# U91(X1, X2, X3, X4) -> active# X1) (active# U31(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatKind# M) (active# U31(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatKind# N) (active# U31(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatIListKind# IL) (active# U31(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))) (active# U31(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (active# U31(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL)) (active# U31(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M)) (active# U31(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N)) (active# U31(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)) (active# U31(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatIList# IL) (active# U31(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNat# M) (active# U31(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNat# N) (active# U31(X1, X2) -> active# X1, active# take(0(), IL) -> isNatIListKind# IL) (active# U31(X1, X2) -> active# X1, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL)) (active# U31(X1, X2) -> active# X1, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL)) (active# U31(X1, X2) -> active# X1, active# take(0(), IL) -> isNatIList# IL) (active# U31(X1, X2) -> active# X1, active# take(X1, X2) -> take#(active X1, X2)) (active# U31(X1, X2) -> active# X1, active# take(X1, X2) -> take#(X1, active X2)) (active# U31(X1, X2) -> active# X1, active# take(X1, X2) -> active# X2) (active# U31(X1, X2) -> active# X1, active# take(X1, X2) -> active# X1) (active# U31(X1, X2) -> active# X1, active# U81 X -> U81# active X) (active# U31(X1, X2) -> active# X1, active# U81 X -> active# X) (active# U31(X1, X2) -> active# X1, active# U71(tt(), L) -> length# L) (active# U31(X1, X2) -> active# X1, active# U71(tt(), L) -> s# length L) (active# U31(X1, X2) -> active# X1, active# U71(X1, X2) -> U71#(active X1, X2)) (active# U31(X1, X2) -> active# X1, active# U71(X1, X2) -> active# X1) (active# U31(X1, X2) -> active# X1, active# length cons(N, L) -> isNatKind# N) (active# U31(X1, X2) -> active# X1, active# length cons(N, L) -> isNatIListKind# L) (active# U31(X1, X2) -> active# X1, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N))) (active# U31(X1, X2) -> active# X1, active# length cons(N, L) -> and#(isNat N, isNatKind N)) (active# U31(X1, X2) -> active# X1, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L)) (active# U31(X1, X2) -> active# X1, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L)) (active# U31(X1, X2) -> active# X1, active# length cons(N, L) -> isNat# N) (active# U31(X1, X2) -> active# X1, active# length cons(N, L) -> isNatList# L) (active# U31(X1, X2) -> active# X1, active# length X -> length# active X) (active# U31(X1, X2) -> active# X1, active# length X -> active# X) (active# U31(X1, X2) -> active# X1, active# s X -> s# active X) (active# U31(X1, X2) -> active# X1, active# s X -> active# X) (active# U31(X1, X2) -> active# X1, active# U63 X -> U63# active X) (active# U31(X1, X2) -> active# X1, active# U63 X -> active# X) (active# U31(X1, X2) -> active# X1, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2)) (active# U31(X1, X2) -> active# X1, active# U61(tt(), V1, V2) -> isNat# V1) (active# U31(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U31(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> active# X1) (active# U31(X1, X2) -> active# X1, active# U62(tt(), V2) -> U63# isNatIList V2) (active# U31(X1, X2) -> active# X1, active# U62(tt(), V2) -> isNatIList# V2) (active# U31(X1, X2) -> active# X1, active# U62(X1, X2) -> U62#(active X1, X2)) (active# U31(X1, X2) -> active# X1, active# U62(X1, X2) -> active# X1) (active# U31(X1, X2) -> active# X1, active# U53 X -> U53# active X) (active# U31(X1, X2) -> active# X1, active# U53 X -> active# X) (active# U31(X1, X2) -> active# X1, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2)) (active# U31(X1, X2) -> active# X1, active# U51(tt(), V1, V2) -> isNat# V1) (active# U31(X1, X2) -> active# X1, active# U51(X1, X2, X3) -> U51#(active X1, X2, X3)) (active# U31(X1, X2) -> active# X1, active# U51(X1, X2, X3) -> active# X1) (active# U31(X1, X2) -> active# X1, active# U52(tt(), V2) -> U53# isNatList V2) (active# U31(X1, X2) -> active# X1, active# U52(tt(), V2) -> isNatList# V2) (active# U31(X1, X2) -> active# X1, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U31(X1, X2) -> active# X1, active# U52(X1, X2) -> active# X1) (active# U31(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> isNatKind# V1) (active# U31(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> isNatIListKind# V2) (active# U31(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U31(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U31(X1, X2) -> active# X1, active# isNatIList V -> isNatIListKind# V) (active# U31(X1, X2) -> active# X1, active# isNatIList V -> U31#(isNatIListKind V, V)) (active# U31(X1, X2) -> active# X1, active# U43 X -> U43# active X) (active# U31(X1, X2) -> active# X1, active# U43 X -> active# X) (active# U31(X1, X2) -> active# X1, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2)) (active# U31(X1, X2) -> active# X1, active# U41(tt(), V1, V2) -> isNat# V1) (active# U31(X1, X2) -> active# X1, active# U41(X1, X2, X3) -> U41#(active X1, X2, X3)) (active# U31(X1, X2) -> active# X1, active# U41(X1, X2, X3) -> active# X1) (active# U31(X1, X2) -> active# X1, active# U42(tt(), V2) -> isNatIList# V2) (active# U31(X1, X2) -> active# X1, active# U42(tt(), V2) -> U43# isNatIList V2) (active# U31(X1, X2) -> active# X1, active# U42(X1, X2) -> U42#(active X1, X2)) (active# U31(X1, X2) -> active# X1, active# U42(X1, X2) -> active# X1) (active# U31(X1, X2) -> active# X1, active# U31(tt(), V) -> U32# isNatList V) (active# U31(X1, X2) -> active# X1, active# U31(tt(), V) -> isNatList# V) (active# U31(X1, X2) -> active# X1, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U31(X1, X2) -> active# X1, active# U31(X1, X2) -> active# X1) (active# U31(X1, X2) -> active# X1, active# U32 X -> U32# active X) (active# U31(X1, X2) -> active# X1, active# U32 X -> active# X) (active# U31(X1, X2) -> active# X1, active# U21(tt(), V1) -> isNat# V1) (active# U31(X1, X2) -> active# X1, active# U21(tt(), V1) -> U22# isNat V1) (active# U31(X1, X2) -> active# X1, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U31(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1) (active# U31(X1, X2) -> active# X1, active# isNat length V1 -> isNatIListKind# V1) (active# U31(X1, X2) -> active# X1, active# isNat length V1 -> U11#(isNatIListKind V1, V1)) (active# U31(X1, X2) -> active# X1, active# isNat s V1 -> isNatKind# V1) (active# U31(X1, X2) -> active# X1, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U31(X1, X2) -> active# X1, active# U22 X -> U22# active X) (active# U31(X1, X2) -> active# X1, active# U22 X -> active# X) (active# U31(X1, X2) -> active# X1, active# U11(tt(), V1) -> isNatList# V1) (active# U31(X1, X2) -> active# X1, active# U11(tt(), V1) -> U12# isNatList V1) (active# U31(X1, X2) -> active# X1, active# U11(X1, X2) -> U11#(active X1, X2)) (active# U31(X1, X2) -> active# X1, active# U11(X1, X2) -> active# X1) (active# U31(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> isNatKind# V1) (active# U31(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> isNatIListKind# V2) (active# U31(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U31(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U31(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> isNatKind# V1) (active# U31(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> isNatIListKind# V2) (active# U31(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U31(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U31(X1, X2) -> active# X1, active# U12 X -> U12# active X) (active# U31(X1, X2) -> active# X1, active# U12 X -> active# X) (active# U31(X1, X2) -> active# X1, active# zeros() -> cons#(0(), zeros())) (active# U31(X1, X2) -> active# X1, active# cons(X1, X2) -> active# X1) (active# U31(X1, X2) -> active# X1, active# cons(X1, X2) -> cons#(active X1, X2)) (active# U42(X1, X2) -> active# X1, active# isNatKind length V1 -> isNatIListKind# V1) (active# U42(X1, X2) -> active# X1, active# isNatKind s V1 -> isNatKind# V1) (active# U42(X1, X2) -> active# X1, active# isNatIListKind take(V1, V2) -> isNatKind# V1) (active# U42(X1, X2) -> active# X1, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2) (active# U42(X1, X2) -> active# X1, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U42(X1, X2) -> active# X1, active# isNatIListKind cons(V1, V2) -> isNatKind# V1) (active# U42(X1, X2) -> active# X1, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2) (active# U42(X1, X2) -> active# X1, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U42(X1, X2) -> active# X1, active# and(X1, X2) -> and#(active X1, X2)) (active# U42(X1, X2) -> active# X1, active# and(X1, X2) -> active# X1) (active# U42(X1, X2) -> active# X1, active# U91(tt(), IL, M, N) -> take#(M, IL)) (active# U42(X1, X2) -> active# X1, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL))) (active# U42(X1, X2) -> active# X1, active# U91(X1, X2, X3, X4) -> U91#(active X1, X2, X3, X4)) (active# U42(X1, X2) -> active# X1, active# U91(X1, X2, X3, X4) -> active# X1) (active# U42(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatKind# M) (active# U42(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatKind# N) (active# U42(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatIListKind# IL) (active# U42(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))) (active# U42(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (active# U42(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL)) (active# U42(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M)) (active# U42(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N)) (active# U42(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)) (active# U42(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatIList# IL) (active# U42(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNat# M) (active# U42(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNat# N) (active# U42(X1, X2) -> active# X1, active# take(0(), IL) -> isNatIListKind# IL) (active# U42(X1, X2) -> active# X1, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL)) (active# U42(X1, X2) -> active# X1, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL)) (active# U42(X1, X2) -> active# X1, active# take(0(), IL) -> isNatIList# IL) (active# U42(X1, X2) -> active# X1, active# take(X1, X2) -> take#(active X1, X2)) (active# U42(X1, X2) -> active# X1, active# take(X1, X2) -> take#(X1, active X2)) (active# U42(X1, X2) -> active# X1, active# take(X1, X2) -> active# X2) (active# U42(X1, X2) -> active# X1, active# take(X1, X2) -> active# X1) (active# U42(X1, X2) -> active# X1, active# U81 X -> U81# active X) (active# U42(X1, X2) -> active# X1, active# U81 X -> active# X) (active# U42(X1, X2) -> active# X1, active# U71(tt(), L) -> length# L) (active# U42(X1, X2) -> active# X1, active# U71(tt(), L) -> s# length L) (active# U42(X1, X2) -> active# X1, active# U71(X1, X2) -> U71#(active X1, X2)) (active# U42(X1, X2) -> active# X1, active# U71(X1, X2) -> active# X1) (active# U42(X1, X2) -> active# X1, active# length cons(N, L) -> isNatKind# N) (active# U42(X1, X2) -> active# X1, active# length cons(N, L) -> isNatIListKind# L) (active# U42(X1, X2) -> active# X1, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N))) (active# U42(X1, X2) -> active# X1, active# length cons(N, L) -> and#(isNat N, isNatKind N)) (active# U42(X1, X2) -> active# X1, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L)) (active# U42(X1, X2) -> active# X1, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L)) (active# U42(X1, X2) -> active# X1, active# length cons(N, L) -> isNat# N) (active# U42(X1, X2) -> active# X1, active# length cons(N, L) -> isNatList# L) (active# U42(X1, X2) -> active# X1, active# length X -> length# active X) (active# U42(X1, X2) -> active# X1, active# length X -> active# X) (active# U42(X1, X2) -> active# X1, active# s X -> s# active X) (active# U42(X1, X2) -> active# X1, active# s X -> active# X) (active# U42(X1, X2) -> active# X1, active# U63 X -> U63# active X) (active# U42(X1, X2) -> active# X1, active# U63 X -> active# X) (active# U42(X1, X2) -> active# X1, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2)) (active# U42(X1, X2) -> active# X1, active# U61(tt(), V1, V2) -> isNat# V1) (active# U42(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U42(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> active# X1) (active# U42(X1, X2) -> active# X1, active# U62(tt(), V2) -> U63# isNatIList V2) (active# U42(X1, X2) -> active# X1, active# U62(tt(), V2) -> isNatIList# V2) (active# U42(X1, X2) -> active# X1, active# U62(X1, X2) -> U62#(active X1, X2)) (active# U42(X1, X2) -> active# X1, active# U62(X1, X2) -> active# X1) (active# U42(X1, X2) -> active# X1, active# U53 X -> U53# active X) (active# U42(X1, X2) -> active# X1, active# U53 X -> active# X) (active# U42(X1, X2) -> active# X1, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2)) (active# U42(X1, X2) -> active# X1, active# U51(tt(), V1, V2) -> isNat# V1) (active# U42(X1, X2) -> active# X1, active# U51(X1, X2, X3) -> U51#(active X1, X2, X3)) (active# U42(X1, X2) -> active# X1, active# U51(X1, X2, X3) -> active# X1) (active# U42(X1, X2) -> active# X1, active# U52(tt(), V2) -> U53# isNatList V2) (active# U42(X1, X2) -> active# X1, active# U52(tt(), V2) -> isNatList# V2) (active# U42(X1, X2) -> active# X1, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U42(X1, X2) -> active# X1, active# U52(X1, X2) -> active# X1) (active# U42(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> isNatKind# V1) (active# U42(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> isNatIListKind# V2) (active# U42(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U42(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U42(X1, X2) -> active# X1, active# isNatIList V -> isNatIListKind# V) (active# U42(X1, X2) -> active# X1, active# isNatIList V -> U31#(isNatIListKind V, V)) (active# U42(X1, X2) -> active# X1, active# U43 X -> U43# active X) (active# U42(X1, X2) -> active# X1, active# U43 X -> active# X) (active# U42(X1, X2) -> active# X1, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2)) (active# U42(X1, X2) -> active# X1, active# U41(tt(), V1, V2) -> isNat# V1) (active# U42(X1, X2) -> active# X1, active# U41(X1, X2, X3) -> U41#(active X1, X2, X3)) (active# U42(X1, X2) -> active# X1, active# U41(X1, X2, X3) -> active# X1) (active# U42(X1, X2) -> active# X1, active# U42(tt(), V2) -> isNatIList# V2) (active# U42(X1, X2) -> active# X1, active# U42(tt(), V2) -> U43# isNatIList V2) (active# U42(X1, X2) -> active# X1, active# U42(X1, X2) -> U42#(active X1, X2)) (active# U42(X1, X2) -> active# X1, active# U42(X1, X2) -> active# X1) (active# U42(X1, X2) -> active# X1, active# U31(tt(), V) -> U32# isNatList V) (active# U42(X1, X2) -> active# X1, active# U31(tt(), V) -> isNatList# V) (active# U42(X1, X2) -> active# X1, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U42(X1, X2) -> active# X1, active# U31(X1, X2) -> active# X1) (active# U42(X1, X2) -> active# X1, active# U32 X -> U32# active X) (active# U42(X1, X2) -> active# X1, active# U32 X -> active# X) (active# U42(X1, X2) -> active# X1, active# U21(tt(), V1) -> isNat# V1) (active# U42(X1, X2) -> active# X1, active# U21(tt(), V1) -> U22# isNat V1) (active# U42(X1, X2) -> active# X1, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U42(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1) (active# U42(X1, X2) -> active# X1, active# isNat length V1 -> isNatIListKind# V1) (active# U42(X1, X2) -> active# X1, active# isNat length V1 -> U11#(isNatIListKind V1, V1)) (active# U42(X1, X2) -> active# X1, active# isNat s V1 -> isNatKind# V1) (active# U42(X1, X2) -> active# X1, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U42(X1, X2) -> active# X1, active# U22 X -> U22# active X) (active# U42(X1, X2) -> active# X1, active# U22 X -> active# X) (active# U42(X1, X2) -> active# X1, active# U11(tt(), V1) -> isNatList# V1) (active# U42(X1, X2) -> active# X1, active# U11(tt(), V1) -> U12# isNatList V1) (active# U42(X1, X2) -> active# X1, active# U11(X1, X2) -> U11#(active X1, X2)) (active# U42(X1, X2) -> active# X1, active# U11(X1, X2) -> active# X1) (active# U42(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> isNatKind# V1) (active# U42(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> isNatIListKind# V2) (active# U42(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U42(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U42(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> isNatKind# V1) (active# U42(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> isNatIListKind# V2) (active# U42(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U42(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U42(X1, X2) -> active# X1, active# U12 X -> U12# active X) (active# U42(X1, X2) -> active# X1, active# U12 X -> active# X) (active# U42(X1, X2) -> active# X1, active# zeros() -> cons#(0(), zeros())) (active# U42(X1, X2) -> active# X1, active# cons(X1, X2) -> active# X1) (active# U42(X1, X2) -> active# X1, active# cons(X1, X2) -> cons#(active X1, X2)) (active# U41(X1, X2, X3) -> active# X1, active# isNatKind length V1 -> isNatIListKind# V1) (active# U41(X1, X2, X3) -> active# X1, active# isNatKind s V1 -> isNatKind# V1) (active# U41(X1, X2, X3) -> active# X1, active# isNatIListKind take(V1, V2) -> isNatKind# V1) (active# U41(X1, X2, X3) -> active# X1, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2) (active# U41(X1, X2, X3) -> active# X1, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U41(X1, X2, X3) -> active# X1, active# isNatIListKind cons(V1, V2) -> isNatKind# V1) (active# U41(X1, X2, X3) -> active# X1, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2) (active# U41(X1, X2, X3) -> active# X1, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U41(X1, X2, X3) -> active# X1, active# and(X1, X2) -> and#(active X1, X2)) (active# U41(X1, X2, X3) -> active# X1, active# and(X1, X2) -> active# X1) (active# U41(X1, X2, X3) -> active# X1, active# U91(tt(), IL, M, N) -> take#(M, IL)) (active# U41(X1, X2, X3) -> active# X1, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL))) (active# U41(X1, X2, X3) -> active# X1, active# U91(X1, X2, X3, X4) -> U91#(active X1, X2, X3, X4)) (active# U41(X1, X2, X3) -> active# X1, active# U91(X1, X2, X3, X4) -> active# X1) (active# U41(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> isNatKind# M) (active# U41(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> isNatKind# N) (active# U41(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> isNatIListKind# IL) (active# U41(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))) (active# U41(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (active# U41(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL)) (active# U41(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M)) (active# U41(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N)) (active# U41(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)) (active# U41(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> isNatIList# IL) (active# U41(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> isNat# M) (active# U41(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> isNat# N) (active# U41(X1, X2, X3) -> active# X1, active# take(0(), IL) -> isNatIListKind# IL) (active# U41(X1, X2, X3) -> active# X1, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL)) (active# U41(X1, X2, X3) -> active# X1, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL)) (active# U41(X1, X2, X3) -> active# X1, active# take(0(), IL) -> isNatIList# IL) (active# U41(X1, X2, X3) -> active# X1, active# take(X1, X2) -> take#(active X1, X2)) (active# U41(X1, X2, X3) -> active# X1, active# take(X1, X2) -> take#(X1, active X2)) (active# U41(X1, X2, X3) -> active# X1, active# take(X1, X2) -> active# X2) (active# U41(X1, X2, X3) -> active# X1, active# take(X1, X2) -> active# X1) (active# U41(X1, X2, X3) -> active# X1, active# U81 X -> U81# active X) (active# U41(X1, X2, X3) -> active# X1, active# U81 X -> active# X) (active# U41(X1, X2, X3) -> active# X1, active# U71(tt(), L) -> length# L) (active# U41(X1, X2, X3) -> active# X1, active# U71(tt(), L) -> s# length L) (active# U41(X1, X2, X3) -> active# X1, active# U71(X1, X2) -> U71#(active X1, X2)) (active# U41(X1, X2, X3) -> active# X1, active# U71(X1, X2) -> active# X1) (active# U41(X1, X2, X3) -> active# X1, active# length cons(N, L) -> isNatKind# N) (active# U41(X1, X2, X3) -> active# X1, active# length cons(N, L) -> isNatIListKind# L) (active# U41(X1, X2, X3) -> active# X1, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N))) (active# U41(X1, X2, X3) -> active# X1, active# length cons(N, L) -> and#(isNat N, isNatKind N)) (active# U41(X1, X2, X3) -> active# X1, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L)) (active# U41(X1, X2, X3) -> active# X1, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L)) (active# U41(X1, X2, X3) -> active# X1, active# length cons(N, L) -> isNat# N) (active# U41(X1, X2, X3) -> active# X1, active# length cons(N, L) -> isNatList# L) (active# U41(X1, X2, X3) -> active# X1, active# length X -> length# active X) (active# U41(X1, X2, X3) -> active# X1, active# length X -> active# X) (active# U41(X1, X2, X3) -> active# X1, active# s X -> s# active X) (active# U41(X1, X2, X3) -> active# X1, active# s X -> active# X) (active# U41(X1, X2, X3) -> active# X1, active# U63 X -> U63# active X) (active# U41(X1, X2, X3) -> active# X1, active# U63 X -> active# X) (active# U41(X1, X2, X3) -> active# X1, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2)) (active# U41(X1, X2, X3) -> active# X1, active# U61(tt(), V1, V2) -> isNat# V1) (active# U41(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U41(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> active# X1) (active# U41(X1, X2, X3) -> active# X1, active# U62(tt(), V2) -> U63# isNatIList V2) (active# U41(X1, X2, X3) -> active# X1, active# U62(tt(), V2) -> isNatIList# V2) (active# U41(X1, X2, X3) -> active# X1, active# U62(X1, X2) -> U62#(active X1, X2)) (active# U41(X1, X2, X3) -> active# X1, active# U62(X1, X2) -> active# X1) (active# U41(X1, X2, X3) -> active# X1, active# U53 X -> U53# active X) (active# U41(X1, X2, X3) -> active# X1, active# U53 X -> active# X) (active# U41(X1, X2, X3) -> active# X1, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2)) (active# U41(X1, X2, X3) -> active# X1, active# U51(tt(), V1, V2) -> isNat# V1) (active# U41(X1, X2, X3) -> active# X1, active# U51(X1, X2, X3) -> U51#(active X1, X2, X3)) (active# U41(X1, X2, X3) -> active# X1, active# U51(X1, X2, X3) -> active# X1) (active# U41(X1, X2, X3) -> active# X1, active# U52(tt(), V2) -> U53# isNatList V2) (active# U41(X1, X2, X3) -> active# X1, active# U52(tt(), V2) -> isNatList# V2) (active# U41(X1, X2, X3) -> active# X1, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U41(X1, X2, X3) -> active# X1, active# U52(X1, X2) -> active# X1) (active# U41(X1, X2, X3) -> active# X1, active# isNatIList cons(V1, V2) -> isNatKind# V1) (active# U41(X1, X2, X3) -> active# X1, active# isNatIList cons(V1, V2) -> isNatIListKind# V2) (active# U41(X1, X2, X3) -> active# X1, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U41(X1, X2, X3) -> active# X1, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U41(X1, X2, X3) -> active# X1, active# isNatIList V -> isNatIListKind# V) (active# U41(X1, X2, X3) -> active# X1, active# isNatIList V -> U31#(isNatIListKind V, V)) (active# U41(X1, X2, X3) -> active# X1, active# U43 X -> U43# active X) (active# U41(X1, X2, X3) -> active# X1, active# U43 X -> active# X) (active# U41(X1, X2, X3) -> active# X1, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2)) (active# U41(X1, X2, X3) -> active# X1, active# U41(tt(), V1, V2) -> isNat# V1) (active# U41(X1, X2, X3) -> active# X1, active# U41(X1, X2, X3) -> U41#(active X1, X2, X3)) (active# U41(X1, X2, X3) -> active# X1, active# U41(X1, X2, X3) -> active# X1) (active# U41(X1, X2, X3) -> active# X1, active# U42(tt(), V2) -> isNatIList# V2) (active# U41(X1, X2, X3) -> active# X1, active# U42(tt(), V2) -> U43# isNatIList V2) (active# U41(X1, X2, X3) -> active# X1, active# U42(X1, X2) -> U42#(active X1, X2)) (active# U41(X1, X2, X3) -> active# X1, active# U42(X1, X2) -> active# X1) (active# U41(X1, X2, X3) -> active# X1, active# U31(tt(), V) -> U32# isNatList V) (active# U41(X1, X2, X3) -> active# X1, active# U31(tt(), V) -> isNatList# V) (active# U41(X1, X2, X3) -> active# X1, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U41(X1, X2, X3) -> active# X1, active# U31(X1, X2) -> active# X1) (active# U41(X1, X2, X3) -> active# X1, active# U32 X -> U32# active X) (active# U41(X1, X2, X3) -> active# X1, active# U32 X -> active# X) (active# U41(X1, X2, X3) -> active# X1, active# U21(tt(), V1) -> isNat# V1) (active# U41(X1, X2, X3) -> active# X1, active# U21(tt(), V1) -> U22# isNat V1) (active# U41(X1, X2, X3) -> active# X1, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U41(X1, X2, X3) -> active# X1, active# U21(X1, X2) -> active# X1) (active# U41(X1, X2, X3) -> active# X1, active# isNat length V1 -> isNatIListKind# V1) (active# U41(X1, X2, X3) -> active# X1, active# isNat length V1 -> U11#(isNatIListKind V1, V1)) (active# U41(X1, X2, X3) -> active# X1, active# isNat s V1 -> isNatKind# V1) (active# U41(X1, X2, X3) -> active# X1, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U41(X1, X2, X3) -> active# X1, active# U22 X -> U22# active X) (active# U41(X1, X2, X3) -> active# X1, active# U22 X -> active# X) (active# U41(X1, X2, X3) -> active# X1, active# U11(tt(), V1) -> isNatList# V1) (active# U41(X1, X2, X3) -> active# X1, active# U11(tt(), V1) -> U12# isNatList V1) (active# U41(X1, X2, X3) -> active# X1, active# U11(X1, X2) -> U11#(active X1, X2)) (active# U41(X1, X2, X3) -> active# X1, active# U11(X1, X2) -> active# X1) (active# U41(X1, X2, X3) -> active# X1, active# isNatList take(V1, V2) -> isNatKind# V1) (active# U41(X1, X2, X3) -> active# X1, active# isNatList take(V1, V2) -> isNatIListKind# V2) (active# U41(X1, X2, X3) -> active# X1, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U41(X1, X2, X3) -> active# X1, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U41(X1, X2, X3) -> active# X1, active# isNatList cons(V1, V2) -> isNatKind# V1) (active# U41(X1, X2, X3) -> active# X1, active# isNatList cons(V1, V2) -> isNatIListKind# V2) (active# U41(X1, X2, X3) -> active# X1, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U41(X1, X2, X3) -> active# X1, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U41(X1, X2, X3) -> active# X1, active# U12 X -> U12# active X) (active# U41(X1, X2, X3) -> active# X1, active# U12 X -> active# X) (active# U41(X1, X2, X3) -> active# X1, active# zeros() -> cons#(0(), zeros())) (active# U41(X1, X2, X3) -> active# X1, active# cons(X1, X2) -> active# X1) (active# U41(X1, X2, X3) -> active# X1, active# cons(X1, X2) -> cons#(active X1, X2)) (active# U52(X1, X2) -> U52#(active X1, X2), U52#(ok X1, ok X2) -> U52#(X1, X2)) (active# U52(X1, X2) -> U52#(active X1, X2), U52#(mark X1, X2) -> U52#(X1, X2)) (active# U62(X1, X2) -> active# X1, active# isNatKind length V1 -> isNatIListKind# V1) (active# U62(X1, X2) -> active# X1, active# isNatKind s V1 -> isNatKind# V1) (active# U62(X1, X2) -> active# X1, active# isNatIListKind take(V1, V2) -> isNatKind# V1) (active# U62(X1, X2) -> active# X1, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2) (active# U62(X1, X2) -> active# X1, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U62(X1, X2) -> active# X1, active# isNatIListKind cons(V1, V2) -> isNatKind# V1) (active# U62(X1, X2) -> active# X1, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2) (active# U62(X1, X2) -> active# X1, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U62(X1, X2) -> active# X1, active# and(X1, X2) -> and#(active X1, X2)) (active# U62(X1, X2) -> active# X1, active# and(X1, X2) -> active# X1) (active# U62(X1, X2) -> active# X1, active# U91(tt(), IL, M, N) -> take#(M, IL)) (active# U62(X1, X2) -> active# X1, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL))) (active# U62(X1, X2) -> active# X1, active# U91(X1, X2, X3, X4) -> U91#(active X1, X2, X3, X4)) (active# U62(X1, X2) -> active# X1, active# U91(X1, X2, X3, X4) -> active# X1) (active# U62(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatKind# M) (active# U62(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatKind# N) (active# U62(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatIListKind# IL) (active# U62(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))) (active# U62(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (active# U62(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL)) (active# U62(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M)) (active# U62(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N)) (active# U62(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)) (active# U62(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatIList# IL) (active# U62(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNat# M) (active# U62(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNat# N) (active# U62(X1, X2) -> active# X1, active# take(0(), IL) -> isNatIListKind# IL) (active# U62(X1, X2) -> active# X1, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL)) (active# U62(X1, X2) -> active# X1, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL)) (active# U62(X1, X2) -> active# X1, active# take(0(), IL) -> isNatIList# IL) (active# U62(X1, X2) -> active# X1, active# take(X1, X2) -> take#(active X1, X2)) (active# U62(X1, X2) -> active# X1, active# take(X1, X2) -> take#(X1, active X2)) (active# U62(X1, X2) -> active# X1, active# take(X1, X2) -> active# X2) (active# U62(X1, X2) -> active# X1, active# take(X1, X2) -> active# X1) (active# U62(X1, X2) -> active# X1, active# U81 X -> U81# active X) (active# U62(X1, X2) -> active# X1, active# U81 X -> active# X) (active# U62(X1, X2) -> active# X1, active# U71(tt(), L) -> length# L) (active# U62(X1, X2) -> active# X1, active# U71(tt(), L) -> s# length L) (active# U62(X1, X2) -> active# X1, active# U71(X1, X2) -> U71#(active X1, X2)) (active# U62(X1, X2) -> active# X1, active# U71(X1, X2) -> active# X1) (active# U62(X1, X2) -> active# X1, active# length cons(N, L) -> isNatKind# N) (active# U62(X1, X2) -> active# X1, active# length cons(N, L) -> isNatIListKind# L) (active# U62(X1, X2) -> active# X1, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N))) (active# U62(X1, X2) -> active# X1, active# length cons(N, L) -> and#(isNat N, isNatKind N)) (active# U62(X1, X2) -> active# X1, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L)) (active# U62(X1, X2) -> active# X1, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L)) (active# U62(X1, X2) -> active# X1, active# length cons(N, L) -> isNat# N) (active# U62(X1, X2) -> active# X1, active# length cons(N, L) -> isNatList# L) (active# U62(X1, X2) -> active# X1, active# length X -> length# active X) (active# U62(X1, X2) -> active# X1, active# length X -> active# X) (active# U62(X1, X2) -> active# X1, active# s X -> s# active X) (active# U62(X1, X2) -> active# X1, active# s X -> active# X) (active# U62(X1, X2) -> active# X1, active# U63 X -> U63# active X) (active# U62(X1, X2) -> active# X1, active# U63 X -> active# X) (active# U62(X1, X2) -> active# X1, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2)) (active# U62(X1, X2) -> active# X1, active# U61(tt(), V1, V2) -> isNat# V1) (active# U62(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U62(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> active# X1) (active# U62(X1, X2) -> active# X1, active# U62(tt(), V2) -> U63# isNatIList V2) (active# U62(X1, X2) -> active# X1, active# U62(tt(), V2) -> isNatIList# V2) (active# U62(X1, X2) -> active# X1, active# U62(X1, X2) -> U62#(active X1, X2)) (active# U62(X1, X2) -> active# X1, active# U62(X1, X2) -> active# X1) (active# U62(X1, X2) -> active# X1, active# U53 X -> U53# active X) (active# U62(X1, X2) -> active# X1, active# U53 X -> active# X) (active# U62(X1, X2) -> active# X1, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2)) (active# U62(X1, X2) -> active# X1, active# U51(tt(), V1, V2) -> isNat# V1) (active# U62(X1, X2) -> active# X1, active# U51(X1, X2, X3) -> U51#(active X1, X2, X3)) (active# U62(X1, X2) -> active# X1, active# U51(X1, X2, X3) -> active# X1) (active# U62(X1, X2) -> active# X1, active# U52(tt(), V2) -> U53# isNatList V2) (active# U62(X1, X2) -> active# X1, active# U52(tt(), V2) -> isNatList# V2) (active# U62(X1, X2) -> active# X1, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U62(X1, X2) -> active# X1, active# U52(X1, X2) -> active# X1) (active# U62(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> isNatKind# V1) (active# U62(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> isNatIListKind# V2) (active# U62(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U62(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U62(X1, X2) -> active# X1, active# isNatIList V -> isNatIListKind# V) (active# U62(X1, X2) -> active# X1, active# isNatIList V -> U31#(isNatIListKind V, V)) (active# U62(X1, X2) -> active# X1, active# U43 X -> U43# active X) (active# U62(X1, X2) -> active# X1, active# U43 X -> active# X) (active# U62(X1, X2) -> active# X1, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2)) (active# U62(X1, X2) -> active# X1, active# U41(tt(), V1, V2) -> isNat# V1) (active# U62(X1, X2) -> active# X1, active# U41(X1, X2, X3) -> U41#(active X1, X2, X3)) (active# U62(X1, X2) -> active# X1, active# U41(X1, X2, X3) -> active# X1) (active# U62(X1, X2) -> active# X1, active# U42(tt(), V2) -> isNatIList# V2) (active# U62(X1, X2) -> active# X1, active# U42(tt(), V2) -> U43# isNatIList V2) (active# U62(X1, X2) -> active# X1, active# U42(X1, X2) -> U42#(active X1, X2)) (active# U62(X1, X2) -> active# X1, active# U42(X1, X2) -> active# X1) (active# U62(X1, X2) -> active# X1, active# U31(tt(), V) -> U32# isNatList V) (active# U62(X1, X2) -> active# X1, active# U31(tt(), V) -> isNatList# V) (active# U62(X1, X2) -> active# X1, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U62(X1, X2) -> active# X1, active# U31(X1, X2) -> active# X1) (active# U62(X1, X2) -> active# X1, active# U32 X -> U32# active X) (active# U62(X1, X2) -> active# X1, active# U32 X -> active# X) (active# U62(X1, X2) -> active# X1, active# U21(tt(), V1) -> isNat# V1) (active# U62(X1, X2) -> active# X1, active# U21(tt(), V1) -> U22# isNat V1) (active# U62(X1, X2) -> active# X1, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U62(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1) (active# U62(X1, X2) -> active# X1, active# isNat length V1 -> isNatIListKind# V1) (active# U62(X1, X2) -> active# X1, active# isNat length V1 -> U11#(isNatIListKind V1, V1)) (active# U62(X1, X2) -> active# X1, active# isNat s V1 -> isNatKind# V1) (active# U62(X1, X2) -> active# X1, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U62(X1, X2) -> active# X1, active# U22 X -> U22# active X) (active# U62(X1, X2) -> active# X1, active# U22 X -> active# X) (active# U62(X1, X2) -> active# X1, active# U11(tt(), V1) -> isNatList# V1) (active# U62(X1, X2) -> active# X1, active# U11(tt(), V1) -> U12# isNatList V1) (active# U62(X1, X2) -> active# X1, active# U11(X1, X2) -> U11#(active X1, X2)) (active# U62(X1, X2) -> active# X1, active# U11(X1, X2) -> active# X1) (active# U62(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> isNatKind# V1) (active# U62(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> isNatIListKind# V2) (active# U62(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U62(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U62(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> isNatKind# V1) (active# U62(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> isNatIListKind# V2) (active# U62(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U62(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U62(X1, X2) -> active# X1, active# U12 X -> U12# active X) (active# U62(X1, X2) -> active# X1, active# U12 X -> active# X) (active# U62(X1, X2) -> active# X1, active# zeros() -> cons#(0(), zeros())) (active# U62(X1, X2) -> active# X1, active# cons(X1, X2) -> active# X1) (active# U62(X1, X2) -> active# X1, active# cons(X1, X2) -> cons#(active X1, X2)) (active# U61(X1, X2, X3) -> active# X1, active# isNatKind length V1 -> isNatIListKind# V1) (active# U61(X1, X2, X3) -> active# X1, active# isNatKind s V1 -> isNatKind# V1) (active# U61(X1, X2, X3) -> active# X1, active# isNatIListKind take(V1, V2) -> isNatKind# V1) (active# U61(X1, X2, X3) -> active# X1, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2) (active# U61(X1, X2, X3) -> active# X1, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U61(X1, X2, X3) -> active# X1, active# isNatIListKind cons(V1, V2) -> isNatKind# V1) (active# U61(X1, X2, X3) -> active# X1, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2) (active# U61(X1, X2, X3) -> active# X1, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U61(X1, X2, X3) -> active# X1, active# and(X1, X2) -> and#(active X1, X2)) (active# U61(X1, X2, X3) -> active# X1, active# and(X1, X2) -> active# X1) (active# U61(X1, X2, X3) -> active# X1, active# U91(tt(), IL, M, N) -> take#(M, IL)) (active# U61(X1, X2, X3) -> active# X1, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL))) (active# U61(X1, X2, X3) -> active# X1, active# U91(X1, X2, X3, X4) -> U91#(active X1, X2, X3, X4)) (active# U61(X1, X2, X3) -> active# X1, active# U91(X1, X2, X3, X4) -> active# X1) (active# U61(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> isNatKind# M) (active# U61(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> isNatKind# N) (active# U61(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> isNatIListKind# IL) (active# U61(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))) (active# U61(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (active# U61(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL)) (active# U61(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M)) (active# U61(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N)) (active# U61(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)) (active# U61(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> isNatIList# IL) (active# U61(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> isNat# M) (active# U61(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> isNat# N) (active# U61(X1, X2, X3) -> active# X1, active# take(0(), IL) -> isNatIListKind# IL) (active# U61(X1, X2, X3) -> active# X1, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL)) (active# U61(X1, X2, X3) -> active# X1, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL)) (active# U61(X1, X2, X3) -> active# X1, active# take(0(), IL) -> isNatIList# IL) (active# U61(X1, X2, X3) -> active# X1, active# take(X1, X2) -> take#(active X1, X2)) (active# U61(X1, X2, X3) -> active# X1, active# take(X1, X2) -> take#(X1, active X2)) (active# U61(X1, X2, X3) -> active# X1, active# take(X1, X2) -> active# X2) (active# U61(X1, X2, X3) -> active# X1, active# take(X1, X2) -> active# X1) (active# U61(X1, X2, X3) -> active# X1, active# U81 X -> U81# active X) (active# U61(X1, X2, X3) -> active# X1, active# U81 X -> active# X) (active# U61(X1, X2, X3) -> active# X1, active# U71(tt(), L) -> length# L) (active# U61(X1, X2, X3) -> active# X1, active# U71(tt(), L) -> s# length L) (active# U61(X1, X2, X3) -> active# X1, active# U71(X1, X2) -> U71#(active X1, X2)) (active# U61(X1, X2, X3) -> active# X1, active# U71(X1, X2) -> active# X1) (active# U61(X1, X2, X3) -> active# X1, active# length cons(N, L) -> isNatKind# N) (active# U61(X1, X2, X3) -> active# X1, active# length cons(N, L) -> isNatIListKind# L) (active# U61(X1, X2, X3) -> active# X1, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N))) (active# U61(X1, X2, X3) -> active# X1, active# length cons(N, L) -> and#(isNat N, isNatKind N)) (active# U61(X1, X2, X3) -> active# X1, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L)) (active# U61(X1, X2, X3) -> active# X1, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L)) (active# U61(X1, X2, X3) -> active# X1, active# length cons(N, L) -> isNat# N) (active# U61(X1, X2, X3) -> active# X1, active# length cons(N, L) -> isNatList# L) (active# U61(X1, X2, X3) -> active# X1, active# length X -> length# active X) (active# U61(X1, X2, X3) -> active# X1, active# length X -> active# X) (active# U61(X1, X2, X3) -> active# X1, active# s X -> s# active X) (active# U61(X1, X2, X3) -> active# X1, active# s X -> active# X) (active# U61(X1, X2, X3) -> active# X1, active# U63 X -> U63# active X) (active# U61(X1, X2, X3) -> active# X1, active# U63 X -> active# X) (active# U61(X1, X2, X3) -> active# X1, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2)) (active# U61(X1, X2, X3) -> active# X1, active# U61(tt(), V1, V2) -> isNat# V1) (active# U61(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U61(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> active# X1) (active# U61(X1, X2, X3) -> active# X1, active# U62(tt(), V2) -> U63# isNatIList V2) (active# U61(X1, X2, X3) -> active# X1, active# U62(tt(), V2) -> isNatIList# V2) (active# U61(X1, X2, X3) -> active# X1, active# U62(X1, X2) -> U62#(active X1, X2)) (active# U61(X1, X2, X3) -> active# X1, active# U62(X1, X2) -> active# X1) (active# U61(X1, X2, X3) -> active# X1, active# U53 X -> U53# active X) (active# U61(X1, X2, X3) -> active# X1, active# U53 X -> active# X) (active# U61(X1, X2, X3) -> active# X1, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2)) (active# U61(X1, X2, X3) -> active# X1, active# U51(tt(), V1, V2) -> isNat# V1) (active# U61(X1, X2, X3) -> active# X1, active# U51(X1, X2, X3) -> U51#(active X1, X2, X3)) (active# U61(X1, X2, X3) -> active# X1, active# U51(X1, X2, X3) -> active# X1) (active# U61(X1, X2, X3) -> active# X1, active# U52(tt(), V2) -> U53# isNatList V2) (active# U61(X1, X2, X3) -> active# X1, active# U52(tt(), V2) -> isNatList# V2) (active# U61(X1, X2, X3) -> active# X1, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U61(X1, X2, X3) -> active# X1, active# U52(X1, X2) -> active# X1) (active# U61(X1, X2, X3) -> active# X1, active# isNatIList cons(V1, V2) -> isNatKind# V1) (active# U61(X1, X2, X3) -> active# X1, active# isNatIList cons(V1, V2) -> isNatIListKind# V2) (active# U61(X1, X2, X3) -> active# X1, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U61(X1, X2, X3) -> active# X1, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U61(X1, X2, X3) -> active# X1, active# isNatIList V -> isNatIListKind# V) (active# U61(X1, X2, X3) -> active# X1, active# isNatIList V -> U31#(isNatIListKind V, V)) (active# U61(X1, X2, X3) -> active# X1, active# U43 X -> U43# active X) (active# U61(X1, X2, X3) -> active# X1, active# U43 X -> active# X) (active# U61(X1, X2, X3) -> active# X1, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2)) (active# U61(X1, X2, X3) -> active# X1, active# U41(tt(), V1, V2) -> isNat# V1) (active# U61(X1, X2, X3) -> active# X1, active# U41(X1, X2, X3) -> U41#(active X1, X2, X3)) (active# U61(X1, X2, X3) -> active# X1, active# U41(X1, X2, X3) -> active# X1) (active# U61(X1, X2, X3) -> active# X1, active# U42(tt(), V2) -> isNatIList# V2) (active# U61(X1, X2, X3) -> active# X1, active# U42(tt(), V2) -> U43# isNatIList V2) (active# U61(X1, X2, X3) -> active# X1, active# U42(X1, X2) -> U42#(active X1, X2)) (active# U61(X1, X2, X3) -> active# X1, active# U42(X1, X2) -> active# X1) (active# U61(X1, X2, X3) -> active# X1, active# U31(tt(), V) -> U32# isNatList V) (active# U61(X1, X2, X3) -> active# X1, active# U31(tt(), V) -> isNatList# V) (active# U61(X1, X2, X3) -> active# X1, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U61(X1, X2, X3) -> active# X1, active# U31(X1, X2) -> active# X1) (active# U61(X1, X2, X3) -> active# X1, active# U32 X -> U32# active X) (active# U61(X1, X2, X3) -> active# X1, active# U32 X -> active# X) (active# U61(X1, X2, X3) -> active# X1, active# U21(tt(), V1) -> isNat# V1) (active# U61(X1, X2, X3) -> active# X1, active# U21(tt(), V1) -> U22# isNat V1) (active# U61(X1, X2, X3) -> active# X1, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U61(X1, X2, X3) -> active# X1, active# U21(X1, X2) -> active# X1) (active# U61(X1, X2, X3) -> active# X1, active# isNat length V1 -> isNatIListKind# V1) (active# U61(X1, X2, X3) -> active# X1, active# isNat length V1 -> U11#(isNatIListKind V1, V1)) (active# U61(X1, X2, X3) -> active# X1, active# isNat s V1 -> isNatKind# V1) (active# U61(X1, X2, X3) -> active# X1, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U61(X1, X2, X3) -> active# X1, active# U22 X -> U22# active X) (active# U61(X1, X2, X3) -> active# X1, active# U22 X -> active# X) (active# U61(X1, X2, X3) -> active# X1, active# U11(tt(), V1) -> isNatList# V1) (active# U61(X1, X2, X3) -> active# X1, active# U11(tt(), V1) -> U12# isNatList V1) (active# U61(X1, X2, X3) -> active# X1, active# U11(X1, X2) -> U11#(active X1, X2)) (active# U61(X1, X2, X3) -> active# X1, active# U11(X1, X2) -> active# X1) (active# U61(X1, X2, X3) -> active# X1, active# isNatList take(V1, V2) -> isNatKind# V1) (active# U61(X1, X2, X3) -> active# X1, active# isNatList take(V1, V2) -> isNatIListKind# V2) (active# U61(X1, X2, X3) -> active# X1, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U61(X1, X2, X3) -> active# X1, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U61(X1, X2, X3) -> active# X1, active# isNatList cons(V1, V2) -> isNatKind# V1) (active# U61(X1, X2, X3) -> active# X1, active# isNatList cons(V1, V2) -> isNatIListKind# V2) (active# U61(X1, X2, X3) -> active# X1, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U61(X1, X2, X3) -> active# X1, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U61(X1, X2, X3) -> active# X1, active# U12 X -> U12# active X) (active# U61(X1, X2, X3) -> active# X1, active# U12 X -> active# X) (active# U61(X1, X2, X3) -> active# X1, active# zeros() -> cons#(0(), zeros())) (active# U61(X1, X2, X3) -> active# X1, active# cons(X1, X2) -> active# X1) (active# U61(X1, X2, X3) -> active# X1, active# cons(X1, X2) -> cons#(active X1, X2)) (active# U71(X1, X2) -> U71#(active X1, X2), U71#(ok X1, ok X2) -> U71#(X1, X2)) (active# U71(X1, X2) -> U71#(active X1, X2), U71#(mark X1, X2) -> U71#(X1, X2)) (active# take(X1, X2) -> take#(active X1, X2), take#(ok X1, ok X2) -> take#(X1, X2)) (active# take(X1, X2) -> take#(active X1, X2), take#(mark X1, X2) -> take#(X1, X2)) (active# take(X1, X2) -> take#(active X1, X2), take#(X1, mark X2) -> take#(X1, X2)) (active# and(X1, X2) -> active# X1, active# isNatKind length V1 -> isNatIListKind# V1) (active# and(X1, X2) -> active# X1, active# isNatKind s V1 -> isNatKind# V1) (active# and(X1, X2) -> active# X1, active# isNatIListKind take(V1, V2) -> isNatKind# V1) (active# and(X1, X2) -> active# X1, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2) (active# and(X1, X2) -> active# X1, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# and(X1, X2) -> active# X1, active# isNatIListKind cons(V1, V2) -> isNatKind# V1) (active# and(X1, X2) -> active# X1, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2) (active# and(X1, X2) -> active# X1, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# and(X1, X2) -> active# X1, active# and(X1, X2) -> and#(active X1, X2)) (active# and(X1, X2) -> active# X1, active# and(X1, X2) -> active# X1) (active# and(X1, X2) -> active# X1, active# U91(tt(), IL, M, N) -> take#(M, IL)) (active# and(X1, X2) -> active# X1, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL))) (active# and(X1, X2) -> active# X1, active# U91(X1, X2, X3, X4) -> U91#(active X1, X2, X3, X4)) (active# and(X1, X2) -> active# X1, active# U91(X1, X2, X3, X4) -> active# X1) (active# and(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatKind# M) (active# and(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatKind# N) (active# and(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatIListKind# IL) (active# and(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))) (active# and(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (active# and(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL)) (active# and(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M)) (active# and(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N)) (active# and(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)) (active# and(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatIList# IL) (active# and(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNat# M) (active# and(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNat# N) (active# and(X1, X2) -> active# X1, active# take(0(), IL) -> isNatIListKind# IL) (active# and(X1, X2) -> active# X1, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL)) (active# and(X1, X2) -> active# X1, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL)) (active# and(X1, X2) -> active# X1, active# take(0(), IL) -> isNatIList# IL) (active# and(X1, X2) -> active# X1, active# take(X1, X2) -> take#(active X1, X2)) (active# and(X1, X2) -> active# X1, active# take(X1, X2) -> take#(X1, active X2)) (active# and(X1, X2) -> active# X1, active# take(X1, X2) -> active# X2) (active# and(X1, X2) -> active# X1, active# take(X1, X2) -> active# X1) (active# and(X1, X2) -> active# X1, active# U81 X -> U81# active X) (active# and(X1, X2) -> active# X1, active# U81 X -> active# X) (active# and(X1, X2) -> active# X1, active# U71(tt(), L) -> length# L) (active# and(X1, X2) -> active# X1, active# U71(tt(), L) -> s# length L) (active# and(X1, X2) -> active# X1, active# U71(X1, X2) -> U71#(active X1, X2)) (active# and(X1, X2) -> active# X1, active# U71(X1, X2) -> active# X1) (active# and(X1, X2) -> active# X1, active# length cons(N, L) -> isNatKind# N) (active# and(X1, X2) -> active# X1, active# length cons(N, L) -> isNatIListKind# L) (active# and(X1, X2) -> active# X1, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N))) (active# and(X1, X2) -> active# X1, active# length cons(N, L) -> and#(isNat N, isNatKind N)) (active# and(X1, X2) -> active# X1, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L)) (active# and(X1, X2) -> active# X1, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L)) (active# and(X1, X2) -> active# X1, active# length cons(N, L) -> isNat# N) (active# and(X1, X2) -> active# X1, active# length cons(N, L) -> isNatList# L) (active# and(X1, X2) -> active# X1, active# length X -> length# active X) (active# and(X1, X2) -> active# X1, active# length X -> active# X) (active# and(X1, X2) -> active# X1, active# s X -> s# active X) (active# and(X1, X2) -> active# X1, active# s X -> active# X) (active# and(X1, X2) -> active# X1, active# U63 X -> U63# active X) (active# and(X1, X2) -> active# X1, active# U63 X -> active# X) (active# and(X1, X2) -> active# X1, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2)) (active# and(X1, X2) -> active# X1, active# U61(tt(), V1, V2) -> isNat# V1) (active# and(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# and(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> active# X1) (active# and(X1, X2) -> active# X1, active# U62(tt(), V2) -> U63# isNatIList V2) (active# and(X1, X2) -> active# X1, active# U62(tt(), V2) -> isNatIList# V2) (active# and(X1, X2) -> active# X1, active# U62(X1, X2) -> U62#(active X1, X2)) (active# and(X1, X2) -> active# X1, active# U62(X1, X2) -> active# X1) (active# and(X1, X2) -> active# X1, active# U53 X -> U53# active X) (active# and(X1, X2) -> active# X1, active# U53 X -> active# X) (active# and(X1, X2) -> active# X1, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2)) (active# and(X1, X2) -> active# X1, active# U51(tt(), V1, V2) -> isNat# V1) (active# and(X1, X2) -> active# X1, active# U51(X1, X2, X3) -> U51#(active X1, X2, X3)) (active# and(X1, X2) -> active# X1, active# U51(X1, X2, X3) -> active# X1) (active# and(X1, X2) -> active# X1, active# U52(tt(), V2) -> U53# isNatList V2) (active# and(X1, X2) -> active# X1, active# U52(tt(), V2) -> isNatList# V2) (active# and(X1, X2) -> active# X1, active# U52(X1, X2) -> U52#(active X1, X2)) (active# and(X1, X2) -> active# X1, active# U52(X1, X2) -> active# X1) (active# and(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> isNatKind# V1) (active# and(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> isNatIListKind# V2) (active# and(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# and(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# and(X1, X2) -> active# X1, active# isNatIList V -> isNatIListKind# V) (active# and(X1, X2) -> active# X1, active# isNatIList V -> U31#(isNatIListKind V, V)) (active# and(X1, X2) -> active# X1, active# U43 X -> U43# active X) (active# and(X1, X2) -> active# X1, active# U43 X -> active# X) (active# and(X1, X2) -> active# X1, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2)) (active# and(X1, X2) -> active# X1, active# U41(tt(), V1, V2) -> isNat# V1) (active# and(X1, X2) -> active# X1, active# U41(X1, X2, X3) -> U41#(active X1, X2, X3)) (active# and(X1, X2) -> active# X1, active# U41(X1, X2, X3) -> active# X1) (active# and(X1, X2) -> active# X1, active# U42(tt(), V2) -> isNatIList# V2) (active# and(X1, X2) -> active# X1, active# U42(tt(), V2) -> U43# isNatIList V2) (active# and(X1, X2) -> active# X1, active# U42(X1, X2) -> U42#(active X1, X2)) (active# and(X1, X2) -> active# X1, active# U42(X1, X2) -> active# X1) (active# and(X1, X2) -> active# X1, active# U31(tt(), V) -> U32# isNatList V) (active# and(X1, X2) -> active# X1, active# U31(tt(), V) -> isNatList# V) (active# and(X1, X2) -> active# X1, active# U31(X1, X2) -> U31#(active X1, X2)) (active# and(X1, X2) -> active# X1, active# U31(X1, X2) -> active# X1) (active# and(X1, X2) -> active# X1, active# U32 X -> U32# active X) (active# and(X1, X2) -> active# X1, active# U32 X -> active# X) (active# and(X1, X2) -> active# X1, active# U21(tt(), V1) -> isNat# V1) (active# and(X1, X2) -> active# X1, active# U21(tt(), V1) -> U22# isNat V1) (active# and(X1, X2) -> active# X1, active# U21(X1, X2) -> U21#(active X1, X2)) (active# and(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1) (active# and(X1, X2) -> active# X1, active# isNat length V1 -> isNatIListKind# V1) (active# and(X1, X2) -> active# X1, active# isNat length V1 -> U11#(isNatIListKind V1, V1)) (active# and(X1, X2) -> active# X1, active# isNat s V1 -> isNatKind# V1) (active# and(X1, X2) -> active# X1, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# and(X1, X2) -> active# X1, active# U22 X -> U22# active X) (active# and(X1, X2) -> active# X1, active# U22 X -> active# X) (active# and(X1, X2) -> active# X1, active# U11(tt(), V1) -> isNatList# V1) (active# and(X1, X2) -> active# X1, active# U11(tt(), V1) -> U12# isNatList V1) (active# and(X1, X2) -> active# X1, active# U11(X1, X2) -> U11#(active X1, X2)) (active# and(X1, X2) -> active# X1, active# U11(X1, X2) -> active# X1) (active# and(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> isNatKind# V1) (active# and(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> isNatIListKind# V2) (active# and(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# and(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# and(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> isNatKind# V1) (active# and(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> isNatIListKind# V2) (active# and(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# and(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# and(X1, X2) -> active# X1, active# U12 X -> U12# active X) (active# and(X1, X2) -> active# X1, active# U12 X -> active# X) (active# and(X1, X2) -> active# X1, active# zeros() -> cons#(0(), zeros())) (active# and(X1, X2) -> active# X1, active# cons(X1, X2) -> active# X1) (active# and(X1, X2) -> active# X1, active# cons(X1, X2) -> cons#(active X1, X2)) (proper# cons(X1, X2) -> proper# X1, proper# isNatKind X -> proper# X) (proper# cons(X1, X2) -> proper# X1, proper# isNatKind X -> isNatKind# proper X) (proper# cons(X1, X2) -> proper# X1, proper# isNatIListKind X -> proper# X) (proper# cons(X1, X2) -> proper# X1, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# cons(X1, X2) -> proper# X1, proper# and(X1, X2) -> proper# X2) (proper# cons(X1, X2) -> proper# X1, proper# and(X1, X2) -> proper# X1) (proper# cons(X1, X2) -> proper# X1, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# cons(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# cons(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# cons(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# cons(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# cons(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# cons(X1, X2) -> proper# X1, proper# take(X1, X2) -> proper# X2) (proper# cons(X1, X2) -> proper# X1, proper# take(X1, X2) -> proper# X1) (proper# cons(X1, X2) -> proper# X1, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# cons(X1, X2) -> proper# X1, proper# U81 X -> proper# X) (proper# cons(X1, X2) -> proper# X1, proper# U81 X -> U81# proper X) (proper# cons(X1, X2) -> proper# X1, proper# U71(X1, X2) -> proper# X2) (proper# cons(X1, X2) -> proper# X1, proper# U71(X1, X2) -> proper# X1) (proper# cons(X1, X2) -> proper# X1, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# cons(X1, X2) -> proper# X1, proper# length X -> proper# X) (proper# cons(X1, X2) -> proper# X1, proper# length X -> length# proper X) (proper# cons(X1, X2) -> proper# X1, proper# s X -> proper# X) (proper# cons(X1, X2) -> proper# X1, proper# s X -> s# proper X) (proper# cons(X1, X2) -> proper# X1, proper# U63 X -> proper# X) (proper# cons(X1, X2) -> proper# X1, proper# U63 X -> U63# proper X) (proper# cons(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X3) (proper# cons(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2) (proper# cons(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X1) (proper# cons(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# cons(X1, X2) -> proper# X1, proper# U62(X1, X2) -> proper# X2) (proper# cons(X1, X2) -> proper# X1, proper# U62(X1, X2) -> proper# X1) (proper# cons(X1, X2) -> proper# X1, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# cons(X1, X2) -> proper# X1, proper# U53 X -> proper# X) (proper# cons(X1, X2) -> proper# X1, proper# U53 X -> U53# proper X) (proper# cons(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X3) (proper# cons(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X2) (proper# cons(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X1) (proper# cons(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# cons(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2) (proper# cons(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X1) (proper# cons(X1, X2) -> proper# X1, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# cons(X1, X2) -> proper# X1, proper# isNatIList X -> proper# X) (proper# cons(X1, X2) -> proper# X1, proper# isNatIList X -> isNatIList# proper X) (proper# cons(X1, X2) -> proper# X1, proper# U43 X -> proper# X) (proper# cons(X1, X2) -> proper# X1, proper# U43 X -> U43# proper X) (proper# cons(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X3) (proper# cons(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X2) (proper# cons(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X1) (proper# cons(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# cons(X1, X2) -> proper# X1, proper# U42(X1, X2) -> proper# X2) (proper# cons(X1, X2) -> proper# X1, proper# U42(X1, X2) -> proper# X1) (proper# cons(X1, X2) -> proper# X1, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# cons(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2) (proper# cons(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X1) (proper# cons(X1, X2) -> proper# X1, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# cons(X1, X2) -> proper# X1, proper# U32 X -> proper# X) (proper# cons(X1, X2) -> proper# X1, proper# U32 X -> U32# proper X) (proper# cons(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2) (proper# cons(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X1) (proper# cons(X1, X2) -> proper# X1, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# cons(X1, X2) -> proper# X1, proper# isNat X -> proper# X) (proper# cons(X1, X2) -> proper# X1, proper# isNat X -> isNat# proper X) (proper# cons(X1, X2) -> proper# X1, proper# U22 X -> proper# X) (proper# cons(X1, X2) -> proper# X1, proper# U22 X -> U22# proper X) (proper# cons(X1, X2) -> proper# X1, proper# U11(X1, X2) -> proper# X2) (proper# cons(X1, X2) -> proper# X1, proper# U11(X1, X2) -> proper# X1) (proper# cons(X1, X2) -> proper# X1, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# cons(X1, X2) -> proper# X1, proper# isNatList X -> proper# X) (proper# cons(X1, X2) -> proper# X1, proper# isNatList X -> isNatList# proper X) (proper# cons(X1, X2) -> proper# X1, proper# U12 X -> proper# X) (proper# cons(X1, X2) -> proper# X1, proper# U12 X -> U12# proper X) (proper# cons(X1, X2) -> proper# X1, proper# cons(X1, X2) -> proper# X2) (proper# cons(X1, X2) -> proper# X1, proper# cons(X1, X2) -> proper# X1) (proper# cons(X1, X2) -> proper# X1, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X1, proper# isNatKind X -> proper# X) (proper# U21(X1, X2) -> proper# X1, proper# isNatKind X -> isNatKind# proper X) (proper# U21(X1, X2) -> proper# X1, proper# isNatIListKind X -> proper# X) (proper# U21(X1, X2) -> proper# X1, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U21(X1, X2) -> proper# X1, proper# and(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X1, proper# and(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X1, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U21(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U21(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U21(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U21(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U21(X1, X2) -> proper# X1, proper# take(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X1, proper# take(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X1, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X1, proper# U81 X -> proper# X) (proper# U21(X1, X2) -> proper# X1, proper# U81 X -> U81# proper X) (proper# U21(X1, X2) -> proper# X1, proper# U71(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X1, proper# U71(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X1, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X1, proper# length X -> proper# X) (proper# U21(X1, X2) -> proper# X1, proper# length X -> length# proper X) (proper# U21(X1, X2) -> proper# X1, proper# s X -> proper# X) (proper# U21(X1, X2) -> proper# X1, proper# s X -> s# proper X) (proper# U21(X1, X2) -> proper# X1, proper# U63 X -> proper# X) (proper# U21(X1, X2) -> proper# X1, proper# U63 X -> U63# proper X) (proper# U21(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X3) (proper# U21(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2) (proper# U21(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X1) (proper# U21(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U21(X1, X2) -> proper# X1, proper# U62(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X1, proper# U62(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X1, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X1, proper# U53 X -> proper# X) (proper# U21(X1, X2) -> proper# X1, proper# U53 X -> U53# proper X) (proper# U21(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X3) (proper# U21(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X2) (proper# U21(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X1) (proper# U21(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U21(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X1, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X1, proper# isNatIList X -> proper# X) (proper# U21(X1, X2) -> proper# X1, proper# isNatIList X -> isNatIList# proper X) (proper# U21(X1, X2) -> proper# X1, proper# U43 X -> proper# X) (proper# U21(X1, X2) -> proper# X1, proper# U43 X -> U43# proper X) (proper# U21(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X3) (proper# U21(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X2) (proper# U21(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X1) (proper# U21(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U21(X1, X2) -> proper# X1, proper# U42(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X1, proper# U42(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X1, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X1, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X1, proper# U32 X -> proper# X) (proper# U21(X1, X2) -> proper# X1, proper# U32 X -> U32# proper X) (proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X1, proper# isNat X -> proper# X) (proper# U21(X1, X2) -> proper# X1, proper# isNat X -> isNat# proper X) (proper# U21(X1, X2) -> proper# X1, proper# U22 X -> proper# X) (proper# U21(X1, X2) -> proper# X1, proper# U22 X -> U22# proper X) (proper# U21(X1, X2) -> proper# X1, proper# U11(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X1, proper# U11(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X1, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X1, proper# isNatList X -> proper# X) (proper# U21(X1, X2) -> proper# X1, proper# isNatList X -> isNatList# proper X) (proper# U21(X1, X2) -> proper# X1, proper# U12 X -> proper# X) (proper# U21(X1, X2) -> proper# X1, proper# U12 X -> U12# proper X) (proper# U21(X1, X2) -> proper# X1, proper# cons(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X1, proper# cons(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X1, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# U42(X1, X2) -> proper# X1, proper# isNatKind X -> proper# X) (proper# U42(X1, X2) -> proper# X1, proper# isNatKind X -> isNatKind# proper X) (proper# U42(X1, X2) -> proper# X1, proper# isNatIListKind X -> proper# X) (proper# U42(X1, X2) -> proper# X1, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U42(X1, X2) -> proper# X1, proper# and(X1, X2) -> proper# X2) (proper# U42(X1, X2) -> proper# X1, proper# and(X1, X2) -> proper# X1) (proper# U42(X1, X2) -> proper# X1, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U42(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U42(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U42(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U42(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U42(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U42(X1, X2) -> proper# X1, proper# take(X1, X2) -> proper# X2) (proper# U42(X1, X2) -> proper# X1, proper# take(X1, X2) -> proper# X1) (proper# U42(X1, X2) -> proper# X1, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U42(X1, X2) -> proper# X1, proper# U81 X -> proper# X) (proper# U42(X1, X2) -> proper# X1, proper# U81 X -> U81# proper X) (proper# U42(X1, X2) -> proper# X1, proper# U71(X1, X2) -> proper# X2) (proper# U42(X1, X2) -> proper# X1, proper# U71(X1, X2) -> proper# X1) (proper# U42(X1, X2) -> proper# X1, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U42(X1, X2) -> proper# X1, proper# length X -> proper# X) (proper# U42(X1, X2) -> proper# X1, proper# length X -> length# proper X) (proper# U42(X1, X2) -> proper# X1, proper# s X -> proper# X) (proper# U42(X1, X2) -> proper# X1, proper# s X -> s# proper X) (proper# U42(X1, X2) -> proper# X1, proper# U63 X -> proper# X) (proper# U42(X1, X2) -> proper# X1, proper# U63 X -> U63# proper X) (proper# U42(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X3) (proper# U42(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2) (proper# U42(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X1) (proper# U42(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U42(X1, X2) -> proper# X1, proper# U62(X1, X2) -> proper# X2) (proper# U42(X1, X2) -> proper# X1, proper# U62(X1, X2) -> proper# X1) (proper# U42(X1, X2) -> proper# X1, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U42(X1, X2) -> proper# X1, proper# U53 X -> proper# X) (proper# U42(X1, X2) -> proper# X1, proper# U53 X -> U53# proper X) (proper# U42(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X3) (proper# U42(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X2) (proper# U42(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X1) (proper# U42(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U42(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2) (proper# U42(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X1) (proper# U42(X1, X2) -> proper# X1, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U42(X1, X2) -> proper# X1, proper# isNatIList X -> proper# X) (proper# U42(X1, X2) -> proper# X1, proper# isNatIList X -> isNatIList# proper X) (proper# U42(X1, X2) -> proper# X1, proper# U43 X -> proper# X) (proper# U42(X1, X2) -> proper# X1, proper# U43 X -> U43# proper X) (proper# U42(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X3) (proper# U42(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X2) (proper# U42(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X1) (proper# U42(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U42(X1, X2) -> proper# X1, proper# U42(X1, X2) -> proper# X2) (proper# U42(X1, X2) -> proper# X1, proper# U42(X1, X2) -> proper# X1) (proper# U42(X1, X2) -> proper# X1, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U42(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2) (proper# U42(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X1) (proper# U42(X1, X2) -> proper# X1, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U42(X1, X2) -> proper# X1, proper# U32 X -> proper# X) (proper# U42(X1, X2) -> proper# X1, proper# U32 X -> U32# proper X) (proper# U42(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2) (proper# U42(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X1) (proper# U42(X1, X2) -> proper# X1, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U42(X1, X2) -> proper# X1, proper# isNat X -> proper# X) (proper# U42(X1, X2) -> proper# X1, proper# isNat X -> isNat# proper X) (proper# U42(X1, X2) -> proper# X1, proper# U22 X -> proper# X) (proper# U42(X1, X2) -> proper# X1, proper# U22 X -> U22# proper X) (proper# U42(X1, X2) -> proper# X1, proper# U11(X1, X2) -> proper# X2) (proper# U42(X1, X2) -> proper# X1, proper# U11(X1, X2) -> proper# X1) (proper# U42(X1, X2) -> proper# X1, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U42(X1, X2) -> proper# X1, proper# isNatList X -> proper# X) (proper# U42(X1, X2) -> proper# X1, proper# isNatList X -> isNatList# proper X) (proper# U42(X1, X2) -> proper# X1, proper# U12 X -> proper# X) (proper# U42(X1, X2) -> proper# X1, proper# U12 X -> U12# proper X) (proper# U42(X1, X2) -> proper# X1, proper# cons(X1, X2) -> proper# X2) (proper# U42(X1, X2) -> proper# X1, proper# cons(X1, X2) -> proper# X1) (proper# U42(X1, X2) -> proper# X1, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X1, proper# isNatKind X -> proper# X) (proper# U52(X1, X2) -> proper# X1, proper# isNatKind X -> isNatKind# proper X) (proper# U52(X1, X2) -> proper# X1, proper# isNatIListKind X -> proper# X) (proper# U52(X1, X2) -> proper# X1, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U52(X1, X2) -> proper# X1, proper# and(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X1, proper# and(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X1, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U52(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U52(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U52(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U52(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U52(X1, X2) -> proper# X1, proper# take(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X1, proper# take(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X1, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X1, proper# U81 X -> proper# X) (proper# U52(X1, X2) -> proper# X1, proper# U81 X -> U81# proper X) (proper# U52(X1, X2) -> proper# X1, proper# U71(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X1, proper# U71(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X1, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X1, proper# length X -> proper# X) (proper# U52(X1, X2) -> proper# X1, proper# length X -> length# proper X) (proper# U52(X1, X2) -> proper# X1, proper# s X -> proper# X) (proper# U52(X1, X2) -> proper# X1, proper# s X -> s# proper X) (proper# U52(X1, X2) -> proper# X1, proper# U63 X -> proper# X) (proper# U52(X1, X2) -> proper# X1, proper# U63 X -> U63# proper X) (proper# U52(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X3) (proper# U52(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2) (proper# U52(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X1) (proper# U52(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U52(X1, X2) -> proper# X1, proper# U62(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X1, proper# U62(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X1, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X1, proper# U53 X -> proper# X) (proper# U52(X1, X2) -> proper# X1, proper# U53 X -> U53# proper X) (proper# U52(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X3) (proper# U52(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X2) (proper# U52(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X1) (proper# U52(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U52(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X1, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X1, proper# isNatIList X -> proper# X) (proper# U52(X1, X2) -> proper# X1, proper# isNatIList X -> isNatIList# proper X) (proper# U52(X1, X2) -> proper# X1, proper# U43 X -> proper# X) (proper# U52(X1, X2) -> proper# X1, proper# U43 X -> U43# proper X) (proper# U52(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X3) (proper# U52(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X2) (proper# U52(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X1) (proper# U52(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U52(X1, X2) -> proper# X1, proper# U42(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X1, proper# U42(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X1, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X1, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X1, proper# U32 X -> proper# X) (proper# U52(X1, X2) -> proper# X1, proper# U32 X -> U32# proper X) (proper# U52(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X1, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X1, proper# isNat X -> proper# X) (proper# U52(X1, X2) -> proper# X1, proper# isNat X -> isNat# proper X) (proper# U52(X1, X2) -> proper# X1, proper# U22 X -> proper# X) (proper# U52(X1, X2) -> proper# X1, proper# U22 X -> U22# proper X) (proper# U52(X1, X2) -> proper# X1, proper# U11(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X1, proper# U11(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X1, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X1, proper# isNatList X -> proper# X) (proper# U52(X1, X2) -> proper# X1, proper# isNatList X -> isNatList# proper X) (proper# U52(X1, X2) -> proper# X1, proper# U12 X -> proper# X) (proper# U52(X1, X2) -> proper# X1, proper# U12 X -> U12# proper X) (proper# U52(X1, X2) -> proper# X1, proper# cons(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X1, proper# cons(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X1, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# U62(X1, X2) -> proper# X1, proper# isNatKind X -> proper# X) (proper# U62(X1, X2) -> proper# X1, proper# isNatKind X -> isNatKind# proper X) (proper# U62(X1, X2) -> proper# X1, proper# isNatIListKind X -> proper# X) (proper# U62(X1, X2) -> proper# X1, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U62(X1, X2) -> proper# X1, proper# and(X1, X2) -> proper# X2) (proper# U62(X1, X2) -> proper# X1, proper# and(X1, X2) -> proper# X1) (proper# U62(X1, X2) -> proper# X1, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U62(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U62(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U62(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U62(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U62(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U62(X1, X2) -> proper# X1, proper# take(X1, X2) -> proper# X2) (proper# U62(X1, X2) -> proper# X1, proper# take(X1, X2) -> proper# X1) (proper# U62(X1, X2) -> proper# X1, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U62(X1, X2) -> proper# X1, proper# U81 X -> proper# X) (proper# U62(X1, X2) -> proper# X1, proper# U81 X -> U81# proper X) (proper# U62(X1, X2) -> proper# X1, proper# U71(X1, X2) -> proper# X2) (proper# U62(X1, X2) -> proper# X1, proper# U71(X1, X2) -> proper# X1) (proper# U62(X1, X2) -> proper# X1, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U62(X1, X2) -> proper# X1, proper# length X -> proper# X) (proper# U62(X1, X2) -> proper# X1, proper# length X -> length# proper X) (proper# U62(X1, X2) -> proper# X1, proper# s X -> proper# X) (proper# U62(X1, X2) -> proper# X1, proper# s X -> s# proper X) (proper# U62(X1, X2) -> proper# X1, proper# U63 X -> proper# X) (proper# U62(X1, X2) -> proper# X1, proper# U63 X -> U63# proper X) (proper# U62(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X3) (proper# U62(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2) (proper# U62(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X1) (proper# U62(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U62(X1, X2) -> proper# X1, proper# U62(X1, X2) -> proper# X2) (proper# U62(X1, X2) -> proper# X1, proper# U62(X1, X2) -> proper# X1) (proper# U62(X1, X2) -> proper# X1, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U62(X1, X2) -> proper# X1, proper# U53 X -> proper# X) (proper# U62(X1, X2) -> proper# X1, proper# U53 X -> U53# proper X) (proper# U62(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X3) (proper# U62(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X2) (proper# U62(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X1) (proper# U62(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U62(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2) (proper# U62(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X1) (proper# U62(X1, X2) -> proper# X1, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U62(X1, X2) -> proper# X1, proper# isNatIList X -> proper# X) (proper# U62(X1, X2) -> proper# X1, proper# isNatIList X -> isNatIList# proper X) (proper# U62(X1, X2) -> proper# X1, proper# U43 X -> proper# X) (proper# U62(X1, X2) -> proper# X1, proper# U43 X -> U43# proper X) (proper# U62(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X3) (proper# U62(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X2) (proper# U62(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X1) (proper# U62(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U62(X1, X2) -> proper# X1, proper# U42(X1, X2) -> proper# X2) (proper# U62(X1, X2) -> proper# X1, proper# U42(X1, X2) -> proper# X1) (proper# U62(X1, X2) -> proper# X1, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U62(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2) (proper# U62(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X1) (proper# U62(X1, X2) -> proper# X1, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U62(X1, X2) -> proper# X1, proper# U32 X -> proper# X) (proper# U62(X1, X2) -> proper# X1, proper# U32 X -> U32# proper X) (proper# U62(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2) (proper# U62(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X1) (proper# U62(X1, X2) -> proper# X1, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U62(X1, X2) -> proper# X1, proper# isNat X -> proper# X) (proper# U62(X1, X2) -> proper# X1, proper# isNat X -> isNat# proper X) (proper# U62(X1, X2) -> proper# X1, proper# U22 X -> proper# X) (proper# U62(X1, X2) -> proper# X1, proper# U22 X -> U22# proper X) (proper# U62(X1, X2) -> proper# X1, proper# U11(X1, X2) -> proper# X2) (proper# U62(X1, X2) -> proper# X1, proper# U11(X1, X2) -> proper# X1) (proper# U62(X1, X2) -> proper# X1, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U62(X1, X2) -> proper# X1, proper# isNatList X -> proper# X) (proper# U62(X1, X2) -> proper# X1, proper# isNatList X -> isNatList# proper X) (proper# U62(X1, X2) -> proper# X1, proper# U12 X -> proper# X) (proper# U62(X1, X2) -> proper# X1, proper# U12 X -> U12# proper X) (proper# U62(X1, X2) -> proper# X1, proper# cons(X1, X2) -> proper# X2) (proper# U62(X1, X2) -> proper# X1, proper# cons(X1, X2) -> proper# X1) (proper# U62(X1, X2) -> proper# X1, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# U71(X1, X2) -> proper# X1, proper# isNatKind X -> proper# X) (proper# U71(X1, X2) -> proper# X1, proper# isNatKind X -> isNatKind# proper X) (proper# U71(X1, X2) -> proper# X1, proper# isNatIListKind X -> proper# X) (proper# U71(X1, X2) -> proper# X1, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U71(X1, X2) -> proper# X1, proper# and(X1, X2) -> proper# X2) (proper# U71(X1, X2) -> proper# X1, proper# and(X1, X2) -> proper# X1) (proper# U71(X1, X2) -> proper# X1, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U71(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U71(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U71(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U71(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U71(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U71(X1, X2) -> proper# X1, proper# take(X1, X2) -> proper# X2) (proper# U71(X1, X2) -> proper# X1, proper# take(X1, X2) -> proper# X1) (proper# U71(X1, X2) -> proper# X1, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U71(X1, X2) -> proper# X1, proper# U81 X -> proper# X) (proper# U71(X1, X2) -> proper# X1, proper# U81 X -> U81# proper X) (proper# U71(X1, X2) -> proper# X1, proper# U71(X1, X2) -> proper# X2) (proper# U71(X1, X2) -> proper# X1, proper# U71(X1, X2) -> proper# X1) (proper# U71(X1, X2) -> proper# X1, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U71(X1, X2) -> proper# X1, proper# length X -> proper# X) (proper# U71(X1, X2) -> proper# X1, proper# length X -> length# proper X) (proper# U71(X1, X2) -> proper# X1, proper# s X -> proper# X) (proper# U71(X1, X2) -> proper# X1, proper# s X -> s# proper X) (proper# U71(X1, X2) -> proper# X1, proper# U63 X -> proper# X) (proper# U71(X1, X2) -> proper# X1, proper# U63 X -> U63# proper X) (proper# U71(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X3) (proper# U71(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2) (proper# U71(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X1) (proper# U71(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U71(X1, X2) -> proper# X1, proper# U62(X1, X2) -> proper# X2) (proper# U71(X1, X2) -> proper# X1, proper# U62(X1, X2) -> proper# X1) (proper# U71(X1, X2) -> proper# X1, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U71(X1, X2) -> proper# X1, proper# U53 X -> proper# X) (proper# U71(X1, X2) -> proper# X1, proper# U53 X -> U53# proper X) (proper# U71(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X3) (proper# U71(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X2) (proper# U71(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X1) (proper# U71(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U71(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2) (proper# U71(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X1) (proper# U71(X1, X2) -> proper# X1, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U71(X1, X2) -> proper# X1, proper# isNatIList X -> proper# X) (proper# U71(X1, X2) -> proper# X1, proper# isNatIList X -> isNatIList# proper X) (proper# U71(X1, X2) -> proper# X1, proper# U43 X -> proper# X) (proper# U71(X1, X2) -> proper# X1, proper# U43 X -> U43# proper X) (proper# U71(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X3) (proper# U71(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X2) (proper# U71(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X1) (proper# U71(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U71(X1, X2) -> proper# X1, proper# U42(X1, X2) -> proper# X2) (proper# U71(X1, X2) -> proper# X1, proper# U42(X1, X2) -> proper# X1) (proper# U71(X1, X2) -> proper# X1, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U71(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2) (proper# U71(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X1) (proper# U71(X1, X2) -> proper# X1, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U71(X1, X2) -> proper# X1, proper# U32 X -> proper# X) (proper# U71(X1, X2) -> proper# X1, proper# U32 X -> U32# proper X) (proper# U71(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2) (proper# U71(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X1) (proper# U71(X1, X2) -> proper# X1, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U71(X1, X2) -> proper# X1, proper# isNat X -> proper# X) (proper# U71(X1, X2) -> proper# X1, proper# isNat X -> isNat# proper X) (proper# U71(X1, X2) -> proper# X1, proper# U22 X -> proper# X) (proper# U71(X1, X2) -> proper# X1, proper# U22 X -> U22# proper X) (proper# U71(X1, X2) -> proper# X1, proper# U11(X1, X2) -> proper# X2) (proper# U71(X1, X2) -> proper# X1, proper# U11(X1, X2) -> proper# X1) (proper# U71(X1, X2) -> proper# X1, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U71(X1, X2) -> proper# X1, proper# isNatList X -> proper# X) (proper# U71(X1, X2) -> proper# X1, proper# isNatList X -> isNatList# proper X) (proper# U71(X1, X2) -> proper# X1, proper# U12 X -> proper# X) (proper# U71(X1, X2) -> proper# X1, proper# U12 X -> U12# proper X) (proper# U71(X1, X2) -> proper# X1, proper# cons(X1, X2) -> proper# X2) (proper# U71(X1, X2) -> proper# X1, proper# cons(X1, X2) -> proper# X1) (proper# U71(X1, X2) -> proper# X1, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# isNatKind X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# isNatKind X -> isNatKind# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# isNatIListKind X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# and(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# and(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# take(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# take(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U81 X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U81 X -> U81# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U71(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U71(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# length X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# length X -> length# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# s X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# s X -> s# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U63 X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U63 X -> U63# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X3) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U62(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U62(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U53 X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U53 X -> U53# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X3) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U52(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U52(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# isNatIList X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# isNatIList X -> isNatIList# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U43 X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U43 X -> U43# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X3) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U42(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U42(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U31(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U31(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U32 X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U32 X -> U32# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U21(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U21(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# isNat X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# isNat X -> isNat# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U22 X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U22 X -> U22# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U11(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U11(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# isNatList X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# isNatList X -> isNatList# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U12 X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U12 X -> U12# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# cons(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# cons(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X1, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (active# U41(tt(), V1, V2) -> U42#(isNat V1, V2), U42#(ok X1, ok X2) -> U42#(X1, X2)) (active# U41(tt(), V1, V2) -> U42#(isNat V1, V2), U42#(mark X1, X2) -> U42#(X1, X2)) (active# U61(tt(), V1, V2) -> U62#(isNat V1, V2), U62#(ok X1, ok X2) -> U62#(X1, X2)) (active# U61(tt(), V1, V2) -> U62#(isNat V1, V2), U62#(mark X1, X2) -> U62#(X1, X2)) (cons#(ok X1, ok X2) -> cons#(X1, X2), cons#(ok X1, ok X2) -> cons#(X1, X2)) (cons#(ok X1, ok X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2)) (U11#(ok X1, ok X2) -> U11#(X1, X2), U11#(ok X1, ok X2) -> U11#(X1, X2)) (U11#(ok X1, ok X2) -> U11#(X1, X2), U11#(mark X1, X2) -> U11#(X1, X2)) (U21#(ok X1, ok X2) -> U21#(X1, X2), U21#(ok X1, ok X2) -> U21#(X1, X2)) (U21#(ok X1, ok X2) -> U21#(X1, X2), U21#(mark X1, X2) -> U21#(X1, X2)) (U31#(ok X1, ok X2) -> U31#(X1, X2), U31#(ok X1, ok X2) -> U31#(X1, X2)) (U31#(ok X1, ok X2) -> U31#(X1, X2), U31#(mark X1, X2) -> U31#(X1, X2)) (U42#(ok X1, ok X2) -> U42#(X1, X2), U42#(ok X1, ok X2) -> U42#(X1, X2)) (U42#(ok X1, ok X2) -> U42#(X1, X2), U42#(mark X1, X2) -> U42#(X1, X2)) (U52#(ok X1, ok X2) -> U52#(X1, X2), U52#(ok X1, ok X2) -> U52#(X1, X2)) (U52#(ok X1, ok X2) -> U52#(X1, X2), U52#(mark X1, X2) -> U52#(X1, X2)) (U62#(ok X1, ok X2) -> U62#(X1, X2), U62#(ok X1, ok X2) -> U62#(X1, X2)) (U62#(ok X1, ok X2) -> U62#(X1, X2), U62#(mark X1, X2) -> U62#(X1, X2)) (U71#(ok X1, ok X2) -> U71#(X1, X2), U71#(ok X1, ok X2) -> U71#(X1, X2)) (U71#(ok X1, ok X2) -> U71#(X1, X2), U71#(mark X1, X2) -> U71#(X1, X2)) (take#(mark X1, X2) -> take#(X1, X2), take#(ok X1, ok X2) -> take#(X1, X2)) (take#(mark X1, X2) -> take#(X1, X2), take#(mark X1, X2) -> take#(X1, X2)) (take#(mark X1, X2) -> take#(X1, X2), take#(X1, mark X2) -> take#(X1, X2)) (and#(mark X1, X2) -> and#(X1, X2), and#(ok X1, ok X2) -> and#(X1, X2)) (and#(mark X1, X2) -> and#(X1, X2), and#(mark X1, X2) -> and#(X1, X2)) (active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2), U51#(ok X1, ok X2, ok X3) -> U51#(X1, X2, X3)) (active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2), U51#(mark X1, X2, X3) -> U51#(X1, X2, X3)) (active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2), U41#(ok X1, ok X2, ok X3) -> U41#(X1, X2, X3)) (active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2), U41#(mark X1, X2, X3) -> U41#(X1, X2, X3)) (active# isNatIList V -> isNatIListKind# V, isNatIListKind# ok X -> isNatIListKind# X) (proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3), U51#(ok X1, ok X2, ok X3) -> U51#(X1, X2, X3)) (proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3), U51#(mark X1, X2, X3) -> U51#(X1, X2, X3)) (active# U12 X -> U12# active X, U12# ok X -> U12# X) (active# U12 X -> U12# active X, U12# mark X -> U12# X) (active# U32 X -> U32# active X, U32# ok X -> U32# X) (active# U32 X -> U32# active X, U32# mark X -> U32# X) (active# U53 X -> U53# active X, U53# ok X -> U53# X) (active# U53 X -> U53# active X, U53# mark X -> U53# X) (active# s X -> s# active X, s# ok X -> s# X) (active# s X -> s# active X, s# mark X -> s# X) (active# U81 X -> U81# active X, U81# ok X -> U81# X) (active# U81 X -> U81# active X, U81# mark X -> U81# X) (proper# isNatList X -> isNatList# proper X, isNatList# ok X -> isNatList# X) (proper# isNat X -> isNat# proper X, isNat# ok X -> isNat# X) (proper# U43 X -> U43# proper X, U43# ok X -> U43# X) (proper# U43 X -> U43# proper X, U43# mark X -> U43# X) (proper# U53 X -> U53# proper X, U53# ok X -> U53# X) (proper# U53 X -> U53# proper X, U53# mark X -> U53# X) (proper# s X -> s# proper X, s# ok X -> s# X) (proper# s X -> s# proper X, s# mark X -> s# X) (proper# U81 X -> U81# proper X, U81# ok X -> U81# X) (proper# U81 X -> U81# proper X, U81# mark X -> U81# X) (proper# isNatKind X -> isNatKind# proper X, isNatKind# ok X -> isNatKind# X) (top# ok X -> top# active X, top# ok X -> top# active X) (top# ok X -> top# active X, top# ok X -> active# X) (top# ok X -> top# active X, top# mark X -> top# proper X) (top# ok X -> top# active X, top# mark X -> proper# X) (active# U42(tt(), V2) -> U43# isNatIList V2, U43# ok X -> U43# X) (active# U42(tt(), V2) -> U43# isNatIList V2, U43# mark X -> U43# X) (active# U62(tt(), V2) -> U63# isNatIList V2, U63# ok X -> U63# X) (active# U62(tt(), V2) -> U63# isNatIList V2, U63# mark X -> U63# X) (active# U11(tt(), V1) -> U12# isNatList V1, U12# ok X -> U12# X) (active# U11(tt(), V1) -> U12# isNatList V1, U12# mark X -> U12# X) (active# take(0(), IL) -> isNatIList# IL, isNatIList# ok X -> isNatIList# X) (active# take(s M, cons(N, IL)) -> isNatIList# IL, isNatIList# ok X -> isNatIList# X) (active# U91(X1, X2, X3, X4) -> U91#(active X1, X2, X3, X4), U91#(ok X1, ok X2, ok X3, ok X4) -> U91#(X1, X2, X3, X4)) (active# U91(X1, X2, X3, X4) -> U91#(active X1, X2, X3, X4), U91#(mark X1, X2, X3, X4) -> U91#(X1, X2, X3, X4)) (U91#(ok X1, ok X2, ok X3, ok X4) -> U91#(X1, X2, X3, X4), U91#(ok X1, ok X2, ok X3, ok X4) -> U91#(X1, X2, X3, X4)) (U91#(ok X1, ok X2, ok X3, ok X4) -> U91#(X1, X2, X3, X4), U91#(mark X1, X2, X3, X4) -> U91#(X1, X2, X3, X4)) (active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), and#(ok X1, ok X2) -> and#(X1, X2)) (active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), and#(mark X1, X2) -> and#(X1, X2)) (active# length cons(N, L) -> and#(isNatList L, isNatIListKind L), and#(ok X1, ok X2) -> and#(X1, X2)) (active# length cons(N, L) -> and#(isNatList L, isNatIListKind L), and#(mark X1, X2) -> and#(X1, X2)) (active# take(X1, X2) -> take#(X1, active X2), take#(ok X1, ok X2) -> take#(X1, X2)) (active# take(X1, X2) -> take#(X1, active X2), take#(mark X1, X2) -> take#(X1, X2)) (active# take(X1, X2) -> take#(X1, active X2), take#(X1, mark X2) -> take#(X1, X2)) (active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N), and#(ok X1, ok X2) -> and#(X1, X2)) (active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N), and#(mark X1, X2) -> and#(X1, X2)) (active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL), and#(ok X1, ok X2) -> and#(X1, X2)) (active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL), and#(mark X1, X2) -> and#(X1, X2)) (active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), and#(ok X1, ok X2) -> and#(X1, X2)) (active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), and#(mark X1, X2) -> and#(X1, X2)) (proper# U11(X1, X2) -> U11#(proper X1, proper X2), U11#(ok X1, ok X2) -> U11#(X1, X2)) (proper# U11(X1, X2) -> U11#(proper X1, proper X2), U11#(mark X1, X2) -> U11#(X1, X2)) (proper# U31(X1, X2) -> U31#(proper X1, proper X2), U31#(ok X1, ok X2) -> U31#(X1, X2)) (proper# U31(X1, X2) -> U31#(proper X1, proper X2), U31#(mark X1, X2) -> U31#(X1, X2)) (proper# U52(X1, X2) -> U52#(proper X1, proper X2), U52#(ok X1, ok X2) -> U52#(X1, X2)) (proper# U52(X1, X2) -> U52#(proper X1, proper X2), U52#(mark X1, X2) -> U52#(X1, X2)) (proper# U71(X1, X2) -> U71#(proper X1, proper X2), U71#(ok X1, ok X2) -> U71#(X1, X2)) (proper# U71(X1, X2) -> U71#(proper X1, proper X2), U71#(mark X1, X2) -> U71#(X1, X2)) (proper# and(X1, X2) -> and#(proper X1, proper X2), and#(ok X1, ok X2) -> and#(X1, X2)) (proper# and(X1, X2) -> and#(proper X1, proper X2), and#(mark X1, X2) -> and#(X1, X2)) (active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), U91#(ok X1, ok X2, ok X3, ok X4) -> U91#(X1, X2, X3, X4)) (active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), U91#(mark X1, X2, X3, X4) -> U91#(X1, X2, X3, X4)) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# isNatKind X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# isNatKind X -> isNatKind# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# isNatIListKind X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# and(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# and(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# take(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# take(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U81 X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U81 X -> U81# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U71(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U71(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# length X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# length X -> length# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# s X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# s X -> s# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U63 X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U63 X -> U63# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U61(X1, X2, X3) -> proper# X3) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U61(X1, X2, X3) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U61(X1, X2, X3) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U62(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U62(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U53 X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U53 X -> U53# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U51(X1, X2, X3) -> proper# X3) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U51(X1, X2, X3) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U51(X1, X2, X3) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U52(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U52(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# isNatIList X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# isNatIList X -> isNatIList# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U43 X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U43 X -> U43# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U41(X1, X2, X3) -> proper# X3) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U41(X1, X2, X3) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U41(X1, X2, X3) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U42(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U42(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U31(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U31(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U32 X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U32 X -> U32# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U21(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U21(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# isNat X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# isNat X -> isNat# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U22 X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U22 X -> U22# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U11(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U11(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# isNatList X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# isNatList X -> isNatList# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U12 X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# U12 X -> U12# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# cons(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# cons(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X4, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (active# length cons(N, L) -> isNat# N, isNat# ok X -> isNat# X) (active# take(s M, cons(N, IL)) -> isNat# N, isNat# ok X -> isNat# X) (active# take(X1, X2) -> active# X2, active# isNatKind length V1 -> isNatIListKind# V1) (active# take(X1, X2) -> active# X2, active# isNatKind s V1 -> isNatKind# V1) (active# take(X1, X2) -> active# X2, active# isNatIListKind take(V1, V2) -> isNatKind# V1) (active# take(X1, X2) -> active# X2, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2) (active# take(X1, X2) -> active# X2, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# take(X1, X2) -> active# X2, active# isNatIListKind cons(V1, V2) -> isNatKind# V1) (active# take(X1, X2) -> active# X2, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2) (active# take(X1, X2) -> active# X2, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# take(X1, X2) -> active# X2, active# and(X1, X2) -> and#(active X1, X2)) (active# take(X1, X2) -> active# X2, active# and(X1, X2) -> active# X1) (active# take(X1, X2) -> active# X2, active# U91(tt(), IL, M, N) -> take#(M, IL)) (active# take(X1, X2) -> active# X2, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL))) (active# take(X1, X2) -> active# X2, active# U91(X1, X2, X3, X4) -> U91#(active X1, X2, X3, X4)) (active# take(X1, X2) -> active# X2, active# U91(X1, X2, X3, X4) -> active# X1) (active# take(X1, X2) -> active# X2, active# take(s M, cons(N, IL)) -> isNatKind# M) (active# take(X1, X2) -> active# X2, active# take(s M, cons(N, IL)) -> isNatKind# N) (active# take(X1, X2) -> active# X2, active# take(s M, cons(N, IL)) -> isNatIListKind# IL) (active# take(X1, X2) -> active# X2, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))) (active# take(X1, X2) -> active# X2, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (active# take(X1, X2) -> active# X2, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL)) (active# take(X1, X2) -> active# X2, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M)) (active# take(X1, X2) -> active# X2, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N)) (active# take(X1, X2) -> active# X2, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)) (active# take(X1, X2) -> active# X2, active# take(s M, cons(N, IL)) -> isNatIList# IL) (active# take(X1, X2) -> active# X2, active# take(s M, cons(N, IL)) -> isNat# M) (active# take(X1, X2) -> active# X2, active# take(s M, cons(N, IL)) -> isNat# N) (active# take(X1, X2) -> active# X2, active# take(0(), IL) -> isNatIListKind# IL) (active# take(X1, X2) -> active# X2, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL)) (active# take(X1, X2) -> active# X2, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL)) (active# take(X1, X2) -> active# X2, active# take(0(), IL) -> isNatIList# IL) (active# take(X1, X2) -> active# X2, active# take(X1, X2) -> take#(active X1, X2)) (active# take(X1, X2) -> active# X2, active# take(X1, X2) -> take#(X1, active X2)) (active# take(X1, X2) -> active# X2, active# take(X1, X2) -> active# X2) (active# take(X1, X2) -> active# X2, active# take(X1, X2) -> active# X1) (active# take(X1, X2) -> active# X2, active# U81 X -> U81# active X) (active# take(X1, X2) -> active# X2, active# U81 X -> active# X) (active# take(X1, X2) -> active# X2, active# U71(tt(), L) -> length# L) (active# take(X1, X2) -> active# X2, active# U71(tt(), L) -> s# length L) (active# take(X1, X2) -> active# X2, active# U71(X1, X2) -> U71#(active X1, X2)) (active# take(X1, X2) -> active# X2, active# U71(X1, X2) -> active# X1) (active# take(X1, X2) -> active# X2, active# length cons(N, L) -> isNatKind# N) (active# take(X1, X2) -> active# X2, active# length cons(N, L) -> isNatIListKind# L) (active# take(X1, X2) -> active# X2, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N))) (active# take(X1, X2) -> active# X2, active# length cons(N, L) -> and#(isNat N, isNatKind N)) (active# take(X1, X2) -> active# X2, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L)) (active# take(X1, X2) -> active# X2, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L)) (active# take(X1, X2) -> active# X2, active# length cons(N, L) -> isNat# N) (active# take(X1, X2) -> active# X2, active# length cons(N, L) -> isNatList# L) (active# take(X1, X2) -> active# X2, active# length X -> length# active X) (active# take(X1, X2) -> active# X2, active# length X -> active# X) (active# take(X1, X2) -> active# X2, active# s X -> s# active X) (active# take(X1, X2) -> active# X2, active# s X -> active# X) (active# take(X1, X2) -> active# X2, active# U63 X -> U63# active X) (active# take(X1, X2) -> active# X2, active# U63 X -> active# X) (active# take(X1, X2) -> active# X2, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2)) (active# take(X1, X2) -> active# X2, active# U61(tt(), V1, V2) -> isNat# V1) (active# take(X1, X2) -> active# X2, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# take(X1, X2) -> active# X2, active# U61(X1, X2, X3) -> active# X1) (active# take(X1, X2) -> active# X2, active# U62(tt(), V2) -> U63# isNatIList V2) (active# take(X1, X2) -> active# X2, active# U62(tt(), V2) -> isNatIList# V2) (active# take(X1, X2) -> active# X2, active# U62(X1, X2) -> U62#(active X1, X2)) (active# take(X1, X2) -> active# X2, active# U62(X1, X2) -> active# X1) (active# take(X1, X2) -> active# X2, active# U53 X -> U53# active X) (active# take(X1, X2) -> active# X2, active# U53 X -> active# X) (active# take(X1, X2) -> active# X2, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2)) (active# take(X1, X2) -> active# X2, active# U51(tt(), V1, V2) -> isNat# V1) (active# take(X1, X2) -> active# X2, active# U51(X1, X2, X3) -> U51#(active X1, X2, X3)) (active# take(X1, X2) -> active# X2, active# U51(X1, X2, X3) -> active# X1) (active# take(X1, X2) -> active# X2, active# U52(tt(), V2) -> U53# isNatList V2) (active# take(X1, X2) -> active# X2, active# U52(tt(), V2) -> isNatList# V2) (active# take(X1, X2) -> active# X2, active# U52(X1, X2) -> U52#(active X1, X2)) (active# take(X1, X2) -> active# X2, active# U52(X1, X2) -> active# X1) (active# take(X1, X2) -> active# X2, active# isNatIList cons(V1, V2) -> isNatKind# V1) (active# take(X1, X2) -> active# X2, active# isNatIList cons(V1, V2) -> isNatIListKind# V2) (active# take(X1, X2) -> active# X2, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# take(X1, X2) -> active# X2, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# take(X1, X2) -> active# X2, active# isNatIList V -> isNatIListKind# V) (active# take(X1, X2) -> active# X2, active# isNatIList V -> U31#(isNatIListKind V, V)) (active# take(X1, X2) -> active# X2, active# U43 X -> U43# active X) (active# take(X1, X2) -> active# X2, active# U43 X -> active# X) (active# take(X1, X2) -> active# X2, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2)) (active# take(X1, X2) -> active# X2, active# U41(tt(), V1, V2) -> isNat# V1) (active# take(X1, X2) -> active# X2, active# U41(X1, X2, X3) -> U41#(active X1, X2, X3)) (active# take(X1, X2) -> active# X2, active# U41(X1, X2, X3) -> active# X1) (active# take(X1, X2) -> active# X2, active# U42(tt(), V2) -> isNatIList# V2) (active# take(X1, X2) -> active# X2, active# U42(tt(), V2) -> U43# isNatIList V2) (active# take(X1, X2) -> active# X2, active# U42(X1, X2) -> U42#(active X1, X2)) (active# take(X1, X2) -> active# X2, active# U42(X1, X2) -> active# X1) (active# take(X1, X2) -> active# X2, active# U31(tt(), V) -> U32# isNatList V) (active# take(X1, X2) -> active# X2, active# U31(tt(), V) -> isNatList# V) (active# take(X1, X2) -> active# X2, active# U31(X1, X2) -> U31#(active X1, X2)) (active# take(X1, X2) -> active# X2, active# U31(X1, X2) -> active# X1) (active# take(X1, X2) -> active# X2, active# U32 X -> U32# active X) (active# take(X1, X2) -> active# X2, active# U32 X -> active# X) (active# take(X1, X2) -> active# X2, active# U21(tt(), V1) -> isNat# V1) (active# take(X1, X2) -> active# X2, active# U21(tt(), V1) -> U22# isNat V1) (active# take(X1, X2) -> active# X2, active# U21(X1, X2) -> U21#(active X1, X2)) (active# take(X1, X2) -> active# X2, active# U21(X1, X2) -> active# X1) (active# take(X1, X2) -> active# X2, active# isNat length V1 -> isNatIListKind# V1) (active# take(X1, X2) -> active# X2, active# isNat length V1 -> U11#(isNatIListKind V1, V1)) (active# take(X1, X2) -> active# X2, active# isNat s V1 -> isNatKind# V1) (active# take(X1, X2) -> active# X2, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# take(X1, X2) -> active# X2, active# U22 X -> U22# active X) (active# take(X1, X2) -> active# X2, active# U22 X -> active# X) (active# take(X1, X2) -> active# X2, active# U11(tt(), V1) -> isNatList# V1) (active# take(X1, X2) -> active# X2, active# U11(tt(), V1) -> U12# isNatList V1) (active# take(X1, X2) -> active# X2, active# U11(X1, X2) -> U11#(active X1, X2)) (active# take(X1, X2) -> active# X2, active# U11(X1, X2) -> active# X1) (active# take(X1, X2) -> active# X2, active# isNatList take(V1, V2) -> isNatKind# V1) (active# take(X1, X2) -> active# X2, active# isNatList take(V1, V2) -> isNatIListKind# V2) (active# take(X1, X2) -> active# X2, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# take(X1, X2) -> active# X2, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# take(X1, X2) -> active# X2, active# isNatList cons(V1, V2) -> isNatKind# V1) (active# take(X1, X2) -> active# X2, active# isNatList cons(V1, V2) -> isNatIListKind# V2) (active# take(X1, X2) -> active# X2, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# take(X1, X2) -> active# X2, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# take(X1, X2) -> active# X2, active# U12 X -> U12# active X) (active# take(X1, X2) -> active# X2, active# U12 X -> active# X) (active# take(X1, X2) -> active# X2, active# zeros() -> cons#(0(), zeros())) (active# take(X1, X2) -> active# X2, active# cons(X1, X2) -> active# X1) (active# take(X1, X2) -> active# X2, active# cons(X1, X2) -> cons#(active X1, X2)) (proper# U11(X1, X2) -> proper# X2, proper# isNatKind X -> proper# X) (proper# U11(X1, X2) -> proper# X2, proper# isNatKind X -> isNatKind# proper X) (proper# U11(X1, X2) -> proper# X2, proper# isNatIListKind X -> proper# X) (proper# U11(X1, X2) -> proper# X2, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U11(X1, X2) -> proper# X2, proper# and(X1, X2) -> proper# X2) (proper# U11(X1, X2) -> proper# X2, proper# and(X1, X2) -> proper# X1) (proper# U11(X1, X2) -> proper# X2, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U11(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U11(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U11(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U11(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U11(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U11(X1, X2) -> proper# X2, proper# take(X1, X2) -> proper# X2) (proper# U11(X1, X2) -> proper# X2, proper# take(X1, X2) -> proper# X1) (proper# U11(X1, X2) -> proper# X2, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U11(X1, X2) -> proper# X2, proper# U81 X -> proper# X) (proper# U11(X1, X2) -> proper# X2, proper# U81 X -> U81# proper X) (proper# U11(X1, X2) -> proper# X2, proper# U71(X1, X2) -> proper# X2) (proper# U11(X1, X2) -> proper# X2, proper# U71(X1, X2) -> proper# X1) (proper# U11(X1, X2) -> proper# X2, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U11(X1, X2) -> proper# X2, proper# length X -> proper# X) (proper# U11(X1, X2) -> proper# X2, proper# length X -> length# proper X) (proper# U11(X1, X2) -> proper# X2, proper# s X -> proper# X) (proper# U11(X1, X2) -> proper# X2, proper# s X -> s# proper X) (proper# U11(X1, X2) -> proper# X2, proper# U63 X -> proper# X) (proper# U11(X1, X2) -> proper# X2, proper# U63 X -> U63# proper X) (proper# U11(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3) (proper# U11(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X2) (proper# U11(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X1) (proper# U11(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U11(X1, X2) -> proper# X2, proper# U62(X1, X2) -> proper# X2) (proper# U11(X1, X2) -> proper# X2, proper# U62(X1, X2) -> proper# X1) (proper# U11(X1, X2) -> proper# X2, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U11(X1, X2) -> proper# X2, proper# U53 X -> proper# X) (proper# U11(X1, X2) -> proper# X2, proper# U53 X -> U53# proper X) (proper# U11(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X3) (proper# U11(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X2) (proper# U11(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X1) (proper# U11(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U11(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X2) (proper# U11(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X1) (proper# U11(X1, X2) -> proper# X2, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U11(X1, X2) -> proper# X2, proper# isNatIList X -> proper# X) (proper# U11(X1, X2) -> proper# X2, proper# isNatIList X -> isNatIList# proper X) (proper# U11(X1, X2) -> proper# X2, proper# U43 X -> proper# X) (proper# U11(X1, X2) -> proper# X2, proper# U43 X -> U43# proper X) (proper# U11(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X3) (proper# U11(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X2) (proper# U11(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X1) (proper# U11(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U11(X1, X2) -> proper# X2, proper# U42(X1, X2) -> proper# X2) (proper# U11(X1, X2) -> proper# X2, proper# U42(X1, X2) -> proper# X1) (proper# U11(X1, X2) -> proper# X2, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U11(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X2) (proper# U11(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X1) (proper# U11(X1, X2) -> proper# X2, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U11(X1, X2) -> proper# X2, proper# U32 X -> proper# X) (proper# U11(X1, X2) -> proper# X2, proper# U32 X -> U32# proper X) (proper# U11(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X2) (proper# U11(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1) (proper# U11(X1, X2) -> proper# X2, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U11(X1, X2) -> proper# X2, proper# isNat X -> proper# X) (proper# U11(X1, X2) -> proper# X2, proper# isNat X -> isNat# proper X) (proper# U11(X1, X2) -> proper# X2, proper# U22 X -> proper# X) (proper# U11(X1, X2) -> proper# X2, proper# U22 X -> U22# proper X) (proper# U11(X1, X2) -> proper# X2, proper# U11(X1, X2) -> proper# X2) (proper# U11(X1, X2) -> proper# X2, proper# U11(X1, X2) -> proper# X1) (proper# U11(X1, X2) -> proper# X2, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U11(X1, X2) -> proper# X2, proper# isNatList X -> proper# X) (proper# U11(X1, X2) -> proper# X2, proper# isNatList X -> isNatList# proper X) (proper# U11(X1, X2) -> proper# X2, proper# U12 X -> proper# X) (proper# U11(X1, X2) -> proper# X2, proper# U12 X -> U12# proper X) (proper# U11(X1, X2) -> proper# X2, proper# cons(X1, X2) -> proper# X2) (proper# U11(X1, X2) -> proper# X2, proper# cons(X1, X2) -> proper# X1) (proper# U11(X1, X2) -> proper# X2, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X2, proper# isNatKind X -> proper# X) (proper# U31(X1, X2) -> proper# X2, proper# isNatKind X -> isNatKind# proper X) (proper# U31(X1, X2) -> proper# X2, proper# isNatIListKind X -> proper# X) (proper# U31(X1, X2) -> proper# X2, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U31(X1, X2) -> proper# X2, proper# and(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X2, proper# and(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X2, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U31(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U31(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U31(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U31(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U31(X1, X2) -> proper# X2, proper# take(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X2, proper# take(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X2, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X2, proper# U81 X -> proper# X) (proper# U31(X1, X2) -> proper# X2, proper# U81 X -> U81# proper X) (proper# U31(X1, X2) -> proper# X2, proper# U71(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X2, proper# U71(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X2, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X2, proper# length X -> proper# X) (proper# U31(X1, X2) -> proper# X2, proper# length X -> length# proper X) (proper# U31(X1, X2) -> proper# X2, proper# s X -> proper# X) (proper# U31(X1, X2) -> proper# X2, proper# s X -> s# proper X) (proper# U31(X1, X2) -> proper# X2, proper# U63 X -> proper# X) (proper# U31(X1, X2) -> proper# X2, proper# U63 X -> U63# proper X) (proper# U31(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3) (proper# U31(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X2) (proper# U31(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X1) (proper# U31(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U31(X1, X2) -> proper# X2, proper# U62(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X2, proper# U62(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X2, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X2, proper# U53 X -> proper# X) (proper# U31(X1, X2) -> proper# X2, proper# U53 X -> U53# proper X) (proper# U31(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X3) (proper# U31(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X2) (proper# U31(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X1) (proper# U31(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U31(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X2, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X2, proper# isNatIList X -> proper# X) (proper# U31(X1, X2) -> proper# X2, proper# isNatIList X -> isNatIList# proper X) (proper# U31(X1, X2) -> proper# X2, proper# U43 X -> proper# X) (proper# U31(X1, X2) -> proper# X2, proper# U43 X -> U43# proper X) (proper# U31(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X3) (proper# U31(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X2) (proper# U31(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X1) (proper# U31(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U31(X1, X2) -> proper# X2, proper# U42(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X2, proper# U42(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X2, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X2, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X2, proper# U32 X -> proper# X) (proper# U31(X1, X2) -> proper# X2, proper# U32 X -> U32# proper X) (proper# U31(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X2, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X2, proper# isNat X -> proper# X) (proper# U31(X1, X2) -> proper# X2, proper# isNat X -> isNat# proper X) (proper# U31(X1, X2) -> proper# X2, proper# U22 X -> proper# X) (proper# U31(X1, X2) -> proper# X2, proper# U22 X -> U22# proper X) (proper# U31(X1, X2) -> proper# X2, proper# U11(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X2, proper# U11(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X2, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X2, proper# isNatList X -> proper# X) (proper# U31(X1, X2) -> proper# X2, proper# isNatList X -> isNatList# proper X) (proper# U31(X1, X2) -> proper# X2, proper# U12 X -> proper# X) (proper# U31(X1, X2) -> proper# X2, proper# U12 X -> U12# proper X) (proper# U31(X1, X2) -> proper# X2, proper# cons(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X2, proper# cons(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X2, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# U41(X1, X2, X3) -> proper# X2, proper# isNatKind X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X2, proper# isNatKind X -> isNatKind# proper X) (proper# U41(X1, X2, X3) -> proper# X2, proper# isNatIListKind X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X2, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U41(X1, X2, X3) -> proper# X2, proper# and(X1, X2) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X2, proper# and(X1, X2) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X2, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U41(X1, X2, X3) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U41(X1, X2, X3) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U41(X1, X2, X3) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X2, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U41(X1, X2, X3) -> proper# X2, proper# take(X1, X2) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X2, proper# take(X1, X2) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X2, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U41(X1, X2, X3) -> proper# X2, proper# U81 X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X2, proper# U81 X -> U81# proper X) (proper# U41(X1, X2, X3) -> proper# X2, proper# U71(X1, X2) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X2, proper# U71(X1, X2) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X2, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U41(X1, X2, X3) -> proper# X2, proper# length X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X2, proper# length X -> length# proper X) (proper# U41(X1, X2, X3) -> proper# X2, proper# s X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X2, proper# s X -> s# proper X) (proper# U41(X1, X2, X3) -> proper# X2, proper# U63 X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X2, proper# U63 X -> U63# proper X) (proper# U41(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3) (proper# U41(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U41(X1, X2, X3) -> proper# X2, proper# U62(X1, X2) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X2, proper# U62(X1, X2) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X2, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U41(X1, X2, X3) -> proper# X2, proper# U53 X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X2, proper# U53 X -> U53# proper X) (proper# U41(X1, X2, X3) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X3) (proper# U41(X1, X2, X3) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X2, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U41(X1, X2, X3) -> proper# X2, proper# U52(X1, X2) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X2, proper# U52(X1, X2) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X2, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U41(X1, X2, X3) -> proper# X2, proper# isNatIList X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X2, proper# isNatIList X -> isNatIList# proper X) (proper# U41(X1, X2, X3) -> proper# X2, proper# U43 X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X2, proper# U43 X -> U43# proper X) (proper# U41(X1, X2, X3) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X3) (proper# U41(X1, X2, X3) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X2, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U41(X1, X2, X3) -> proper# X2, proper# U42(X1, X2) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X2, proper# U42(X1, X2) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X2, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U41(X1, X2, X3) -> proper# X2, proper# U31(X1, X2) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X2, proper# U31(X1, X2) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X2, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U41(X1, X2, X3) -> proper# X2, proper# U32 X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X2, proper# U32 X -> U32# proper X) (proper# U41(X1, X2, X3) -> proper# X2, proper# U21(X1, X2) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X2, proper# U21(X1, X2) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X2, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U41(X1, X2, X3) -> proper# X2, proper# isNat X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X2, proper# isNat X -> isNat# proper X) (proper# U41(X1, X2, X3) -> proper# X2, proper# U22 X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X2, proper# U22 X -> U22# proper X) (proper# U41(X1, X2, X3) -> proper# X2, proper# U11(X1, X2) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X2, proper# U11(X1, X2) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X2, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U41(X1, X2, X3) -> proper# X2, proper# isNatList X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X2, proper# isNatList X -> isNatList# proper X) (proper# U41(X1, X2, X3) -> proper# X2, proper# U12 X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X2, proper# U12 X -> U12# proper X) (proper# U41(X1, X2, X3) -> proper# X2, proper# cons(X1, X2) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X2, proper# cons(X1, X2) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X2, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# U51(X1, X2, X3) -> proper# X2, proper# isNatKind X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X2, proper# isNatKind X -> isNatKind# proper X) (proper# U51(X1, X2, X3) -> proper# X2, proper# isNatIListKind X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X2, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U51(X1, X2, X3) -> proper# X2, proper# and(X1, X2) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X2, proper# and(X1, X2) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X2, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U51(X1, X2, X3) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U51(X1, X2, X3) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U51(X1, X2, X3) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X2, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U51(X1, X2, X3) -> proper# X2, proper# take(X1, X2) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X2, proper# take(X1, X2) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X2, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U51(X1, X2, X3) -> proper# X2, proper# U81 X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X2, proper# U81 X -> U81# proper X) (proper# U51(X1, X2, X3) -> proper# X2, proper# U71(X1, X2) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X2, proper# U71(X1, X2) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X2, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U51(X1, X2, X3) -> proper# X2, proper# length X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X2, proper# length X -> length# proper X) (proper# U51(X1, X2, X3) -> proper# X2, proper# s X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X2, proper# s X -> s# proper X) (proper# U51(X1, X2, X3) -> proper# X2, proper# U63 X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X2, proper# U63 X -> U63# proper X) (proper# U51(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3) (proper# U51(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U51(X1, X2, X3) -> proper# X2, proper# U62(X1, X2) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X2, proper# U62(X1, X2) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X2, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U51(X1, X2, X3) -> proper# X2, proper# U53 X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X2, proper# U53 X -> U53# proper X) (proper# U51(X1, X2, X3) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X3) (proper# U51(X1, X2, X3) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X2, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U51(X1, X2, X3) -> proper# X2, proper# U52(X1, X2) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X2, proper# U52(X1, X2) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X2, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U51(X1, X2, X3) -> proper# X2, proper# isNatIList X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X2, proper# isNatIList X -> isNatIList# proper X) (proper# U51(X1, X2, X3) -> proper# X2, proper# U43 X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X2, proper# U43 X -> U43# proper X) (proper# U51(X1, X2, X3) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X3) (proper# U51(X1, X2, X3) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X2, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U51(X1, X2, X3) -> proper# X2, proper# U42(X1, X2) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X2, proper# U42(X1, X2) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X2, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U51(X1, X2, X3) -> proper# X2, proper# U31(X1, X2) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X2, proper# U31(X1, X2) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X2, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U51(X1, X2, X3) -> proper# X2, proper# U32 X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X2, proper# U32 X -> U32# proper X) (proper# U51(X1, X2, X3) -> proper# X2, proper# U21(X1, X2) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X2, proper# U21(X1, X2) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X2, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U51(X1, X2, X3) -> proper# X2, proper# isNat X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X2, proper# isNat X -> isNat# proper X) (proper# U51(X1, X2, X3) -> proper# X2, proper# U22 X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X2, proper# U22 X -> U22# proper X) (proper# U51(X1, X2, X3) -> proper# X2, proper# U11(X1, X2) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X2, proper# U11(X1, X2) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X2, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U51(X1, X2, X3) -> proper# X2, proper# isNatList X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X2, proper# isNatList X -> isNatList# proper X) (proper# U51(X1, X2, X3) -> proper# X2, proper# U12 X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X2, proper# U12 X -> U12# proper X) (proper# U51(X1, X2, X3) -> proper# X2, proper# cons(X1, X2) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X2, proper# cons(X1, X2) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X2, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X2, proper# isNatKind X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X2, proper# isNatKind X -> isNatKind# proper X) (proper# U61(X1, X2, X3) -> proper# X2, proper# isNatIListKind X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X2, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U61(X1, X2, X3) -> proper# X2, proper# and(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X2, proper# and(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X2, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U61(X1, X2, X3) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X2, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U61(X1, X2, X3) -> proper# X2, proper# take(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X2, proper# take(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X2, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X2, proper# U81 X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X2, proper# U81 X -> U81# proper X) (proper# U61(X1, X2, X3) -> proper# X2, proper# U71(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X2, proper# U71(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X2, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X2, proper# length X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X2, proper# length X -> length# proper X) (proper# U61(X1, X2, X3) -> proper# X2, proper# s X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X2, proper# s X -> s# proper X) (proper# U61(X1, X2, X3) -> proper# X2, proper# U63 X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X2, proper# U63 X -> U63# proper X) (proper# U61(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U61(X1, X2, X3) -> proper# X2, proper# U62(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X2, proper# U62(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X2, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X2, proper# U53 X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X2, proper# U53 X -> U53# proper X) (proper# U61(X1, X2, X3) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X2, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U61(X1, X2, X3) -> proper# X2, proper# U52(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X2, proper# U52(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X2, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X2, proper# isNatIList X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X2, proper# isNatIList X -> isNatIList# proper X) (proper# U61(X1, X2, X3) -> proper# X2, proper# U43 X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X2, proper# U43 X -> U43# proper X) (proper# U61(X1, X2, X3) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X2, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U61(X1, X2, X3) -> proper# X2, proper# U42(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X2, proper# U42(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X2, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X2, proper# U31(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X2, proper# U31(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X2, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X2, proper# U32 X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X2, proper# U32 X -> U32# proper X) (proper# U61(X1, X2, X3) -> proper# X2, proper# U21(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X2, proper# U21(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X2, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X2, proper# isNat X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X2, proper# isNat X -> isNat# proper X) (proper# U61(X1, X2, X3) -> proper# X2, proper# U22 X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X2, proper# U22 X -> U22# proper X) (proper# U61(X1, X2, X3) -> proper# X2, proper# U11(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X2, proper# U11(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X2, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X2, proper# isNatList X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X2, proper# isNatList X -> isNatList# proper X) (proper# U61(X1, X2, X3) -> proper# X2, proper# U12 X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X2, proper# U12 X -> U12# proper X) (proper# U61(X1, X2, X3) -> proper# X2, proper# cons(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X2, proper# cons(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X2, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# take(X1, X2) -> proper# X2, proper# isNatKind X -> proper# X) (proper# take(X1, X2) -> proper# X2, proper# isNatKind X -> isNatKind# proper X) (proper# take(X1, X2) -> proper# X2, proper# isNatIListKind X -> proper# X) (proper# take(X1, X2) -> proper# X2, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# take(X1, X2) -> proper# X2, proper# and(X1, X2) -> proper# X2) (proper# take(X1, X2) -> proper# X2, proper# and(X1, X2) -> proper# X1) (proper# take(X1, X2) -> proper# X2, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# take(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# take(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# take(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# take(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# take(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# take(X1, X2) -> proper# X2, proper# take(X1, X2) -> proper# X2) (proper# take(X1, X2) -> proper# X2, proper# take(X1, X2) -> proper# X1) (proper# take(X1, X2) -> proper# X2, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# take(X1, X2) -> proper# X2, proper# U81 X -> proper# X) (proper# take(X1, X2) -> proper# X2, proper# U81 X -> U81# proper X) (proper# take(X1, X2) -> proper# X2, proper# U71(X1, X2) -> proper# X2) (proper# take(X1, X2) -> proper# X2, proper# U71(X1, X2) -> proper# X1) (proper# take(X1, X2) -> proper# X2, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# take(X1, X2) -> proper# X2, proper# length X -> proper# X) (proper# take(X1, X2) -> proper# X2, proper# length X -> length# proper X) (proper# take(X1, X2) -> proper# X2, proper# s X -> proper# X) (proper# take(X1, X2) -> proper# X2, proper# s X -> s# proper X) (proper# take(X1, X2) -> proper# X2, proper# U63 X -> proper# X) (proper# take(X1, X2) -> proper# X2, proper# U63 X -> U63# proper X) (proper# take(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3) (proper# take(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X2) (proper# take(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X1) (proper# take(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# take(X1, X2) -> proper# X2, proper# U62(X1, X2) -> proper# X2) (proper# take(X1, X2) -> proper# X2, proper# U62(X1, X2) -> proper# X1) (proper# take(X1, X2) -> proper# X2, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# take(X1, X2) -> proper# X2, proper# U53 X -> proper# X) (proper# take(X1, X2) -> proper# X2, proper# U53 X -> U53# proper X) (proper# take(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X3) (proper# take(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X2) (proper# take(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X1) (proper# take(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# take(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X2) (proper# take(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X1) (proper# take(X1, X2) -> proper# X2, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# take(X1, X2) -> proper# X2, proper# isNatIList X -> proper# X) (proper# take(X1, X2) -> proper# X2, proper# isNatIList X -> isNatIList# proper X) (proper# take(X1, X2) -> proper# X2, proper# U43 X -> proper# X) (proper# take(X1, X2) -> proper# X2, proper# U43 X -> U43# proper X) (proper# take(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X3) (proper# take(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X2) (proper# take(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X1) (proper# take(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# take(X1, X2) -> proper# X2, proper# U42(X1, X2) -> proper# X2) (proper# take(X1, X2) -> proper# X2, proper# U42(X1, X2) -> proper# X1) (proper# take(X1, X2) -> proper# X2, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# take(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X2) (proper# take(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X1) (proper# take(X1, X2) -> proper# X2, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# take(X1, X2) -> proper# X2, proper# U32 X -> proper# X) (proper# take(X1, X2) -> proper# X2, proper# U32 X -> U32# proper X) (proper# take(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X2) (proper# take(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1) (proper# take(X1, X2) -> proper# X2, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# take(X1, X2) -> proper# X2, proper# isNat X -> proper# X) (proper# take(X1, X2) -> proper# X2, proper# isNat X -> isNat# proper X) (proper# take(X1, X2) -> proper# X2, proper# U22 X -> proper# X) (proper# take(X1, X2) -> proper# X2, proper# U22 X -> U22# proper X) (proper# take(X1, X2) -> proper# X2, proper# U11(X1, X2) -> proper# X2) (proper# take(X1, X2) -> proper# X2, proper# U11(X1, X2) -> proper# X1) (proper# take(X1, X2) -> proper# X2, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# take(X1, X2) -> proper# X2, proper# isNatList X -> proper# X) (proper# take(X1, X2) -> proper# X2, proper# isNatList X -> isNatList# proper X) (proper# take(X1, X2) -> proper# X2, proper# U12 X -> proper# X) (proper# take(X1, X2) -> proper# X2, proper# U12 X -> U12# proper X) (proper# take(X1, X2) -> proper# X2, proper# cons(X1, X2) -> proper# X2) (proper# take(X1, X2) -> proper# X2, proper# cons(X1, X2) -> proper# X1) (proper# take(X1, X2) -> proper# X2, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# and(X1, X2) -> proper# X2, proper# isNatKind X -> proper# X) (proper# and(X1, X2) -> proper# X2, proper# isNatKind X -> isNatKind# proper X) (proper# and(X1, X2) -> proper# X2, proper# isNatIListKind X -> proper# X) (proper# and(X1, X2) -> proper# X2, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# and(X1, X2) -> proper# X2, proper# and(X1, X2) -> proper# X2) (proper# and(X1, X2) -> proper# X2, proper# and(X1, X2) -> proper# X1) (proper# and(X1, X2) -> proper# X2, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# and(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# and(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# and(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# and(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# and(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# and(X1, X2) -> proper# X2, proper# take(X1, X2) -> proper# X2) (proper# and(X1, X2) -> proper# X2, proper# take(X1, X2) -> proper# X1) (proper# and(X1, X2) -> proper# X2, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# and(X1, X2) -> proper# X2, proper# U81 X -> proper# X) (proper# and(X1, X2) -> proper# X2, proper# U81 X -> U81# proper X) (proper# and(X1, X2) -> proper# X2, proper# U71(X1, X2) -> proper# X2) (proper# and(X1, X2) -> proper# X2, proper# U71(X1, X2) -> proper# X1) (proper# and(X1, X2) -> proper# X2, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# and(X1, X2) -> proper# X2, proper# length X -> proper# X) (proper# and(X1, X2) -> proper# X2, proper# length X -> length# proper X) (proper# and(X1, X2) -> proper# X2, proper# s X -> proper# X) (proper# and(X1, X2) -> proper# X2, proper# s X -> s# proper X) (proper# and(X1, X2) -> proper# X2, proper# U63 X -> proper# X) (proper# and(X1, X2) -> proper# X2, proper# U63 X -> U63# proper X) (proper# and(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3) (proper# and(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X2) (proper# and(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X1) (proper# and(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# and(X1, X2) -> proper# X2, proper# U62(X1, X2) -> proper# X2) (proper# and(X1, X2) -> proper# X2, proper# U62(X1, X2) -> proper# X1) (proper# and(X1, X2) -> proper# X2, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# and(X1, X2) -> proper# X2, proper# U53 X -> proper# X) (proper# and(X1, X2) -> proper# X2, proper# U53 X -> U53# proper X) (proper# and(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X3) (proper# and(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X2) (proper# and(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X1) (proper# and(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# and(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X2) (proper# and(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X1) (proper# and(X1, X2) -> proper# X2, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# and(X1, X2) -> proper# X2, proper# isNatIList X -> proper# X) (proper# and(X1, X2) -> proper# X2, proper# isNatIList X -> isNatIList# proper X) (proper# and(X1, X2) -> proper# X2, proper# U43 X -> proper# X) (proper# and(X1, X2) -> proper# X2, proper# U43 X -> U43# proper X) (proper# and(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X3) (proper# and(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X2) (proper# and(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X1) (proper# and(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# and(X1, X2) -> proper# X2, proper# U42(X1, X2) -> proper# X2) (proper# and(X1, X2) -> proper# X2, proper# U42(X1, X2) -> proper# X1) (proper# and(X1, X2) -> proper# X2, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# and(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X2) (proper# and(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X1) (proper# and(X1, X2) -> proper# X2, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# and(X1, X2) -> proper# X2, proper# U32 X -> proper# X) (proper# and(X1, X2) -> proper# X2, proper# U32 X -> U32# proper X) (proper# and(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X2) (proper# and(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1) (proper# and(X1, X2) -> proper# X2, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# and(X1, X2) -> proper# X2, proper# isNat X -> proper# X) (proper# and(X1, X2) -> proper# X2, proper# isNat X -> isNat# proper X) (proper# and(X1, X2) -> proper# X2, proper# U22 X -> proper# X) (proper# and(X1, X2) -> proper# X2, proper# U22 X -> U22# proper X) (proper# and(X1, X2) -> proper# X2, proper# U11(X1, X2) -> proper# X2) (proper# and(X1, X2) -> proper# X2, proper# U11(X1, X2) -> proper# X1) (proper# and(X1, X2) -> proper# X2, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# and(X1, X2) -> proper# X2, proper# isNatList X -> proper# X) (proper# and(X1, X2) -> proper# X2, proper# isNatList X -> isNatList# proper X) (proper# and(X1, X2) -> proper# X2, proper# U12 X -> proper# X) (proper# and(X1, X2) -> proper# X2, proper# U12 X -> U12# proper X) (proper# and(X1, X2) -> proper# X2, proper# cons(X1, X2) -> proper# X2) (proper# and(X1, X2) -> proper# X2, proper# cons(X1, X2) -> proper# X1) (proper# and(X1, X2) -> proper# X2, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (active# isNat length V1 -> U11#(isNatIListKind V1, V1), U11#(ok X1, ok X2) -> U11#(X1, X2)) (active# isNat length V1 -> U11#(isNatIListKind V1, V1), U11#(mark X1, X2) -> U11#(X1, X2)) (active# isNatList take(V1, V2) -> isNatIListKind# V2, isNatIListKind# ok X -> isNatIListKind# X) (active# isNatIList cons(V1, V2) -> isNatIListKind# V2, isNatIListKind# ok X -> isNatIListKind# X) (active# U62(tt(), V2) -> isNatIList# V2, isNatIList# ok X -> isNatIList# X) (active# isNatIListKind take(V1, V2) -> isNatIListKind# V2, isNatIListKind# ok X -> isNatIListKind# X) (active# U12 X -> active# X, active# isNatKind length V1 -> isNatIListKind# V1) (active# U12 X -> active# X, active# isNatKind s V1 -> isNatKind# V1) (active# U12 X -> active# X, active# isNatIListKind take(V1, V2) -> isNatKind# V1) (active# U12 X -> active# X, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2) (active# U12 X -> active# X, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U12 X -> active# X, active# isNatIListKind cons(V1, V2) -> isNatKind# V1) (active# U12 X -> active# X, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2) (active# U12 X -> active# X, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U12 X -> active# X, active# and(X1, X2) -> and#(active X1, X2)) (active# U12 X -> active# X, active# and(X1, X2) -> active# X1) (active# U12 X -> active# X, active# U91(tt(), IL, M, N) -> take#(M, IL)) (active# U12 X -> active# X, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL))) (active# U12 X -> active# X, active# U91(X1, X2, X3, X4) -> U91#(active X1, X2, X3, X4)) (active# U12 X -> active# X, active# U91(X1, X2, X3, X4) -> active# X1) (active# U12 X -> active# X, active# take(s M, cons(N, IL)) -> isNatKind# M) (active# U12 X -> active# X, active# take(s M, cons(N, IL)) -> isNatKind# N) (active# U12 X -> active# X, active# take(s M, cons(N, IL)) -> isNatIListKind# IL) (active# U12 X -> active# X, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))) (active# U12 X -> active# X, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (active# U12 X -> active# X, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL)) (active# U12 X -> active# X, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M)) (active# U12 X -> active# X, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N)) (active# U12 X -> active# X, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)) (active# U12 X -> active# X, active# take(s M, cons(N, IL)) -> isNatIList# IL) (active# U12 X -> active# X, active# take(s M, cons(N, IL)) -> isNat# M) (active# U12 X -> active# X, active# take(s M, cons(N, IL)) -> isNat# N) (active# U12 X -> active# X, active# take(0(), IL) -> isNatIListKind# IL) (active# U12 X -> active# X, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL)) (active# U12 X -> active# X, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL)) (active# U12 X -> active# X, active# take(0(), IL) -> isNatIList# IL) (active# U12 X -> active# X, active# take(X1, X2) -> take#(active X1, X2)) (active# U12 X -> active# X, active# take(X1, X2) -> take#(X1, active X2)) (active# U12 X -> active# X, active# take(X1, X2) -> active# X2) (active# U12 X -> active# X, active# take(X1, X2) -> active# X1) (active# U12 X -> active# X, active# U81 X -> U81# active X) (active# U12 X -> active# X, active# U81 X -> active# X) (active# U12 X -> active# X, active# U71(tt(), L) -> length# L) (active# U12 X -> active# X, active# U71(tt(), L) -> s# length L) (active# U12 X -> active# X, active# U71(X1, X2) -> U71#(active X1, X2)) (active# U12 X -> active# X, active# U71(X1, X2) -> active# X1) (active# U12 X -> active# X, active# length cons(N, L) -> isNatKind# N) (active# U12 X -> active# X, active# length cons(N, L) -> isNatIListKind# L) (active# U12 X -> active# X, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N))) (active# U12 X -> active# X, active# length cons(N, L) -> and#(isNat N, isNatKind N)) (active# U12 X -> active# X, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L)) (active# U12 X -> active# X, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L)) (active# U12 X -> active# X, active# length cons(N, L) -> isNat# N) (active# U12 X -> active# X, active# length cons(N, L) -> isNatList# L) (active# U12 X -> active# X, active# length X -> length# active X) (active# U12 X -> active# X, active# length X -> active# X) (active# U12 X -> active# X, active# s X -> s# active X) (active# U12 X -> active# X, active# s X -> active# X) (active# U12 X -> active# X, active# U63 X -> U63# active X) (active# U12 X -> active# X, active# U63 X -> active# X) (active# U12 X -> active# X, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2)) (active# U12 X -> active# X, active# U61(tt(), V1, V2) -> isNat# V1) (active# U12 X -> active# X, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U12 X -> active# X, active# U61(X1, X2, X3) -> active# X1) (active# U12 X -> active# X, active# U62(tt(), V2) -> U63# isNatIList V2) (active# U12 X -> active# X, active# U62(tt(), V2) -> isNatIList# V2) (active# U12 X -> active# X, active# U62(X1, X2) -> U62#(active X1, X2)) (active# U12 X -> active# X, active# U62(X1, X2) -> active# X1) (active# U12 X -> active# X, active# U53 X -> U53# active X) (active# U12 X -> active# X, active# U53 X -> active# X) (active# U12 X -> active# X, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2)) (active# U12 X -> active# X, active# U51(tt(), V1, V2) -> isNat# V1) (active# U12 X -> active# X, active# U51(X1, X2, X3) -> U51#(active X1, X2, X3)) (active# U12 X -> active# X, active# U51(X1, X2, X3) -> active# X1) (active# U12 X -> active# X, active# U52(tt(), V2) -> U53# isNatList V2) (active# U12 X -> active# X, active# U52(tt(), V2) -> isNatList# V2) (active# U12 X -> active# X, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U12 X -> active# X, active# U52(X1, X2) -> active# X1) (active# U12 X -> active# X, active# isNatIList cons(V1, V2) -> isNatKind# V1) (active# U12 X -> active# X, active# isNatIList cons(V1, V2) -> isNatIListKind# V2) (active# U12 X -> active# X, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U12 X -> active# X, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U12 X -> active# X, active# isNatIList V -> isNatIListKind# V) (active# U12 X -> active# X, active# isNatIList V -> U31#(isNatIListKind V, V)) (active# U12 X -> active# X, active# U43 X -> U43# active X) (active# U12 X -> active# X, active# U43 X -> active# X) (active# U12 X -> active# X, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2)) (active# U12 X -> active# X, active# U41(tt(), V1, V2) -> isNat# V1) (active# U12 X -> active# X, active# U41(X1, X2, X3) -> U41#(active X1, X2, X3)) (active# U12 X -> active# X, active# U41(X1, X2, X3) -> active# X1) (active# U12 X -> active# X, active# U42(tt(), V2) -> isNatIList# V2) (active# U12 X -> active# X, active# U42(tt(), V2) -> U43# isNatIList V2) (active# U12 X -> active# X, active# U42(X1, X2) -> U42#(active X1, X2)) (active# U12 X -> active# X, active# U42(X1, X2) -> active# X1) (active# U12 X -> active# X, active# U31(tt(), V) -> U32# isNatList V) (active# U12 X -> active# X, active# U31(tt(), V) -> isNatList# V) (active# U12 X -> active# X, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U12 X -> active# X, active# U31(X1, X2) -> active# X1) (active# U12 X -> active# X, active# U32 X -> U32# active X) (active# U12 X -> active# X, active# U32 X -> active# X) (active# U12 X -> active# X, active# U21(tt(), V1) -> isNat# V1) (active# U12 X -> active# X, active# U21(tt(), V1) -> U22# isNat V1) (active# U12 X -> active# X, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U12 X -> active# X, active# U21(X1, X2) -> active# X1) (active# U12 X -> active# X, active# isNat length V1 -> isNatIListKind# V1) (active# U12 X -> active# X, active# isNat length V1 -> U11#(isNatIListKind V1, V1)) (active# U12 X -> active# X, active# isNat s V1 -> isNatKind# V1) (active# U12 X -> active# X, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U12 X -> active# X, active# U22 X -> U22# active X) (active# U12 X -> active# X, active# U22 X -> active# X) (active# U12 X -> active# X, active# U11(tt(), V1) -> isNatList# V1) (active# U12 X -> active# X, active# U11(tt(), V1) -> U12# isNatList V1) (active# U12 X -> active# X, active# U11(X1, X2) -> U11#(active X1, X2)) (active# U12 X -> active# X, active# U11(X1, X2) -> active# X1) (active# U12 X -> active# X, active# isNatList take(V1, V2) -> isNatKind# V1) (active# U12 X -> active# X, active# isNatList take(V1, V2) -> isNatIListKind# V2) (active# U12 X -> active# X, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U12 X -> active# X, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U12 X -> active# X, active# isNatList cons(V1, V2) -> isNatKind# V1) (active# U12 X -> active# X, active# isNatList cons(V1, V2) -> isNatIListKind# V2) (active# U12 X -> active# X, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U12 X -> active# X, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U12 X -> active# X, active# U12 X -> U12# active X) (active# U12 X -> active# X, active# U12 X -> active# X) (active# U12 X -> active# X, active# zeros() -> cons#(0(), zeros())) (active# U12 X -> active# X, active# cons(X1, X2) -> active# X1) (active# U12 X -> active# X, active# cons(X1, X2) -> cons#(active X1, X2)) (active# U32 X -> active# X, active# isNatKind length V1 -> isNatIListKind# V1) (active# U32 X -> active# X, active# isNatKind s V1 -> isNatKind# V1) (active# U32 X -> active# X, active# isNatIListKind take(V1, V2) -> isNatKind# V1) (active# U32 X -> active# X, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2) (active# U32 X -> active# X, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U32 X -> active# X, active# isNatIListKind cons(V1, V2) -> isNatKind# V1) (active# U32 X -> active# X, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2) (active# U32 X -> active# X, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U32 X -> active# X, active# and(X1, X2) -> and#(active X1, X2)) (active# U32 X -> active# X, active# and(X1, X2) -> active# X1) (active# U32 X -> active# X, active# U91(tt(), IL, M, N) -> take#(M, IL)) (active# U32 X -> active# X, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL))) (active# U32 X -> active# X, active# U91(X1, X2, X3, X4) -> U91#(active X1, X2, X3, X4)) (active# U32 X -> active# X, active# U91(X1, X2, X3, X4) -> active# X1) (active# U32 X -> active# X, active# take(s M, cons(N, IL)) -> isNatKind# M) (active# U32 X -> active# X, active# take(s M, cons(N, IL)) -> isNatKind# N) (active# U32 X -> active# X, active# take(s M, cons(N, IL)) -> isNatIListKind# IL) (active# U32 X -> active# X, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))) (active# U32 X -> active# X, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (active# U32 X -> active# X, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL)) (active# U32 X -> active# X, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M)) (active# U32 X -> active# X, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N)) (active# U32 X -> active# X, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)) (active# U32 X -> active# X, active# take(s M, cons(N, IL)) -> isNatIList# IL) (active# U32 X -> active# X, active# take(s M, cons(N, IL)) -> isNat# M) (active# U32 X -> active# X, active# take(s M, cons(N, IL)) -> isNat# N) (active# U32 X -> active# X, active# take(0(), IL) -> isNatIListKind# IL) (active# U32 X -> active# X, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL)) (active# U32 X -> active# X, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL)) (active# U32 X -> active# X, active# take(0(), IL) -> isNatIList# IL) (active# U32 X -> active# X, active# take(X1, X2) -> take#(active X1, X2)) (active# U32 X -> active# X, active# take(X1, X2) -> take#(X1, active X2)) (active# U32 X -> active# X, active# take(X1, X2) -> active# X2) (active# U32 X -> active# X, active# take(X1, X2) -> active# X1) (active# U32 X -> active# X, active# U81 X -> U81# active X) (active# U32 X -> active# X, active# U81 X -> active# X) (active# U32 X -> active# X, active# U71(tt(), L) -> length# L) (active# U32 X -> active# X, active# U71(tt(), L) -> s# length L) (active# U32 X -> active# X, active# U71(X1, X2) -> U71#(active X1, X2)) (active# U32 X -> active# X, active# U71(X1, X2) -> active# X1) (active# U32 X -> active# X, active# length cons(N, L) -> isNatKind# N) (active# U32 X -> active# X, active# length cons(N, L) -> isNatIListKind# L) (active# U32 X -> active# X, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N))) (active# U32 X -> active# X, active# length cons(N, L) -> and#(isNat N, isNatKind N)) (active# U32 X -> active# X, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L)) (active# U32 X -> active# X, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L)) (active# U32 X -> active# X, active# length cons(N, L) -> isNat# N) (active# U32 X -> active# X, active# length cons(N, L) -> isNatList# L) (active# U32 X -> active# X, active# length X -> length# active X) (active# U32 X -> active# X, active# length X -> active# X) (active# U32 X -> active# X, active# s X -> s# active X) (active# U32 X -> active# X, active# s X -> active# X) (active# U32 X -> active# X, active# U63 X -> U63# active X) (active# U32 X -> active# X, active# U63 X -> active# X) (active# U32 X -> active# X, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2)) (active# U32 X -> active# X, active# U61(tt(), V1, V2) -> isNat# V1) (active# U32 X -> active# X, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U32 X -> active# X, active# U61(X1, X2, X3) -> active# X1) (active# U32 X -> active# X, active# U62(tt(), V2) -> U63# isNatIList V2) (active# U32 X -> active# X, active# U62(tt(), V2) -> isNatIList# V2) (active# U32 X -> active# X, active# U62(X1, X2) -> U62#(active X1, X2)) (active# U32 X -> active# X, active# U62(X1, X2) -> active# X1) (active# U32 X -> active# X, active# U53 X -> U53# active X) (active# U32 X -> active# X, active# U53 X -> active# X) (active# U32 X -> active# X, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2)) (active# U32 X -> active# X, active# U51(tt(), V1, V2) -> isNat# V1) (active# U32 X -> active# X, active# U51(X1, X2, X3) -> U51#(active X1, X2, X3)) (active# U32 X -> active# X, active# U51(X1, X2, X3) -> active# X1) (active# U32 X -> active# X, active# U52(tt(), V2) -> U53# isNatList V2) (active# U32 X -> active# X, active# U52(tt(), V2) -> isNatList# V2) (active# U32 X -> active# X, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U32 X -> active# X, active# U52(X1, X2) -> active# X1) (active# U32 X -> active# X, active# isNatIList cons(V1, V2) -> isNatKind# V1) (active# U32 X -> active# X, active# isNatIList cons(V1, V2) -> isNatIListKind# V2) (active# U32 X -> active# X, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U32 X -> active# X, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U32 X -> active# X, active# isNatIList V -> isNatIListKind# V) (active# U32 X -> active# X, active# isNatIList V -> U31#(isNatIListKind V, V)) (active# U32 X -> active# X, active# U43 X -> U43# active X) (active# U32 X -> active# X, active# U43 X -> active# X) (active# U32 X -> active# X, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2)) (active# U32 X -> active# X, active# U41(tt(), V1, V2) -> isNat# V1) (active# U32 X -> active# X, active# U41(X1, X2, X3) -> U41#(active X1, X2, X3)) (active# U32 X -> active# X, active# U41(X1, X2, X3) -> active# X1) (active# U32 X -> active# X, active# U42(tt(), V2) -> isNatIList# V2) (active# U32 X -> active# X, active# U42(tt(), V2) -> U43# isNatIList V2) (active# U32 X -> active# X, active# U42(X1, X2) -> U42#(active X1, X2)) (active# U32 X -> active# X, active# U42(X1, X2) -> active# X1) (active# U32 X -> active# X, active# U31(tt(), V) -> U32# isNatList V) (active# U32 X -> active# X, active# U31(tt(), V) -> isNatList# V) (active# U32 X -> active# X, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U32 X -> active# X, active# U31(X1, X2) -> active# X1) (active# U32 X -> active# X, active# U32 X -> U32# active X) (active# U32 X -> active# X, active# U32 X -> active# X) (active# U32 X -> active# X, active# U21(tt(), V1) -> isNat# V1) (active# U32 X -> active# X, active# U21(tt(), V1) -> U22# isNat V1) (active# U32 X -> active# X, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U32 X -> active# X, active# U21(X1, X2) -> active# X1) (active# U32 X -> active# X, active# isNat length V1 -> isNatIListKind# V1) (active# U32 X -> active# X, active# isNat length V1 -> U11#(isNatIListKind V1, V1)) (active# U32 X -> active# X, active# isNat s V1 -> isNatKind# V1) (active# U32 X -> active# X, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U32 X -> active# X, active# U22 X -> U22# active X) (active# U32 X -> active# X, active# U22 X -> active# X) (active# U32 X -> active# X, active# U11(tt(), V1) -> isNatList# V1) (active# U32 X -> active# X, active# U11(tt(), V1) -> U12# isNatList V1) (active# U32 X -> active# X, active# U11(X1, X2) -> U11#(active X1, X2)) (active# U32 X -> active# X, active# U11(X1, X2) -> active# X1) (active# U32 X -> active# X, active# isNatList take(V1, V2) -> isNatKind# V1) (active# U32 X -> active# X, active# isNatList take(V1, V2) -> isNatIListKind# V2) (active# U32 X -> active# X, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U32 X -> active# X, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U32 X -> active# X, active# isNatList cons(V1, V2) -> isNatKind# V1) (active# U32 X -> active# X, active# isNatList cons(V1, V2) -> isNatIListKind# V2) (active# U32 X -> active# X, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U32 X -> active# X, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U32 X -> active# X, active# U12 X -> U12# active X) (active# U32 X -> active# X, active# U12 X -> active# X) (active# U32 X -> active# X, active# zeros() -> cons#(0(), zeros())) (active# U32 X -> active# X, active# cons(X1, X2) -> active# X1) (active# U32 X -> active# X, active# cons(X1, X2) -> cons#(active X1, X2)) (active# U53 X -> active# X, active# isNatKind length V1 -> isNatIListKind# V1) (active# U53 X -> active# X, active# isNatKind s V1 -> isNatKind# V1) (active# U53 X -> active# X, active# isNatIListKind take(V1, V2) -> isNatKind# V1) (active# U53 X -> active# X, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2) (active# U53 X -> active# X, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U53 X -> active# X, active# isNatIListKind cons(V1, V2) -> isNatKind# V1) (active# U53 X -> active# X, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2) (active# U53 X -> active# X, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U53 X -> active# X, active# and(X1, X2) -> and#(active X1, X2)) (active# U53 X -> active# X, active# and(X1, X2) -> active# X1) (active# U53 X -> active# X, active# U91(tt(), IL, M, N) -> take#(M, IL)) (active# U53 X -> active# X, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL))) (active# U53 X -> active# X, active# U91(X1, X2, X3, X4) -> U91#(active X1, X2, X3, X4)) (active# U53 X -> active# X, active# U91(X1, X2, X3, X4) -> active# X1) (active# U53 X -> active# X, active# take(s M, cons(N, IL)) -> isNatKind# M) (active# U53 X -> active# X, active# take(s M, cons(N, IL)) -> isNatKind# N) (active# U53 X -> active# X, active# take(s M, cons(N, IL)) -> isNatIListKind# IL) (active# U53 X -> active# X, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))) (active# U53 X -> active# X, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (active# U53 X -> active# X, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL)) (active# U53 X -> active# X, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M)) (active# U53 X -> active# X, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N)) (active# U53 X -> active# X, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)) (active# U53 X -> active# X, active# take(s M, cons(N, IL)) -> isNatIList# IL) (active# U53 X -> active# X, active# take(s M, cons(N, IL)) -> isNat# M) (active# U53 X -> active# X, active# take(s M, cons(N, IL)) -> isNat# N) (active# U53 X -> active# X, active# take(0(), IL) -> isNatIListKind# IL) (active# U53 X -> active# X, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL)) (active# U53 X -> active# X, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL)) (active# U53 X -> active# X, active# take(0(), IL) -> isNatIList# IL) (active# U53 X -> active# X, active# take(X1, X2) -> take#(active X1, X2)) (active# U53 X -> active# X, active# take(X1, X2) -> take#(X1, active X2)) (active# U53 X -> active# X, active# take(X1, X2) -> active# X2) (active# U53 X -> active# X, active# take(X1, X2) -> active# X1) (active# U53 X -> active# X, active# U81 X -> U81# active X) (active# U53 X -> active# X, active# U81 X -> active# X) (active# U53 X -> active# X, active# U71(tt(), L) -> length# L) (active# U53 X -> active# X, active# U71(tt(), L) -> s# length L) (active# U53 X -> active# X, active# U71(X1, X2) -> U71#(active X1, X2)) (active# U53 X -> active# X, active# U71(X1, X2) -> active# X1) (active# U53 X -> active# X, active# length cons(N, L) -> isNatKind# N) (active# U53 X -> active# X, active# length cons(N, L) -> isNatIListKind# L) (active# U53 X -> active# X, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N))) (active# U53 X -> active# X, active# length cons(N, L) -> and#(isNat N, isNatKind N)) (active# U53 X -> active# X, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L)) (active# U53 X -> active# X, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L)) (active# U53 X -> active# X, active# length cons(N, L) -> isNat# N) (active# U53 X -> active# X, active# length cons(N, L) -> isNatList# L) (active# U53 X -> active# X, active# length X -> length# active X) (active# U53 X -> active# X, active# length X -> active# X) (active# U53 X -> active# X, active# s X -> s# active X) (active# U53 X -> active# X, active# s X -> active# X) (active# U53 X -> active# X, active# U63 X -> U63# active X) (active# U53 X -> active# X, active# U63 X -> active# X) (active# U53 X -> active# X, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2)) (active# U53 X -> active# X, active# U61(tt(), V1, V2) -> isNat# V1) (active# U53 X -> active# X, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U53 X -> active# X, active# U61(X1, X2, X3) -> active# X1) (active# U53 X -> active# X, active# U62(tt(), V2) -> U63# isNatIList V2) (active# U53 X -> active# X, active# U62(tt(), V2) -> isNatIList# V2) (active# U53 X -> active# X, active# U62(X1, X2) -> U62#(active X1, X2)) (active# U53 X -> active# X, active# U62(X1, X2) -> active# X1) (active# U53 X -> active# X, active# U53 X -> U53# active X) (active# U53 X -> active# X, active# U53 X -> active# X) (active# U53 X -> active# X, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2)) (active# U53 X -> active# X, active# U51(tt(), V1, V2) -> isNat# V1) (active# U53 X -> active# X, active# U51(X1, X2, X3) -> U51#(active X1, X2, X3)) (active# U53 X -> active# X, active# U51(X1, X2, X3) -> active# X1) (active# U53 X -> active# X, active# U52(tt(), V2) -> U53# isNatList V2) (active# U53 X -> active# X, active# U52(tt(), V2) -> isNatList# V2) (active# U53 X -> active# X, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U53 X -> active# X, active# U52(X1, X2) -> active# X1) (active# U53 X -> active# X, active# isNatIList cons(V1, V2) -> isNatKind# V1) (active# U53 X -> active# X, active# isNatIList cons(V1, V2) -> isNatIListKind# V2) (active# U53 X -> active# X, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U53 X -> active# X, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U53 X -> active# X, active# isNatIList V -> isNatIListKind# V) (active# U53 X -> active# X, active# isNatIList V -> U31#(isNatIListKind V, V)) (active# U53 X -> active# X, active# U43 X -> U43# active X) (active# U53 X -> active# X, active# U43 X -> active# X) (active# U53 X -> active# X, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2)) (active# U53 X -> active# X, active# U41(tt(), V1, V2) -> isNat# V1) (active# U53 X -> active# X, active# U41(X1, X2, X3) -> U41#(active X1, X2, X3)) (active# U53 X -> active# X, active# U41(X1, X2, X3) -> active# X1) (active# U53 X -> active# X, active# U42(tt(), V2) -> isNatIList# V2) (active# U53 X -> active# X, active# U42(tt(), V2) -> U43# isNatIList V2) (active# U53 X -> active# X, active# U42(X1, X2) -> U42#(active X1, X2)) (active# U53 X -> active# X, active# U42(X1, X2) -> active# X1) (active# U53 X -> active# X, active# U31(tt(), V) -> U32# isNatList V) (active# U53 X -> active# X, active# U31(tt(), V) -> isNatList# V) (active# U53 X -> active# X, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U53 X -> active# X, active# U31(X1, X2) -> active# X1) (active# U53 X -> active# X, active# U32 X -> U32# active X) (active# U53 X -> active# X, active# U32 X -> active# X) (active# U53 X -> active# X, active# U21(tt(), V1) -> isNat# V1) (active# U53 X -> active# X, active# U21(tt(), V1) -> U22# isNat V1) (active# U53 X -> active# X, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U53 X -> active# X, active# U21(X1, X2) -> active# X1) (active# U53 X -> active# X, active# isNat length V1 -> isNatIListKind# V1) (active# U53 X -> active# X, active# isNat length V1 -> U11#(isNatIListKind V1, V1)) (active# U53 X -> active# X, active# isNat s V1 -> isNatKind# V1) (active# U53 X -> active# X, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U53 X -> active# X, active# U22 X -> U22# active X) (active# U53 X -> active# X, active# U22 X -> active# X) (active# U53 X -> active# X, active# U11(tt(), V1) -> isNatList# V1) (active# U53 X -> active# X, active# U11(tt(), V1) -> U12# isNatList V1) (active# U53 X -> active# X, active# U11(X1, X2) -> U11#(active X1, X2)) (active# U53 X -> active# X, active# U11(X1, X2) -> active# X1) (active# U53 X -> active# X, active# isNatList take(V1, V2) -> isNatKind# V1) (active# U53 X -> active# X, active# isNatList take(V1, V2) -> isNatIListKind# V2) (active# U53 X -> active# X, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U53 X -> active# X, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U53 X -> active# X, active# isNatList cons(V1, V2) -> isNatKind# V1) (active# U53 X -> active# X, active# isNatList cons(V1, V2) -> isNatIListKind# V2) (active# U53 X -> active# X, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U53 X -> active# X, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U53 X -> active# X, active# U12 X -> U12# active X) (active# U53 X -> active# X, active# U12 X -> active# X) (active# U53 X -> active# X, active# zeros() -> cons#(0(), zeros())) (active# U53 X -> active# X, active# cons(X1, X2) -> active# X1) (active# U53 X -> active# X, active# cons(X1, X2) -> cons#(active X1, X2)) (active# s X -> active# X, active# isNatKind length V1 -> isNatIListKind# V1) (active# s X -> active# X, active# isNatKind s V1 -> isNatKind# V1) (active# s X -> active# X, active# isNatIListKind take(V1, V2) -> isNatKind# V1) (active# s X -> active# X, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2) (active# s X -> active# X, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# s X -> active# X, active# isNatIListKind cons(V1, V2) -> isNatKind# V1) (active# s X -> active# X, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2) (active# s X -> active# X, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# s X -> active# X, active# and(X1, X2) -> and#(active X1, X2)) (active# s X -> active# X, active# and(X1, X2) -> active# X1) (active# s X -> active# X, active# U91(tt(), IL, M, N) -> take#(M, IL)) (active# s X -> active# X, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL))) (active# s X -> active# X, active# U91(X1, X2, X3, X4) -> U91#(active X1, X2, X3, X4)) (active# s X -> active# X, active# U91(X1, X2, X3, X4) -> active# X1) (active# s X -> active# X, active# take(s M, cons(N, IL)) -> isNatKind# M) (active# s X -> active# X, active# take(s M, cons(N, IL)) -> isNatKind# N) (active# s X -> active# X, active# take(s M, cons(N, IL)) -> isNatIListKind# IL) (active# s X -> active# X, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))) (active# s X -> active# X, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (active# s X -> active# X, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL)) (active# s X -> active# X, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M)) (active# s X -> active# X, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N)) (active# s X -> active# X, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)) (active# s X -> active# X, active# take(s M, cons(N, IL)) -> isNatIList# IL) (active# s X -> active# X, active# take(s M, cons(N, IL)) -> isNat# M) (active# s X -> active# X, active# take(s M, cons(N, IL)) -> isNat# N) (active# s X -> active# X, active# take(0(), IL) -> isNatIListKind# IL) (active# s X -> active# X, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL)) (active# s X -> active# X, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL)) (active# s X -> active# X, active# take(0(), IL) -> isNatIList# IL) (active# s X -> active# X, active# take(X1, X2) -> take#(active X1, X2)) (active# s X -> active# X, active# take(X1, X2) -> take#(X1, active X2)) (active# s X -> active# X, active# take(X1, X2) -> active# X2) (active# s X -> active# X, active# take(X1, X2) -> active# X1) (active# s X -> active# X, active# U81 X -> U81# active X) (active# s X -> active# X, active# U81 X -> active# X) (active# s X -> active# X, active# U71(tt(), L) -> length# L) (active# s X -> active# X, active# U71(tt(), L) -> s# length L) (active# s X -> active# X, active# U71(X1, X2) -> U71#(active X1, X2)) (active# s X -> active# X, active# U71(X1, X2) -> active# X1) (active# s X -> active# X, active# length cons(N, L) -> isNatKind# N) (active# s X -> active# X, active# length cons(N, L) -> isNatIListKind# L) (active# s X -> active# X, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N))) (active# s X -> active# X, active# length cons(N, L) -> and#(isNat N, isNatKind N)) (active# s X -> active# X, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L)) (active# s X -> active# X, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L)) (active# s X -> active# X, active# length cons(N, L) -> isNat# N) (active# s X -> active# X, active# length cons(N, L) -> isNatList# L) (active# s X -> active# X, active# length X -> length# active X) (active# s X -> active# X, active# length X -> active# X) (active# s X -> active# X, active# s X -> s# active X) (active# s X -> active# X, active# s X -> active# X) (active# s X -> active# X, active# U63 X -> U63# active X) (active# s X -> active# X, active# U63 X -> active# X) (active# s X -> active# X, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2)) (active# s X -> active# X, active# U61(tt(), V1, V2) -> isNat# V1) (active# s X -> active# X, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# s X -> active# X, active# U61(X1, X2, X3) -> active# X1) (active# s X -> active# X, active# U62(tt(), V2) -> U63# isNatIList V2) (active# s X -> active# X, active# U62(tt(), V2) -> isNatIList# V2) (active# s X -> active# X, active# U62(X1, X2) -> U62#(active X1, X2)) (active# s X -> active# X, active# U62(X1, X2) -> active# X1) (active# s X -> active# X, active# U53 X -> U53# active X) (active# s X -> active# X, active# U53 X -> active# X) (active# s X -> active# X, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2)) (active# s X -> active# X, active# U51(tt(), V1, V2) -> isNat# V1) (active# s X -> active# X, active# U51(X1, X2, X3) -> U51#(active X1, X2, X3)) (active# s X -> active# X, active# U51(X1, X2, X3) -> active# X1) (active# s X -> active# X, active# U52(tt(), V2) -> U53# isNatList V2) (active# s X -> active# X, active# U52(tt(), V2) -> isNatList# V2) (active# s X -> active# X, active# U52(X1, X2) -> U52#(active X1, X2)) (active# s X -> active# X, active# U52(X1, X2) -> active# X1) (active# s X -> active# X, active# isNatIList cons(V1, V2) -> isNatKind# V1) (active# s X -> active# X, active# isNatIList cons(V1, V2) -> isNatIListKind# V2) (active# s X -> active# X, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# s X -> active# X, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# s X -> active# X, active# isNatIList V -> isNatIListKind# V) (active# s X -> active# X, active# isNatIList V -> U31#(isNatIListKind V, V)) (active# s X -> active# X, active# U43 X -> U43# active X) (active# s X -> active# X, active# U43 X -> active# X) (active# s X -> active# X, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2)) (active# s X -> active# X, active# U41(tt(), V1, V2) -> isNat# V1) (active# s X -> active# X, active# U41(X1, X2, X3) -> U41#(active X1, X2, X3)) (active# s X -> active# X, active# U41(X1, X2, X3) -> active# X1) (active# s X -> active# X, active# U42(tt(), V2) -> isNatIList# V2) (active# s X -> active# X, active# U42(tt(), V2) -> U43# isNatIList V2) (active# s X -> active# X, active# U42(X1, X2) -> U42#(active X1, X2)) (active# s X -> active# X, active# U42(X1, X2) -> active# X1) (active# s X -> active# X, active# U31(tt(), V) -> U32# isNatList V) (active# s X -> active# X, active# U31(tt(), V) -> isNatList# V) (active# s X -> active# X, active# U31(X1, X2) -> U31#(active X1, X2)) (active# s X -> active# X, active# U31(X1, X2) -> active# X1) (active# s X -> active# X, active# U32 X -> U32# active X) (active# s X -> active# X, active# U32 X -> active# X) (active# s X -> active# X, active# U21(tt(), V1) -> isNat# V1) (active# s X -> active# X, active# U21(tt(), V1) -> U22# isNat V1) (active# s X -> active# X, active# U21(X1, X2) -> U21#(active X1, X2)) (active# s X -> active# X, active# U21(X1, X2) -> active# X1) (active# s X -> active# X, active# isNat length V1 -> isNatIListKind# V1) (active# s X -> active# X, active# isNat length V1 -> U11#(isNatIListKind V1, V1)) (active# s X -> active# X, active# isNat s V1 -> isNatKind# V1) (active# s X -> active# X, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# s X -> active# X, active# U22 X -> U22# active X) (active# s X -> active# X, active# U22 X -> active# X) (active# s X -> active# X, active# U11(tt(), V1) -> isNatList# V1) (active# s X -> active# X, active# U11(tt(), V1) -> U12# isNatList V1) (active# s X -> active# X, active# U11(X1, X2) -> U11#(active X1, X2)) (active# s X -> active# X, active# U11(X1, X2) -> active# X1) (active# s X -> active# X, active# isNatList take(V1, V2) -> isNatKind# V1) (active# s X -> active# X, active# isNatList take(V1, V2) -> isNatIListKind# V2) (active# s X -> active# X, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# s X -> active# X, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# s X -> active# X, active# isNatList cons(V1, V2) -> isNatKind# V1) (active# s X -> active# X, active# isNatList cons(V1, V2) -> isNatIListKind# V2) (active# s X -> active# X, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# s X -> active# X, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# s X -> active# X, active# U12 X -> U12# active X) (active# s X -> active# X, active# U12 X -> active# X) (active# s X -> active# X, active# zeros() -> cons#(0(), zeros())) (active# s X -> active# X, active# cons(X1, X2) -> active# X1) (active# s X -> active# X, active# cons(X1, X2) -> cons#(active X1, X2)) (active# U81 X -> active# X, active# isNatKind length V1 -> isNatIListKind# V1) (active# U81 X -> active# X, active# isNatKind s V1 -> isNatKind# V1) (active# U81 X -> active# X, active# isNatIListKind take(V1, V2) -> isNatKind# V1) (active# U81 X -> active# X, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2) (active# U81 X -> active# X, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U81 X -> active# X, active# isNatIListKind cons(V1, V2) -> isNatKind# V1) (active# U81 X -> active# X, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2) (active# U81 X -> active# X, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U81 X -> active# X, active# and(X1, X2) -> and#(active X1, X2)) (active# U81 X -> active# X, active# and(X1, X2) -> active# X1) (active# U81 X -> active# X, active# U91(tt(), IL, M, N) -> take#(M, IL)) (active# U81 X -> active# X, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL))) (active# U81 X -> active# X, active# U91(X1, X2, X3, X4) -> U91#(active X1, X2, X3, X4)) (active# U81 X -> active# X, active# U91(X1, X2, X3, X4) -> active# X1) (active# U81 X -> active# X, active# take(s M, cons(N, IL)) -> isNatKind# M) (active# U81 X -> active# X, active# take(s M, cons(N, IL)) -> isNatKind# N) (active# U81 X -> active# X, active# take(s M, cons(N, IL)) -> isNatIListKind# IL) (active# U81 X -> active# X, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))) (active# U81 X -> active# X, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (active# U81 X -> active# X, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL)) (active# U81 X -> active# X, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M)) (active# U81 X -> active# X, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N)) (active# U81 X -> active# X, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)) (active# U81 X -> active# X, active# take(s M, cons(N, IL)) -> isNatIList# IL) (active# U81 X -> active# X, active# take(s M, cons(N, IL)) -> isNat# M) (active# U81 X -> active# X, active# take(s M, cons(N, IL)) -> isNat# N) (active# U81 X -> active# X, active# take(0(), IL) -> isNatIListKind# IL) (active# U81 X -> active# X, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL)) (active# U81 X -> active# X, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL)) (active# U81 X -> active# X, active# take(0(), IL) -> isNatIList# IL) (active# U81 X -> active# X, active# take(X1, X2) -> take#(active X1, X2)) (active# U81 X -> active# X, active# take(X1, X2) -> take#(X1, active X2)) (active# U81 X -> active# X, active# take(X1, X2) -> active# X2) (active# U81 X -> active# X, active# take(X1, X2) -> active# X1) (active# U81 X -> active# X, active# U81 X -> U81# active X) (active# U81 X -> active# X, active# U81 X -> active# X) (active# U81 X -> active# X, active# U71(tt(), L) -> length# L) (active# U81 X -> active# X, active# U71(tt(), L) -> s# length L) (active# U81 X -> active# X, active# U71(X1, X2) -> U71#(active X1, X2)) (active# U81 X -> active# X, active# U71(X1, X2) -> active# X1) (active# U81 X -> active# X, active# length cons(N, L) -> isNatKind# N) (active# U81 X -> active# X, active# length cons(N, L) -> isNatIListKind# L) (active# U81 X -> active# X, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N))) (active# U81 X -> active# X, active# length cons(N, L) -> and#(isNat N, isNatKind N)) (active# U81 X -> active# X, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L)) (active# U81 X -> active# X, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L)) (active# U81 X -> active# X, active# length cons(N, L) -> isNat# N) (active# U81 X -> active# X, active# length cons(N, L) -> isNatList# L) (active# U81 X -> active# X, active# length X -> length# active X) (active# U81 X -> active# X, active# length X -> active# X) (active# U81 X -> active# X, active# s X -> s# active X) (active# U81 X -> active# X, active# s X -> active# X) (active# U81 X -> active# X, active# U63 X -> U63# active X) (active# U81 X -> active# X, active# U63 X -> active# X) (active# U81 X -> active# X, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2)) (active# U81 X -> active# X, active# U61(tt(), V1, V2) -> isNat# V1) (active# U81 X -> active# X, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U81 X -> active# X, active# U61(X1, X2, X3) -> active# X1) (active# U81 X -> active# X, active# U62(tt(), V2) -> U63# isNatIList V2) (active# U81 X -> active# X, active# U62(tt(), V2) -> isNatIList# V2) (active# U81 X -> active# X, active# U62(X1, X2) -> U62#(active X1, X2)) (active# U81 X -> active# X, active# U62(X1, X2) -> active# X1) (active# U81 X -> active# X, active# U53 X -> U53# active X) (active# U81 X -> active# X, active# U53 X -> active# X) (active# U81 X -> active# X, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2)) (active# U81 X -> active# X, active# U51(tt(), V1, V2) -> isNat# V1) (active# U81 X -> active# X, active# U51(X1, X2, X3) -> U51#(active X1, X2, X3)) (active# U81 X -> active# X, active# U51(X1, X2, X3) -> active# X1) (active# U81 X -> active# X, active# U52(tt(), V2) -> U53# isNatList V2) (active# U81 X -> active# X, active# U52(tt(), V2) -> isNatList# V2) (active# U81 X -> active# X, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U81 X -> active# X, active# U52(X1, X2) -> active# X1) (active# U81 X -> active# X, active# isNatIList cons(V1, V2) -> isNatKind# V1) (active# U81 X -> active# X, active# isNatIList cons(V1, V2) -> isNatIListKind# V2) (active# U81 X -> active# X, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U81 X -> active# X, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U81 X -> active# X, active# isNatIList V -> isNatIListKind# V) (active# U81 X -> active# X, active# isNatIList V -> U31#(isNatIListKind V, V)) (active# U81 X -> active# X, active# U43 X -> U43# active X) (active# U81 X -> active# X, active# U43 X -> active# X) (active# U81 X -> active# X, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2)) (active# U81 X -> active# X, active# U41(tt(), V1, V2) -> isNat# V1) (active# U81 X -> active# X, active# U41(X1, X2, X3) -> U41#(active X1, X2, X3)) (active# U81 X -> active# X, active# U41(X1, X2, X3) -> active# X1) (active# U81 X -> active# X, active# U42(tt(), V2) -> isNatIList# V2) (active# U81 X -> active# X, active# U42(tt(), V2) -> U43# isNatIList V2) (active# U81 X -> active# X, active# U42(X1, X2) -> U42#(active X1, X2)) (active# U81 X -> active# X, active# U42(X1, X2) -> active# X1) (active# U81 X -> active# X, active# U31(tt(), V) -> U32# isNatList V) (active# U81 X -> active# X, active# U31(tt(), V) -> isNatList# V) (active# U81 X -> active# X, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U81 X -> active# X, active# U31(X1, X2) -> active# X1) (active# U81 X -> active# X, active# U32 X -> U32# active X) (active# U81 X -> active# X, active# U32 X -> active# X) (active# U81 X -> active# X, active# U21(tt(), V1) -> isNat# V1) (active# U81 X -> active# X, active# U21(tt(), V1) -> U22# isNat V1) (active# U81 X -> active# X, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U81 X -> active# X, active# U21(X1, X2) -> active# X1) (active# U81 X -> active# X, active# isNat length V1 -> isNatIListKind# V1) (active# U81 X -> active# X, active# isNat length V1 -> U11#(isNatIListKind V1, V1)) (active# U81 X -> active# X, active# isNat s V1 -> isNatKind# V1) (active# U81 X -> active# X, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U81 X -> active# X, active# U22 X -> U22# active X) (active# U81 X -> active# X, active# U22 X -> active# X) (active# U81 X -> active# X, active# U11(tt(), V1) -> isNatList# V1) (active# U81 X -> active# X, active# U11(tt(), V1) -> U12# isNatList V1) (active# U81 X -> active# X, active# U11(X1, X2) -> U11#(active X1, X2)) (active# U81 X -> active# X, active# U11(X1, X2) -> active# X1) (active# U81 X -> active# X, active# isNatList take(V1, V2) -> isNatKind# V1) (active# U81 X -> active# X, active# isNatList take(V1, V2) -> isNatIListKind# V2) (active# U81 X -> active# X, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U81 X -> active# X, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U81 X -> active# X, active# isNatList cons(V1, V2) -> isNatKind# V1) (active# U81 X -> active# X, active# isNatList cons(V1, V2) -> isNatIListKind# V2) (active# U81 X -> active# X, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U81 X -> active# X, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U81 X -> active# X, active# U12 X -> U12# active X) (active# U81 X -> active# X, active# U12 X -> active# X) (active# U81 X -> active# X, active# zeros() -> cons#(0(), zeros())) (active# U81 X -> active# X, active# cons(X1, X2) -> active# X1) (active# U81 X -> active# X, active# cons(X1, X2) -> cons#(active X1, X2)) (U12# mark X -> U12# X, U12# ok X -> U12# X) (U12# mark X -> U12# X, U12# mark X -> U12# X) (isNatList# ok X -> isNatList# X, isNatList# ok X -> isNatList# X) (U22# ok X -> U22# X, U22# ok X -> U22# X) (U22# ok X -> U22# X, U22# mark X -> U22# X) (U32# mark X -> U32# X, U32# ok X -> U32# X) (U32# mark X -> U32# X, U32# mark X -> U32# X) (U43# mark X -> U43# X, U43# ok X -> U43# X) (U43# mark X -> U43# X, U43# mark X -> U43# X) (isNatIList# ok X -> isNatIList# X, isNatIList# ok X -> isNatIList# X) (U53# ok X -> U53# X, U53# ok X -> U53# X) (U53# ok X -> U53# X, U53# mark X -> U53# X) (U63# ok X -> U63# X, U63# ok X -> U63# X) (U63# ok X -> U63# X, U63# mark X -> U63# X) (s# ok X -> s# X, s# ok X -> s# X) (s# ok X -> s# X, s# mark X -> s# X) (length# ok X -> length# X, length# ok X -> length# X) (length# ok X -> length# X, length# mark X -> length# X) (U81# ok X -> U81# X, U81# ok X -> U81# X) (U81# ok X -> U81# X, U81# mark X -> U81# X) (isNatKind# ok X -> isNatKind# X, isNatKind# ok X -> isNatKind# X) (proper# isNatList X -> proper# X, proper# isNatKind X -> proper# X) (proper# isNatList X -> proper# X, proper# isNatKind X -> isNatKind# proper X) (proper# isNatList X -> proper# X, proper# isNatIListKind X -> proper# X) (proper# isNatList X -> proper# X, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# isNatList X -> proper# X, proper# and(X1, X2) -> proper# X2) (proper# isNatList X -> proper# X, proper# and(X1, X2) -> proper# X1) (proper# isNatList X -> proper# X, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# isNatList X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# isNatList X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# isNatList X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# isNatList X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# isNatList X -> proper# X, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# isNatList X -> proper# X, proper# take(X1, X2) -> proper# X2) (proper# isNatList X -> proper# X, proper# take(X1, X2) -> proper# X1) (proper# isNatList X -> proper# X, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# isNatList X -> proper# X, proper# U81 X -> proper# X) (proper# isNatList X -> proper# X, proper# U81 X -> U81# proper X) (proper# isNatList X -> proper# X, proper# U71(X1, X2) -> proper# X2) (proper# isNatList X -> proper# X, proper# U71(X1, X2) -> proper# X1) (proper# isNatList X -> proper# X, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# isNatList X -> proper# X, proper# length X -> proper# X) (proper# isNatList X -> proper# X, proper# length X -> length# proper X) (proper# isNatList X -> proper# X, proper# s X -> proper# X) (proper# isNatList X -> proper# X, proper# s X -> s# proper X) (proper# isNatList X -> proper# X, proper# U63 X -> proper# X) (proper# isNatList X -> proper# X, proper# U63 X -> U63# proper X) (proper# isNatList X -> proper# X, proper# U61(X1, X2, X3) -> proper# X3) (proper# isNatList X -> proper# X, proper# U61(X1, X2, X3) -> proper# X2) (proper# isNatList X -> proper# X, proper# U61(X1, X2, X3) -> proper# X1) (proper# isNatList X -> proper# X, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# isNatList X -> proper# X, proper# U62(X1, X2) -> proper# X2) (proper# isNatList X -> proper# X, proper# U62(X1, X2) -> proper# X1) (proper# isNatList X -> proper# X, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# isNatList X -> proper# X, proper# U53 X -> proper# X) (proper# isNatList X -> proper# X, proper# U53 X -> U53# proper X) (proper# isNatList X -> proper# X, proper# U51(X1, X2, X3) -> proper# X3) (proper# isNatList X -> proper# X, proper# U51(X1, X2, X3) -> proper# X2) (proper# isNatList X -> proper# X, proper# U51(X1, X2, X3) -> proper# X1) (proper# isNatList X -> proper# X, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# isNatList X -> proper# X, proper# U52(X1, X2) -> proper# X2) (proper# isNatList X -> proper# X, proper# U52(X1, X2) -> proper# X1) (proper# isNatList X -> proper# X, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# isNatList X -> proper# X, proper# isNatIList X -> proper# X) (proper# isNatList X -> proper# X, proper# isNatIList X -> isNatIList# proper X) (proper# isNatList X -> proper# X, proper# U43 X -> proper# X) (proper# isNatList X -> proper# X, proper# U43 X -> U43# proper X) (proper# isNatList X -> proper# X, proper# U41(X1, X2, X3) -> proper# X3) (proper# isNatList X -> proper# X, proper# U41(X1, X2, X3) -> proper# X2) (proper# isNatList X -> proper# X, proper# U41(X1, X2, X3) -> proper# X1) (proper# isNatList X -> proper# X, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# isNatList X -> proper# X, proper# U42(X1, X2) -> proper# X2) (proper# isNatList X -> proper# X, proper# U42(X1, X2) -> proper# X1) (proper# isNatList X -> proper# X, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# isNatList X -> proper# X, proper# U31(X1, X2) -> proper# X2) (proper# isNatList X -> proper# X, proper# U31(X1, X2) -> proper# X1) (proper# isNatList X -> proper# X, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# isNatList X -> proper# X, proper# U32 X -> proper# X) (proper# isNatList X -> proper# X, proper# U32 X -> U32# proper X) (proper# isNatList X -> proper# X, proper# U21(X1, X2) -> proper# X2) (proper# isNatList X -> proper# X, proper# U21(X1, X2) -> proper# X1) (proper# isNatList X -> proper# X, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# isNatList X -> proper# X, proper# isNat X -> proper# X) (proper# isNatList X -> proper# X, proper# isNat X -> isNat# proper X) (proper# isNatList X -> proper# X, proper# U22 X -> proper# X) (proper# isNatList X -> proper# X, proper# U22 X -> U22# proper X) (proper# isNatList X -> proper# X, proper# U11(X1, X2) -> proper# X2) (proper# isNatList X -> proper# X, proper# U11(X1, X2) -> proper# X1) (proper# isNatList X -> proper# X, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# isNatList X -> proper# X, proper# isNatList X -> proper# X) (proper# isNatList X -> proper# X, proper# isNatList X -> isNatList# proper X) (proper# isNatList X -> proper# X, proper# U12 X -> proper# X) (proper# isNatList X -> proper# X, proper# U12 X -> U12# proper X) (proper# isNatList X -> proper# X, proper# cons(X1, X2) -> proper# X2) (proper# isNatList X -> proper# X, proper# cons(X1, X2) -> proper# X1) (proper# isNatList X -> proper# X, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# isNat X -> proper# X, proper# isNatKind X -> proper# X) (proper# isNat X -> proper# X, proper# isNatKind X -> isNatKind# proper X) (proper# isNat X -> proper# X, proper# isNatIListKind X -> proper# X) (proper# isNat X -> proper# X, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# isNat X -> proper# X, proper# and(X1, X2) -> proper# X2) (proper# isNat X -> proper# X, proper# and(X1, X2) -> proper# X1) (proper# isNat X -> proper# X, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# isNat X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# isNat X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# isNat X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# isNat X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# isNat X -> proper# X, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# isNat X -> proper# X, proper# take(X1, X2) -> proper# X2) (proper# isNat X -> proper# X, proper# take(X1, X2) -> proper# X1) (proper# isNat X -> proper# X, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# isNat X -> proper# X, proper# U81 X -> proper# X) (proper# isNat X -> proper# X, proper# U81 X -> U81# proper X) (proper# isNat X -> proper# X, proper# U71(X1, X2) -> proper# X2) (proper# isNat X -> proper# X, proper# U71(X1, X2) -> proper# X1) (proper# isNat X -> proper# X, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# isNat X -> proper# X, proper# length X -> proper# X) (proper# isNat X -> proper# X, proper# length X -> length# proper X) (proper# isNat X -> proper# X, proper# s X -> proper# X) (proper# isNat X -> proper# X, proper# s X -> s# proper X) (proper# isNat X -> proper# X, proper# U63 X -> proper# X) (proper# isNat X -> proper# X, proper# U63 X -> U63# proper X) (proper# isNat X -> proper# X, proper# U61(X1, X2, X3) -> proper# X3) (proper# isNat X -> proper# X, proper# U61(X1, X2, X3) -> proper# X2) (proper# isNat X -> proper# X, proper# U61(X1, X2, X3) -> proper# X1) (proper# isNat X -> proper# X, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# isNat X -> proper# X, proper# U62(X1, X2) -> proper# X2) (proper# isNat X -> proper# X, proper# U62(X1, X2) -> proper# X1) (proper# isNat X -> proper# X, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# isNat X -> proper# X, proper# U53 X -> proper# X) (proper# isNat X -> proper# X, proper# U53 X -> U53# proper X) (proper# isNat X -> proper# X, proper# U51(X1, X2, X3) -> proper# X3) (proper# isNat X -> proper# X, proper# U51(X1, X2, X3) -> proper# X2) (proper# isNat X -> proper# X, proper# U51(X1, X2, X3) -> proper# X1) (proper# isNat X -> proper# X, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# isNat X -> proper# X, proper# U52(X1, X2) -> proper# X2) (proper# isNat X -> proper# X, proper# U52(X1, X2) -> proper# X1) (proper# isNat X -> proper# X, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# isNat X -> proper# X, proper# isNatIList X -> proper# X) (proper# isNat X -> proper# X, proper# isNatIList X -> isNatIList# proper X) (proper# isNat X -> proper# X, proper# U43 X -> proper# X) (proper# isNat X -> proper# X, proper# U43 X -> U43# proper X) (proper# isNat X -> proper# X, proper# U41(X1, X2, X3) -> proper# X3) (proper# isNat X -> proper# X, proper# U41(X1, X2, X3) -> proper# X2) (proper# isNat X -> proper# X, proper# U41(X1, X2, X3) -> proper# X1) (proper# isNat X -> proper# X, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# isNat X -> proper# X, proper# U42(X1, X2) -> proper# X2) (proper# isNat X -> proper# X, proper# U42(X1, X2) -> proper# X1) (proper# isNat X -> proper# X, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# isNat X -> proper# X, proper# U31(X1, X2) -> proper# X2) (proper# isNat X -> proper# X, proper# U31(X1, X2) -> proper# X1) (proper# isNat X -> proper# X, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# isNat X -> proper# X, proper# U32 X -> proper# X) (proper# isNat X -> proper# X, proper# U32 X -> U32# proper X) (proper# isNat X -> proper# X, proper# U21(X1, X2) -> proper# X2) (proper# isNat X -> proper# X, proper# U21(X1, X2) -> proper# X1) (proper# isNat X -> proper# X, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# isNat X -> proper# X, proper# isNat X -> proper# X) (proper# isNat X -> proper# X, proper# isNat X -> isNat# proper X) (proper# isNat X -> proper# X, proper# U22 X -> proper# X) (proper# isNat X -> proper# X, proper# U22 X -> U22# proper X) (proper# isNat X -> proper# X, proper# U11(X1, X2) -> proper# X2) (proper# isNat X -> proper# X, proper# U11(X1, X2) -> proper# X1) (proper# isNat X -> proper# X, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# isNat X -> proper# X, proper# isNatList X -> proper# X) (proper# isNat X -> proper# X, proper# isNatList X -> isNatList# proper X) (proper# isNat X -> proper# X, proper# U12 X -> proper# X) (proper# isNat X -> proper# X, proper# U12 X -> U12# proper X) (proper# isNat X -> proper# X, proper# cons(X1, X2) -> proper# X2) (proper# isNat X -> proper# X, proper# cons(X1, X2) -> proper# X1) (proper# isNat X -> proper# X, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# U43 X -> proper# X, proper# isNatKind X -> proper# X) (proper# U43 X -> proper# X, proper# isNatKind X -> isNatKind# proper X) (proper# U43 X -> proper# X, proper# isNatIListKind X -> proper# X) (proper# U43 X -> proper# X, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U43 X -> proper# X, proper# and(X1, X2) -> proper# X2) (proper# U43 X -> proper# X, proper# and(X1, X2) -> proper# X1) (proper# U43 X -> proper# X, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U43 X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U43 X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U43 X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U43 X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U43 X -> proper# X, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U43 X -> proper# X, proper# take(X1, X2) -> proper# X2) (proper# U43 X -> proper# X, proper# take(X1, X2) -> proper# X1) (proper# U43 X -> proper# X, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U43 X -> proper# X, proper# U81 X -> proper# X) (proper# U43 X -> proper# X, proper# U81 X -> U81# proper X) (proper# U43 X -> proper# X, proper# U71(X1, X2) -> proper# X2) (proper# U43 X -> proper# X, proper# U71(X1, X2) -> proper# X1) (proper# U43 X -> proper# X, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U43 X -> proper# X, proper# length X -> proper# X) (proper# U43 X -> proper# X, proper# length X -> length# proper X) (proper# U43 X -> proper# X, proper# s X -> proper# X) (proper# U43 X -> proper# X, proper# s X -> s# proper X) (proper# U43 X -> proper# X, proper# U63 X -> proper# X) (proper# U43 X -> proper# X, proper# U63 X -> U63# proper X) (proper# U43 X -> proper# X, proper# U61(X1, X2, X3) -> proper# X3) (proper# U43 X -> proper# X, proper# U61(X1, X2, X3) -> proper# X2) (proper# U43 X -> proper# X, proper# U61(X1, X2, X3) -> proper# X1) (proper# U43 X -> proper# X, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U43 X -> proper# X, proper# U62(X1, X2) -> proper# X2) (proper# U43 X -> proper# X, proper# U62(X1, X2) -> proper# X1) (proper# U43 X -> proper# X, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U43 X -> proper# X, proper# U53 X -> proper# X) (proper# U43 X -> proper# X, proper# U53 X -> U53# proper X) (proper# U43 X -> proper# X, proper# U51(X1, X2, X3) -> proper# X3) (proper# U43 X -> proper# X, proper# U51(X1, X2, X3) -> proper# X2) (proper# U43 X -> proper# X, proper# U51(X1, X2, X3) -> proper# X1) (proper# U43 X -> proper# X, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U43 X -> proper# X, proper# U52(X1, X2) -> proper# X2) (proper# U43 X -> proper# X, proper# U52(X1, X2) -> proper# X1) (proper# U43 X -> proper# X, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U43 X -> proper# X, proper# isNatIList X -> proper# X) (proper# U43 X -> proper# X, proper# isNatIList X -> isNatIList# proper X) (proper# U43 X -> proper# X, proper# U43 X -> proper# X) (proper# U43 X -> proper# X, proper# U43 X -> U43# proper X) (proper# U43 X -> proper# X, proper# U41(X1, X2, X3) -> proper# X3) (proper# U43 X -> proper# X, proper# U41(X1, X2, X3) -> proper# X2) (proper# U43 X -> proper# X, proper# U41(X1, X2, X3) -> proper# X1) (proper# U43 X -> proper# X, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U43 X -> proper# X, proper# U42(X1, X2) -> proper# X2) (proper# U43 X -> proper# X, proper# U42(X1, X2) -> proper# X1) (proper# U43 X -> proper# X, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U43 X -> proper# X, proper# U31(X1, X2) -> proper# X2) (proper# U43 X -> proper# X, proper# U31(X1, X2) -> proper# X1) (proper# U43 X -> proper# X, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U43 X -> proper# X, proper# U32 X -> proper# X) (proper# U43 X -> proper# X, proper# U32 X -> U32# proper X) (proper# U43 X -> proper# X, proper# U21(X1, X2) -> proper# X2) (proper# U43 X -> proper# X, proper# U21(X1, X2) -> proper# X1) (proper# U43 X -> proper# X, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U43 X -> proper# X, proper# isNat X -> proper# X) (proper# U43 X -> proper# X, proper# isNat X -> isNat# proper X) (proper# U43 X -> proper# X, proper# U22 X -> proper# X) (proper# U43 X -> proper# X, proper# U22 X -> U22# proper X) (proper# U43 X -> proper# X, proper# U11(X1, X2) -> proper# X2) (proper# U43 X -> proper# X, proper# U11(X1, X2) -> proper# X1) (proper# U43 X -> proper# X, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U43 X -> proper# X, proper# isNatList X -> proper# X) (proper# U43 X -> proper# X, proper# isNatList X -> isNatList# proper X) (proper# U43 X -> proper# X, proper# U12 X -> proper# X) (proper# U43 X -> proper# X, proper# U12 X -> U12# proper X) (proper# U43 X -> proper# X, proper# cons(X1, X2) -> proper# X2) (proper# U43 X -> proper# X, proper# cons(X1, X2) -> proper# X1) (proper# U43 X -> proper# X, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# U53 X -> proper# X, proper# isNatKind X -> proper# X) (proper# U53 X -> proper# X, proper# isNatKind X -> isNatKind# proper X) (proper# U53 X -> proper# X, proper# isNatIListKind X -> proper# X) (proper# U53 X -> proper# X, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U53 X -> proper# X, proper# and(X1, X2) -> proper# X2) (proper# U53 X -> proper# X, proper# and(X1, X2) -> proper# X1) (proper# U53 X -> proper# X, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U53 X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U53 X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U53 X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U53 X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U53 X -> proper# X, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U53 X -> proper# X, proper# take(X1, X2) -> proper# X2) (proper# U53 X -> proper# X, proper# take(X1, X2) -> proper# X1) (proper# U53 X -> proper# X, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U53 X -> proper# X, proper# U81 X -> proper# X) (proper# U53 X -> proper# X, proper# U81 X -> U81# proper X) (proper# U53 X -> proper# X, proper# U71(X1, X2) -> proper# X2) (proper# U53 X -> proper# X, proper# U71(X1, X2) -> proper# X1) (proper# U53 X -> proper# X, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U53 X -> proper# X, proper# length X -> proper# X) (proper# U53 X -> proper# X, proper# length X -> length# proper X) (proper# U53 X -> proper# X, proper# s X -> proper# X) (proper# U53 X -> proper# X, proper# s X -> s# proper X) (proper# U53 X -> proper# X, proper# U63 X -> proper# X) (proper# U53 X -> proper# X, proper# U63 X -> U63# proper X) (proper# U53 X -> proper# X, proper# U61(X1, X2, X3) -> proper# X3) (proper# U53 X -> proper# X, proper# U61(X1, X2, X3) -> proper# X2) (proper# U53 X -> proper# X, proper# U61(X1, X2, X3) -> proper# X1) (proper# U53 X -> proper# X, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U53 X -> proper# X, proper# U62(X1, X2) -> proper# X2) (proper# U53 X -> proper# X, proper# U62(X1, X2) -> proper# X1) (proper# U53 X -> proper# X, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U53 X -> proper# X, proper# U53 X -> proper# X) (proper# U53 X -> proper# X, proper# U53 X -> U53# proper X) (proper# U53 X -> proper# X, proper# U51(X1, X2, X3) -> proper# X3) (proper# U53 X -> proper# X, proper# U51(X1, X2, X3) -> proper# X2) (proper# U53 X -> proper# X, proper# U51(X1, X2, X3) -> proper# X1) (proper# U53 X -> proper# X, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U53 X -> proper# X, proper# U52(X1, X2) -> proper# X2) (proper# U53 X -> proper# X, proper# U52(X1, X2) -> proper# X1) (proper# U53 X -> proper# X, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U53 X -> proper# X, proper# isNatIList X -> proper# X) (proper# U53 X -> proper# X, proper# isNatIList X -> isNatIList# proper X) (proper# U53 X -> proper# X, proper# U43 X -> proper# X) (proper# U53 X -> proper# X, proper# U43 X -> U43# proper X) (proper# U53 X -> proper# X, proper# U41(X1, X2, X3) -> proper# X3) (proper# U53 X -> proper# X, proper# U41(X1, X2, X3) -> proper# X2) (proper# U53 X -> proper# X, proper# U41(X1, X2, X3) -> proper# X1) (proper# U53 X -> proper# X, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U53 X -> proper# X, proper# U42(X1, X2) -> proper# X2) (proper# U53 X -> proper# X, proper# U42(X1, X2) -> proper# X1) (proper# U53 X -> proper# X, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U53 X -> proper# X, proper# U31(X1, X2) -> proper# X2) (proper# U53 X -> proper# X, proper# U31(X1, X2) -> proper# X1) (proper# U53 X -> proper# X, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U53 X -> proper# X, proper# U32 X -> proper# X) (proper# U53 X -> proper# X, proper# U32 X -> U32# proper X) (proper# U53 X -> proper# X, proper# U21(X1, X2) -> proper# X2) (proper# U53 X -> proper# X, proper# U21(X1, X2) -> proper# X1) (proper# U53 X -> proper# X, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U53 X -> proper# X, proper# isNat X -> proper# X) (proper# U53 X -> proper# X, proper# isNat X -> isNat# proper X) (proper# U53 X -> proper# X, proper# U22 X -> proper# X) (proper# U53 X -> proper# X, proper# U22 X -> U22# proper X) (proper# U53 X -> proper# X, proper# U11(X1, X2) -> proper# X2) (proper# U53 X -> proper# X, proper# U11(X1, X2) -> proper# X1) (proper# U53 X -> proper# X, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U53 X -> proper# X, proper# isNatList X -> proper# X) (proper# U53 X -> proper# X, proper# isNatList X -> isNatList# proper X) (proper# U53 X -> proper# X, proper# U12 X -> proper# X) (proper# U53 X -> proper# X, proper# U12 X -> U12# proper X) (proper# U53 X -> proper# X, proper# cons(X1, X2) -> proper# X2) (proper# U53 X -> proper# X, proper# cons(X1, X2) -> proper# X1) (proper# U53 X -> proper# X, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# s X -> proper# X, proper# isNatKind X -> proper# X) (proper# s X -> proper# X, proper# isNatKind X -> isNatKind# proper X) (proper# s X -> proper# X, proper# isNatIListKind X -> proper# X) (proper# s X -> proper# X, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# s X -> proper# X, proper# and(X1, X2) -> proper# X2) (proper# s X -> proper# X, proper# and(X1, X2) -> proper# X1) (proper# s X -> proper# X, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# s X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# s X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# s X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# s X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# s X -> proper# X, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# s X -> proper# X, proper# take(X1, X2) -> proper# X2) (proper# s X -> proper# X, proper# take(X1, X2) -> proper# X1) (proper# s X -> proper# X, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# s X -> proper# X, proper# U81 X -> proper# X) (proper# s X -> proper# X, proper# U81 X -> U81# proper X) (proper# s X -> proper# X, proper# U71(X1, X2) -> proper# X2) (proper# s X -> proper# X, proper# U71(X1, X2) -> proper# X1) (proper# s X -> proper# X, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# s X -> proper# X, proper# length X -> proper# X) (proper# s X -> proper# X, proper# length X -> length# proper X) (proper# s X -> proper# X, proper# s X -> proper# X) (proper# s X -> proper# X, proper# s X -> s# proper X) (proper# s X -> proper# X, proper# U63 X -> proper# X) (proper# s X -> proper# X, proper# U63 X -> U63# proper X) (proper# s X -> proper# X, proper# U61(X1, X2, X3) -> proper# X3) (proper# s X -> proper# X, proper# U61(X1, X2, X3) -> proper# X2) (proper# s X -> proper# X, proper# U61(X1, X2, X3) -> proper# X1) (proper# s X -> proper# X, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# s X -> proper# X, proper# U62(X1, X2) -> proper# X2) (proper# s X -> proper# X, proper# U62(X1, X2) -> proper# X1) (proper# s X -> proper# X, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# s X -> proper# X, proper# U53 X -> proper# X) (proper# s X -> proper# X, proper# U53 X -> U53# proper X) (proper# s X -> proper# X, proper# U51(X1, X2, X3) -> proper# X3) (proper# s X -> proper# X, proper# U51(X1, X2, X3) -> proper# X2) (proper# s X -> proper# X, proper# U51(X1, X2, X3) -> proper# X1) (proper# s X -> proper# X, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# s X -> proper# X, proper# U52(X1, X2) -> proper# X2) (proper# s X -> proper# X, proper# U52(X1, X2) -> proper# X1) (proper# s X -> proper# X, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# s X -> proper# X, proper# isNatIList X -> proper# X) (proper# s X -> proper# X, proper# isNatIList X -> isNatIList# proper X) (proper# s X -> proper# X, proper# U43 X -> proper# X) (proper# s X -> proper# X, proper# U43 X -> U43# proper X) (proper# s X -> proper# X, proper# U41(X1, X2, X3) -> proper# X3) (proper# s X -> proper# X, proper# U41(X1, X2, X3) -> proper# X2) (proper# s X -> proper# X, proper# U41(X1, X2, X3) -> proper# X1) (proper# s X -> proper# X, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# s X -> proper# X, proper# U42(X1, X2) -> proper# X2) (proper# s X -> proper# X, proper# U42(X1, X2) -> proper# X1) (proper# s X -> proper# X, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# s X -> proper# X, proper# U31(X1, X2) -> proper# X2) (proper# s X -> proper# X, proper# U31(X1, X2) -> proper# X1) (proper# s X -> proper# X, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# s X -> proper# X, proper# U32 X -> proper# X) (proper# s X -> proper# X, proper# U32 X -> U32# proper X) (proper# s X -> proper# X, proper# U21(X1, X2) -> proper# X2) (proper# s X -> proper# X, proper# U21(X1, X2) -> proper# X1) (proper# s X -> proper# X, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# s X -> proper# X, proper# isNat X -> proper# X) (proper# s X -> proper# X, proper# isNat X -> isNat# proper X) (proper# s X -> proper# X, proper# U22 X -> proper# X) (proper# s X -> proper# X, proper# U22 X -> U22# proper X) (proper# s X -> proper# X, proper# U11(X1, X2) -> proper# X2) (proper# s X -> proper# X, proper# U11(X1, X2) -> proper# X1) (proper# s X -> proper# X, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# s X -> proper# X, proper# isNatList X -> proper# X) (proper# s X -> proper# X, proper# isNatList X -> isNatList# proper X) (proper# s X -> proper# X, proper# U12 X -> proper# X) (proper# s X -> proper# X, proper# U12 X -> U12# proper X) (proper# s X -> proper# X, proper# cons(X1, X2) -> proper# X2) (proper# s X -> proper# X, proper# cons(X1, X2) -> proper# X1) (proper# s X -> proper# X, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# U81 X -> proper# X, proper# isNatKind X -> proper# X) (proper# U81 X -> proper# X, proper# isNatKind X -> isNatKind# proper X) (proper# U81 X -> proper# X, proper# isNatIListKind X -> proper# X) (proper# U81 X -> proper# X, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U81 X -> proper# X, proper# and(X1, X2) -> proper# X2) (proper# U81 X -> proper# X, proper# and(X1, X2) -> proper# X1) (proper# U81 X -> proper# X, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U81 X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U81 X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U81 X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U81 X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U81 X -> proper# X, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U81 X -> proper# X, proper# take(X1, X2) -> proper# X2) (proper# U81 X -> proper# X, proper# take(X1, X2) -> proper# X1) (proper# U81 X -> proper# X, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U81 X -> proper# X, proper# U81 X -> proper# X) (proper# U81 X -> proper# X, proper# U81 X -> U81# proper X) (proper# U81 X -> proper# X, proper# U71(X1, X2) -> proper# X2) (proper# U81 X -> proper# X, proper# U71(X1, X2) -> proper# X1) (proper# U81 X -> proper# X, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U81 X -> proper# X, proper# length X -> proper# X) (proper# U81 X -> proper# X, proper# length X -> length# proper X) (proper# U81 X -> proper# X, proper# s X -> proper# X) (proper# U81 X -> proper# X, proper# s X -> s# proper X) (proper# U81 X -> proper# X, proper# U63 X -> proper# X) (proper# U81 X -> proper# X, proper# U63 X -> U63# proper X) (proper# U81 X -> proper# X, proper# U61(X1, X2, X3) -> proper# X3) (proper# U81 X -> proper# X, proper# U61(X1, X2, X3) -> proper# X2) (proper# U81 X -> proper# X, proper# U61(X1, X2, X3) -> proper# X1) (proper# U81 X -> proper# X, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U81 X -> proper# X, proper# U62(X1, X2) -> proper# X2) (proper# U81 X -> proper# X, proper# U62(X1, X2) -> proper# X1) (proper# U81 X -> proper# X, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U81 X -> proper# X, proper# U53 X -> proper# X) (proper# U81 X -> proper# X, proper# U53 X -> U53# proper X) (proper# U81 X -> proper# X, proper# U51(X1, X2, X3) -> proper# X3) (proper# U81 X -> proper# X, proper# U51(X1, X2, X3) -> proper# X2) (proper# U81 X -> proper# X, proper# U51(X1, X2, X3) -> proper# X1) (proper# U81 X -> proper# X, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U81 X -> proper# X, proper# U52(X1, X2) -> proper# X2) (proper# U81 X -> proper# X, proper# U52(X1, X2) -> proper# X1) (proper# U81 X -> proper# X, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U81 X -> proper# X, proper# isNatIList X -> proper# X) (proper# U81 X -> proper# X, proper# isNatIList X -> isNatIList# proper X) (proper# U81 X -> proper# X, proper# U43 X -> proper# X) (proper# U81 X -> proper# X, proper# U43 X -> U43# proper X) (proper# U81 X -> proper# X, proper# U41(X1, X2, X3) -> proper# X3) (proper# U81 X -> proper# X, proper# U41(X1, X2, X3) -> proper# X2) (proper# U81 X -> proper# X, proper# U41(X1, X2, X3) -> proper# X1) (proper# U81 X -> proper# X, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U81 X -> proper# X, proper# U42(X1, X2) -> proper# X2) (proper# U81 X -> proper# X, proper# U42(X1, X2) -> proper# X1) (proper# U81 X -> proper# X, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U81 X -> proper# X, proper# U31(X1, X2) -> proper# X2) (proper# U81 X -> proper# X, proper# U31(X1, X2) -> proper# X1) (proper# U81 X -> proper# X, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U81 X -> proper# X, proper# U32 X -> proper# X) (proper# U81 X -> proper# X, proper# U32 X -> U32# proper X) (proper# U81 X -> proper# X, proper# U21(X1, X2) -> proper# X2) (proper# U81 X -> proper# X, proper# U21(X1, X2) -> proper# X1) (proper# U81 X -> proper# X, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U81 X -> proper# X, proper# isNat X -> proper# X) (proper# U81 X -> proper# X, proper# isNat X -> isNat# proper X) (proper# U81 X -> proper# X, proper# U22 X -> proper# X) (proper# U81 X -> proper# X, proper# U22 X -> U22# proper X) (proper# U81 X -> proper# X, proper# U11(X1, X2) -> proper# X2) (proper# U81 X -> proper# X, proper# U11(X1, X2) -> proper# X1) (proper# U81 X -> proper# X, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U81 X -> proper# X, proper# isNatList X -> proper# X) (proper# U81 X -> proper# X, proper# isNatList X -> isNatList# proper X) (proper# U81 X -> proper# X, proper# U12 X -> proper# X) (proper# U81 X -> proper# X, proper# U12 X -> U12# proper X) (proper# U81 X -> proper# X, proper# cons(X1, X2) -> proper# X2) (proper# U81 X -> proper# X, proper# cons(X1, X2) -> proper# X1) (proper# U81 X -> proper# X, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# isNatKind X -> proper# X, proper# isNatKind X -> proper# X) (proper# isNatKind X -> proper# X, proper# isNatKind X -> isNatKind# proper X) (proper# isNatKind X -> proper# X, proper# isNatIListKind X -> proper# X) (proper# isNatKind X -> proper# X, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# isNatKind X -> proper# X, proper# and(X1, X2) -> proper# X2) (proper# isNatKind X -> proper# X, proper# and(X1, X2) -> proper# X1) (proper# isNatKind X -> proper# X, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# isNatKind X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# isNatKind X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# isNatKind X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# isNatKind X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# isNatKind X -> proper# X, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# isNatKind X -> proper# X, proper# take(X1, X2) -> proper# X2) (proper# isNatKind X -> proper# X, proper# take(X1, X2) -> proper# X1) (proper# isNatKind X -> proper# X, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# isNatKind X -> proper# X, proper# U81 X -> proper# X) (proper# isNatKind X -> proper# X, proper# U81 X -> U81# proper X) (proper# isNatKind X -> proper# X, proper# U71(X1, X2) -> proper# X2) (proper# isNatKind X -> proper# X, proper# U71(X1, X2) -> proper# X1) (proper# isNatKind X -> proper# X, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# isNatKind X -> proper# X, proper# length X -> proper# X) (proper# isNatKind X -> proper# X, proper# length X -> length# proper X) (proper# isNatKind X -> proper# X, proper# s X -> proper# X) (proper# isNatKind X -> proper# X, proper# s X -> s# proper X) (proper# isNatKind X -> proper# X, proper# U63 X -> proper# X) (proper# isNatKind X -> proper# X, proper# U63 X -> U63# proper X) (proper# isNatKind X -> proper# X, proper# U61(X1, X2, X3) -> proper# X3) (proper# isNatKind X -> proper# X, proper# U61(X1, X2, X3) -> proper# X2) (proper# isNatKind X -> proper# X, proper# U61(X1, X2, X3) -> proper# X1) (proper# isNatKind X -> proper# X, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# isNatKind X -> proper# X, proper# U62(X1, X2) -> proper# X2) (proper# isNatKind X -> proper# X, proper# U62(X1, X2) -> proper# X1) (proper# isNatKind X -> proper# X, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# isNatKind X -> proper# X, proper# U53 X -> proper# X) (proper# isNatKind X -> proper# X, proper# U53 X -> U53# proper X) (proper# isNatKind X -> proper# X, proper# U51(X1, X2, X3) -> proper# X3) (proper# isNatKind X -> proper# X, proper# U51(X1, X2, X3) -> proper# X2) (proper# isNatKind X -> proper# X, proper# U51(X1, X2, X3) -> proper# X1) (proper# isNatKind X -> proper# X, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# isNatKind X -> proper# X, proper# U52(X1, X2) -> proper# X2) (proper# isNatKind X -> proper# X, proper# U52(X1, X2) -> proper# X1) (proper# isNatKind X -> proper# X, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# isNatKind X -> proper# X, proper# isNatIList X -> proper# X) (proper# isNatKind X -> proper# X, proper# isNatIList X -> isNatIList# proper X) (proper# isNatKind X -> proper# X, proper# U43 X -> proper# X) (proper# isNatKind X -> proper# X, proper# U43 X -> U43# proper X) (proper# isNatKind X -> proper# X, proper# U41(X1, X2, X3) -> proper# X3) (proper# isNatKind X -> proper# X, proper# U41(X1, X2, X3) -> proper# X2) (proper# isNatKind X -> proper# X, proper# U41(X1, X2, X3) -> proper# X1) (proper# isNatKind X -> proper# X, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# isNatKind X -> proper# X, proper# U42(X1, X2) -> proper# X2) (proper# isNatKind X -> proper# X, proper# U42(X1, X2) -> proper# X1) (proper# isNatKind X -> proper# X, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# isNatKind X -> proper# X, proper# U31(X1, X2) -> proper# X2) (proper# isNatKind X -> proper# X, proper# U31(X1, X2) -> proper# X1) (proper# isNatKind X -> proper# X, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# isNatKind X -> proper# X, proper# U32 X -> proper# X) (proper# isNatKind X -> proper# X, proper# U32 X -> U32# proper X) (proper# isNatKind X -> proper# X, proper# U21(X1, X2) -> proper# X2) (proper# isNatKind X -> proper# X, proper# U21(X1, X2) -> proper# X1) (proper# isNatKind X -> proper# X, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# isNatKind X -> proper# X, proper# isNat X -> proper# X) (proper# isNatKind X -> proper# X, proper# isNat X -> isNat# proper X) (proper# isNatKind X -> proper# X, proper# U22 X -> proper# X) (proper# isNatKind X -> proper# X, proper# U22 X -> U22# proper X) (proper# isNatKind X -> proper# X, proper# U11(X1, X2) -> proper# X2) (proper# isNatKind X -> proper# X, proper# U11(X1, X2) -> proper# X1) (proper# isNatKind X -> proper# X, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# isNatKind X -> proper# X, proper# isNatList X -> proper# X) (proper# isNatKind X -> proper# X, proper# isNatList X -> isNatList# proper X) (proper# isNatKind X -> proper# X, proper# U12 X -> proper# X) (proper# isNatKind X -> proper# X, proper# U12 X -> U12# proper X) (proper# isNatKind X -> proper# X, proper# cons(X1, X2) -> proper# X2) (proper# isNatKind X -> proper# X, proper# cons(X1, X2) -> proper# X1) (proper# isNatKind X -> proper# X, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (top# ok X -> active# X, active# isNatKind length V1 -> isNatIListKind# V1) (top# ok X -> active# X, active# isNatKind s V1 -> isNatKind# V1) (top# ok X -> active# X, active# isNatIListKind take(V1, V2) -> isNatKind# V1) (top# ok X -> active# X, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2) (top# ok X -> active# X, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (top# ok X -> active# X, active# isNatIListKind cons(V1, V2) -> isNatKind# V1) (top# ok X -> active# X, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2) (top# ok X -> active# X, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (top# ok X -> active# X, active# and(X1, X2) -> and#(active X1, X2)) (top# ok X -> active# X, active# and(X1, X2) -> active# X1) (top# ok X -> active# X, active# U91(tt(), IL, M, N) -> take#(M, IL)) (top# ok X -> active# X, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL))) (top# ok X -> active# X, active# U91(X1, X2, X3, X4) -> U91#(active X1, X2, X3, X4)) (top# ok X -> active# X, active# U91(X1, X2, X3, X4) -> active# X1) (top# ok X -> active# X, active# take(s M, cons(N, IL)) -> isNatKind# M) (top# ok X -> active# X, active# take(s M, cons(N, IL)) -> isNatKind# N) (top# ok X -> active# X, active# take(s M, cons(N, IL)) -> isNatIListKind# IL) (top# ok X -> active# X, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))) (top# ok X -> active# X, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (top# ok X -> active# X, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL)) (top# ok X -> active# X, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M)) (top# ok X -> active# X, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N)) (top# ok X -> active# X, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)) (top# ok X -> active# X, active# take(s M, cons(N, IL)) -> isNatIList# IL) (top# ok X -> active# X, active# take(s M, cons(N, IL)) -> isNat# M) (top# ok X -> active# X, active# take(s M, cons(N, IL)) -> isNat# N) (top# ok X -> active# X, active# take(0(), IL) -> isNatIListKind# IL) (top# ok X -> active# X, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL)) (top# ok X -> active# X, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL)) (top# ok X -> active# X, active# take(0(), IL) -> isNatIList# IL) (top# ok X -> active# X, active# take(X1, X2) -> take#(active X1, X2)) (top# ok X -> active# X, active# take(X1, X2) -> take#(X1, active X2)) (top# ok X -> active# X, active# take(X1, X2) -> active# X2) (top# ok X -> active# X, active# take(X1, X2) -> active# X1) (top# ok X -> active# X, active# U81 X -> U81# active X) (top# ok X -> active# X, active# U81 X -> active# X) (top# ok X -> active# X, active# U71(tt(), L) -> length# L) (top# ok X -> active# X, active# U71(tt(), L) -> s# length L) (top# ok X -> active# X, active# U71(X1, X2) -> U71#(active X1, X2)) (top# ok X -> active# X, active# U71(X1, X2) -> active# X1) (top# ok X -> active# X, active# length cons(N, L) -> isNatKind# N) (top# ok X -> active# X, active# length cons(N, L) -> isNatIListKind# L) (top# ok X -> active# X, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N))) (top# ok X -> active# X, active# length cons(N, L) -> and#(isNat N, isNatKind N)) (top# ok X -> active# X, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L)) (top# ok X -> active# X, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L)) (top# ok X -> active# X, active# length cons(N, L) -> isNat# N) (top# ok X -> active# X, active# length cons(N, L) -> isNatList# L) (top# ok X -> active# X, active# length X -> length# active X) (top# ok X -> active# X, active# length X -> active# X) (top# ok X -> active# X, active# s X -> s# active X) (top# ok X -> active# X, active# s X -> active# X) (top# ok X -> active# X, active# U63 X -> U63# active X) (top# ok X -> active# X, active# U63 X -> active# X) (top# ok X -> active# X, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2)) (top# ok X -> active# X, active# U61(tt(), V1, V2) -> isNat# V1) (top# ok X -> active# X, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (top# ok X -> active# X, active# U61(X1, X2, X3) -> active# X1) (top# ok X -> active# X, active# U62(tt(), V2) -> U63# isNatIList V2) (top# ok X -> active# X, active# U62(tt(), V2) -> isNatIList# V2) (top# ok X -> active# X, active# U62(X1, X2) -> U62#(active X1, X2)) (top# ok X -> active# X, active# U62(X1, X2) -> active# X1) (top# ok X -> active# X, active# U53 X -> U53# active X) (top# ok X -> active# X, active# U53 X -> active# X) (top# ok X -> active# X, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2)) (top# ok X -> active# X, active# U51(tt(), V1, V2) -> isNat# V1) (top# ok X -> active# X, active# U51(X1, X2, X3) -> U51#(active X1, X2, X3)) (top# ok X -> active# X, active# U51(X1, X2, X3) -> active# X1) (top# ok X -> active# X, active# U52(tt(), V2) -> U53# isNatList V2) (top# ok X -> active# X, active# U52(tt(), V2) -> isNatList# V2) (top# ok X -> active# X, active# U52(X1, X2) -> U52#(active X1, X2)) (top# ok X -> active# X, active# U52(X1, X2) -> active# X1) (top# ok X -> active# X, active# isNatIList cons(V1, V2) -> isNatKind# V1) (top# ok X -> active# X, active# isNatIList cons(V1, V2) -> isNatIListKind# V2) (top# ok X -> active# X, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (top# ok X -> active# X, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (top# ok X -> active# X, active# isNatIList V -> isNatIListKind# V) (top# ok X -> active# X, active# isNatIList V -> U31#(isNatIListKind V, V)) (top# ok X -> active# X, active# U43 X -> U43# active X) (top# ok X -> active# X, active# U43 X -> active# X) (top# ok X -> active# X, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2)) (top# ok X -> active# X, active# U41(tt(), V1, V2) -> isNat# V1) (top# ok X -> active# X, active# U41(X1, X2, X3) -> U41#(active X1, X2, X3)) (top# ok X -> active# X, active# U41(X1, X2, X3) -> active# X1) (top# ok X -> active# X, active# U42(tt(), V2) -> isNatIList# V2) (top# ok X -> active# X, active# U42(tt(), V2) -> U43# isNatIList V2) (top# ok X -> active# X, active# U42(X1, X2) -> U42#(active X1, X2)) (top# ok X -> active# X, active# U42(X1, X2) -> active# X1) (top# ok X -> active# X, active# U31(tt(), V) -> U32# isNatList V) (top# ok X -> active# X, active# U31(tt(), V) -> isNatList# V) (top# ok X -> active# X, active# U31(X1, X2) -> U31#(active X1, X2)) (top# ok X -> active# X, active# U31(X1, X2) -> active# X1) (top# ok X -> active# X, active# U32 X -> U32# active X) (top# ok X -> active# X, active# U32 X -> active# X) (top# ok X -> active# X, active# U21(tt(), V1) -> isNat# V1) (top# ok X -> active# X, active# U21(tt(), V1) -> U22# isNat V1) (top# ok X -> active# X, active# U21(X1, X2) -> U21#(active X1, X2)) (top# ok X -> active# X, active# U21(X1, X2) -> active# X1) (top# ok X -> active# X, active# isNat length V1 -> isNatIListKind# V1) (top# ok X -> active# X, active# isNat length V1 -> U11#(isNatIListKind V1, V1)) (top# ok X -> active# X, active# isNat s V1 -> isNatKind# V1) (top# ok X -> active# X, active# isNat s V1 -> U21#(isNatKind V1, V1)) (top# ok X -> active# X, active# U22 X -> U22# active X) (top# ok X -> active# X, active# U22 X -> active# X) (top# ok X -> active# X, active# U11(tt(), V1) -> isNatList# V1) (top# ok X -> active# X, active# U11(tt(), V1) -> U12# isNatList V1) (top# ok X -> active# X, active# U11(X1, X2) -> U11#(active X1, X2)) (top# ok X -> active# X, active# U11(X1, X2) -> active# X1) (top# ok X -> active# X, active# isNatList take(V1, V2) -> isNatKind# V1) (top# ok X -> active# X, active# isNatList take(V1, V2) -> isNatIListKind# V2) (top# ok X -> active# X, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (top# ok X -> active# X, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (top# ok X -> active# X, active# isNatList cons(V1, V2) -> isNatKind# V1) (top# ok X -> active# X, active# isNatList cons(V1, V2) -> isNatIListKind# V2) (top# ok X -> active# X, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (top# ok X -> active# X, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (top# ok X -> active# X, active# U12 X -> U12# active X) (top# ok X -> active# X, active# U12 X -> active# X) (top# ok X -> active# X, active# zeros() -> cons#(0(), zeros())) (top# ok X -> active# X, active# cons(X1, X2) -> active# X1) (top# ok X -> active# X, active# cons(X1, X2) -> cons#(active X1, X2)) (top# mark X -> proper# X, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (top# mark X -> proper# X, proper# cons(X1, X2) -> proper# X1) (top# mark X -> proper# X, proper# cons(X1, X2) -> proper# X2) (top# mark X -> proper# X, proper# U12 X -> U12# proper X) (top# mark X -> proper# X, proper# U12 X -> proper# X) (top# mark X -> proper# X, proper# isNatList X -> isNatList# proper X) (top# mark X -> proper# X, proper# isNatList X -> proper# X) (top# mark X -> proper# X, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (top# mark X -> proper# X, proper# U11(X1, X2) -> proper# X1) (top# mark X -> proper# X, proper# U11(X1, X2) -> proper# X2) (top# mark X -> proper# X, proper# U22 X -> U22# proper X) (top# mark X -> proper# X, proper# U22 X -> proper# X) (top# mark X -> proper# X, proper# isNat X -> isNat# proper X) (top# mark X -> proper# X, proper# isNat X -> proper# X) (top# mark X -> proper# X, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (top# mark X -> proper# X, proper# U21(X1, X2) -> proper# X1) (top# mark X -> proper# X, proper# U21(X1, X2) -> proper# X2) (top# mark X -> proper# X, proper# U32 X -> U32# proper X) (top# mark X -> proper# X, proper# U32 X -> proper# X) (top# mark X -> proper# X, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (top# mark X -> proper# X, proper# U31(X1, X2) -> proper# X1) (top# mark X -> proper# X, proper# U31(X1, X2) -> proper# X2) (top# mark X -> proper# X, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (top# mark X -> proper# X, proper# U42(X1, X2) -> proper# X1) (top# mark X -> proper# X, proper# U42(X1, X2) -> proper# X2) (top# mark X -> proper# X, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (top# mark X -> proper# X, proper# U41(X1, X2, X3) -> proper# X1) (top# mark X -> proper# X, proper# U41(X1, X2, X3) -> proper# X2) (top# mark X -> proper# X, proper# U41(X1, X2, X3) -> proper# X3) (top# mark X -> proper# X, proper# U43 X -> U43# proper X) (top# mark X -> proper# X, proper# U43 X -> proper# X) (top# mark X -> proper# X, proper# isNatIList X -> isNatIList# proper X) (top# mark X -> proper# X, proper# isNatIList X -> proper# X) (top# mark X -> proper# X, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (top# mark X -> proper# X, proper# U52(X1, X2) -> proper# X1) (top# mark X -> proper# X, proper# U52(X1, X2) -> proper# X2) (top# mark X -> proper# X, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (top# mark X -> proper# X, proper# U51(X1, X2, X3) -> proper# X1) (top# mark X -> proper# X, proper# U51(X1, X2, X3) -> proper# X2) (top# mark X -> proper# X, proper# U51(X1, X2, X3) -> proper# X3) (top# mark X -> proper# X, proper# U53 X -> U53# proper X) (top# mark X -> proper# X, proper# U53 X -> proper# X) (top# mark X -> proper# X, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (top# mark X -> proper# X, proper# U62(X1, X2) -> proper# X1) (top# mark X -> proper# X, proper# U62(X1, X2) -> proper# X2) (top# mark X -> proper# X, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (top# mark X -> proper# X, proper# U61(X1, X2, X3) -> proper# X1) (top# mark X -> proper# X, proper# U61(X1, X2, X3) -> proper# X2) (top# mark X -> proper# X, proper# U61(X1, X2, X3) -> proper# X3) (top# mark X -> proper# X, proper# U63 X -> U63# proper X) (top# mark X -> proper# X, proper# U63 X -> proper# X) (top# mark X -> proper# X, proper# s X -> s# proper X) (top# mark X -> proper# X, proper# s X -> proper# X) (top# mark X -> proper# X, proper# length X -> length# proper X) (top# mark X -> proper# X, proper# length X -> proper# X) (top# mark X -> proper# X, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (top# mark X -> proper# X, proper# U71(X1, X2) -> proper# X1) (top# mark X -> proper# X, proper# U71(X1, X2) -> proper# X2) (top# mark X -> proper# X, proper# U81 X -> U81# proper X) (top# mark X -> proper# X, proper# U81 X -> proper# X) (top# mark X -> proper# X, proper# take(X1, X2) -> take#(proper X1, proper X2)) (top# mark X -> proper# X, proper# take(X1, X2) -> proper# X1) (top# mark X -> proper# X, proper# take(X1, X2) -> proper# X2) (top# mark X -> proper# X, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (top# mark X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X1) (top# mark X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X2) (top# mark X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X3) (top# mark X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X4) (top# mark X -> proper# X, proper# and(X1, X2) -> and#(proper X1, proper X2)) (top# mark X -> proper# X, proper# and(X1, X2) -> proper# X1) (top# mark X -> proper# X, proper# and(X1, X2) -> proper# X2) (top# mark X -> proper# X, proper# isNatIListKind X -> isNatIListKind# proper X) (top# mark X -> proper# X, proper# isNatIListKind X -> proper# X) (top# mark X -> proper# X, proper# isNatKind X -> isNatKind# proper X) (top# mark X -> proper# X, proper# isNatKind X -> proper# X) (proper# isNatIListKind X -> proper# X, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# isNatIListKind X -> proper# X, proper# cons(X1, X2) -> proper# X1) (proper# isNatIListKind X -> proper# X, proper# cons(X1, X2) -> proper# X2) (proper# isNatIListKind X -> proper# X, proper# U12 X -> U12# proper X) (proper# isNatIListKind X -> proper# X, proper# U12 X -> proper# X) (proper# isNatIListKind X -> proper# X, proper# isNatList X -> isNatList# proper X) (proper# isNatIListKind X -> proper# X, proper# isNatList X -> proper# X) (proper# isNatIListKind X -> proper# X, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# isNatIListKind X -> proper# X, proper# U11(X1, X2) -> proper# X1) (proper# isNatIListKind X -> proper# X, proper# U11(X1, X2) -> proper# X2) (proper# isNatIListKind X -> proper# X, proper# U22 X -> U22# proper X) (proper# isNatIListKind X -> proper# X, proper# U22 X -> proper# X) (proper# isNatIListKind X -> proper# X, proper# isNat X -> isNat# proper X) (proper# isNatIListKind X -> proper# X, proper# isNat X -> proper# X) (proper# isNatIListKind X -> proper# X, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# isNatIListKind X -> proper# X, proper# U21(X1, X2) -> proper# X1) (proper# isNatIListKind X -> proper# X, proper# U21(X1, X2) -> proper# X2) (proper# isNatIListKind X -> proper# X, proper# U32 X -> U32# proper X) (proper# isNatIListKind X -> proper# X, proper# U32 X -> proper# X) (proper# isNatIListKind X -> proper# X, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# isNatIListKind X -> proper# X, proper# U31(X1, X2) -> proper# X1) (proper# isNatIListKind X -> proper# X, proper# U31(X1, X2) -> proper# X2) (proper# isNatIListKind X -> proper# X, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# isNatIListKind X -> proper# X, proper# U42(X1, X2) -> proper# X1) (proper# isNatIListKind X -> proper# X, proper# U42(X1, X2) -> proper# X2) (proper# isNatIListKind X -> proper# X, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# isNatIListKind X -> proper# X, proper# U41(X1, X2, X3) -> proper# X1) (proper# isNatIListKind X -> proper# X, proper# U41(X1, X2, X3) -> proper# X2) (proper# isNatIListKind X -> proper# X, proper# U41(X1, X2, X3) -> proper# X3) (proper# isNatIListKind X -> proper# X, proper# U43 X -> U43# proper X) (proper# isNatIListKind X -> proper# X, proper# U43 X -> proper# X) (proper# isNatIListKind X -> proper# X, proper# isNatIList X -> isNatIList# proper X) (proper# isNatIListKind X -> proper# X, proper# isNatIList X -> proper# X) (proper# isNatIListKind X -> proper# X, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# isNatIListKind X -> proper# X, proper# U52(X1, X2) -> proper# X1) (proper# isNatIListKind X -> proper# X, proper# U52(X1, X2) -> proper# X2) (proper# isNatIListKind X -> proper# X, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# isNatIListKind X -> proper# X, proper# U51(X1, X2, X3) -> proper# X1) (proper# isNatIListKind X -> proper# X, proper# U51(X1, X2, X3) -> proper# X2) (proper# isNatIListKind X -> proper# X, proper# U51(X1, X2, X3) -> proper# X3) (proper# isNatIListKind X -> proper# X, proper# U53 X -> U53# proper X) (proper# isNatIListKind X -> proper# X, proper# U53 X -> proper# X) (proper# isNatIListKind X -> proper# X, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# isNatIListKind X -> proper# X, proper# U62(X1, X2) -> proper# X1) (proper# isNatIListKind X -> proper# X, proper# U62(X1, X2) -> proper# X2) (proper# isNatIListKind X -> proper# X, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# isNatIListKind X -> proper# X, proper# U61(X1, X2, X3) -> proper# X1) (proper# isNatIListKind X -> proper# X, proper# U61(X1, X2, X3) -> proper# X2) (proper# isNatIListKind X -> proper# X, proper# U61(X1, X2, X3) -> proper# X3) (proper# isNatIListKind X -> proper# X, proper# U63 X -> U63# proper X) (proper# isNatIListKind X -> proper# X, proper# U63 X -> proper# X) (proper# isNatIListKind X -> proper# X, proper# s X -> s# proper X) (proper# isNatIListKind X -> proper# X, proper# s X -> proper# X) (proper# isNatIListKind X -> proper# X, proper# length X -> length# proper X) (proper# isNatIListKind X -> proper# X, proper# length X -> proper# X) (proper# isNatIListKind X -> proper# X, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# isNatIListKind X -> proper# X, proper# U71(X1, X2) -> proper# X1) (proper# isNatIListKind X -> proper# X, proper# U71(X1, X2) -> proper# X2) (proper# isNatIListKind X -> proper# X, proper# U81 X -> U81# proper X) (proper# isNatIListKind X -> proper# X, proper# U81 X -> proper# X) (proper# isNatIListKind X -> proper# X, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# isNatIListKind X -> proper# X, proper# take(X1, X2) -> proper# X1) (proper# isNatIListKind X -> proper# X, proper# take(X1, X2) -> proper# X2) (proper# isNatIListKind X -> proper# X, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# isNatIListKind X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# isNatIListKind X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# isNatIListKind X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# isNatIListKind X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# isNatIListKind X -> proper# X, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# isNatIListKind X -> proper# X, proper# and(X1, X2) -> proper# X1) (proper# isNatIListKind X -> proper# X, proper# and(X1, X2) -> proper# X2) (proper# isNatIListKind X -> proper# X, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# isNatIListKind X -> proper# X, proper# isNatIListKind X -> proper# X) (proper# isNatIListKind X -> proper# X, proper# isNatKind X -> isNatKind# proper X) (proper# isNatIListKind X -> proper# X, proper# isNatKind X -> proper# X) (proper# length X -> proper# X, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# length X -> proper# X, proper# cons(X1, X2) -> proper# X1) (proper# length X -> proper# X, proper# cons(X1, X2) -> proper# X2) (proper# length X -> proper# X, proper# U12 X -> U12# proper X) (proper# length X -> proper# X, proper# U12 X -> proper# X) (proper# length X -> proper# X, proper# isNatList X -> isNatList# proper X) (proper# length X -> proper# X, proper# isNatList X -> proper# X) (proper# length X -> proper# X, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# length X -> proper# X, proper# U11(X1, X2) -> proper# X1) (proper# length X -> proper# X, proper# U11(X1, X2) -> proper# X2) (proper# length X -> proper# X, proper# U22 X -> U22# proper X) (proper# length X -> proper# X, proper# U22 X -> proper# X) (proper# length X -> proper# X, proper# isNat X -> isNat# proper X) (proper# length X -> proper# X, proper# isNat X -> proper# X) (proper# length X -> proper# X, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# length X -> proper# X, proper# U21(X1, X2) -> proper# X1) (proper# length X -> proper# X, proper# U21(X1, X2) -> proper# X2) (proper# length X -> proper# X, proper# U32 X -> U32# proper X) (proper# length X -> proper# X, proper# U32 X -> proper# X) (proper# length X -> proper# X, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# length X -> proper# X, proper# U31(X1, X2) -> proper# X1) (proper# length X -> proper# X, proper# U31(X1, X2) -> proper# X2) (proper# length X -> proper# X, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# length X -> proper# X, proper# U42(X1, X2) -> proper# X1) (proper# length X -> proper# X, proper# U42(X1, X2) -> proper# X2) (proper# length X -> proper# X, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# length X -> proper# X, proper# U41(X1, X2, X3) -> proper# X1) (proper# length X -> proper# X, proper# U41(X1, X2, X3) -> proper# X2) (proper# length X -> proper# X, proper# U41(X1, X2, X3) -> proper# X3) (proper# length X -> proper# X, proper# U43 X -> U43# proper X) (proper# length X -> proper# X, proper# U43 X -> proper# X) (proper# length X -> proper# X, proper# isNatIList X -> isNatIList# proper X) (proper# length X -> proper# X, proper# isNatIList X -> proper# X) (proper# length X -> proper# X, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# length X -> proper# X, proper# U52(X1, X2) -> proper# X1) (proper# length X -> proper# X, proper# U52(X1, X2) -> proper# X2) (proper# length X -> proper# X, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# length X -> proper# X, proper# U51(X1, X2, X3) -> proper# X1) (proper# length X -> proper# X, proper# U51(X1, X2, X3) -> proper# X2) (proper# length X -> proper# X, proper# U51(X1, X2, X3) -> proper# X3) (proper# length X -> proper# X, proper# U53 X -> U53# proper X) (proper# length X -> proper# X, proper# U53 X -> proper# X) (proper# length X -> proper# X, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# length X -> proper# X, proper# U62(X1, X2) -> proper# X1) (proper# length X -> proper# X, proper# U62(X1, X2) -> proper# X2) (proper# length X -> proper# X, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# length X -> proper# X, proper# U61(X1, X2, X3) -> proper# X1) (proper# length X -> proper# X, proper# U61(X1, X2, X3) -> proper# X2) (proper# length X -> proper# X, proper# U61(X1, X2, X3) -> proper# X3) (proper# length X -> proper# X, proper# U63 X -> U63# proper X) (proper# length X -> proper# X, proper# U63 X -> proper# X) (proper# length X -> proper# X, proper# s X -> s# proper X) (proper# length X -> proper# X, proper# s X -> proper# X) (proper# length X -> proper# X, proper# length X -> length# proper X) (proper# length X -> proper# X, proper# length X -> proper# X) (proper# length X -> proper# X, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# length X -> proper# X, proper# U71(X1, X2) -> proper# X1) (proper# length X -> proper# X, proper# U71(X1, X2) -> proper# X2) (proper# length X -> proper# X, proper# U81 X -> U81# proper X) (proper# length X -> proper# X, proper# U81 X -> proper# X) (proper# length X -> proper# X, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# length X -> proper# X, proper# take(X1, X2) -> proper# X1) (proper# length X -> proper# X, proper# take(X1, X2) -> proper# X2) (proper# length X -> proper# X, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# length X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# length X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# length X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# length X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# length X -> proper# X, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# length X -> proper# X, proper# and(X1, X2) -> proper# X1) (proper# length X -> proper# X, proper# and(X1, X2) -> proper# X2) (proper# length X -> proper# X, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# length X -> proper# X, proper# isNatIListKind X -> proper# X) (proper# length X -> proper# X, proper# isNatKind X -> isNatKind# proper X) (proper# length X -> proper# X, proper# isNatKind X -> proper# X) (proper# U63 X -> proper# X, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# U63 X -> proper# X, proper# cons(X1, X2) -> proper# X1) (proper# U63 X -> proper# X, proper# cons(X1, X2) -> proper# X2) (proper# U63 X -> proper# X, proper# U12 X -> U12# proper X) (proper# U63 X -> proper# X, proper# U12 X -> proper# X) (proper# U63 X -> proper# X, proper# isNatList X -> isNatList# proper X) (proper# U63 X -> proper# X, proper# isNatList X -> proper# X) (proper# U63 X -> proper# X, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U63 X -> proper# X, proper# U11(X1, X2) -> proper# X1) (proper# U63 X -> proper# X, proper# U11(X1, X2) -> proper# X2) (proper# U63 X -> proper# X, proper# U22 X -> U22# proper X) (proper# U63 X -> proper# X, proper# U22 X -> proper# X) (proper# U63 X -> proper# X, proper# isNat X -> isNat# proper X) (proper# U63 X -> proper# X, proper# isNat X -> proper# X) (proper# U63 X -> proper# X, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U63 X -> proper# X, proper# U21(X1, X2) -> proper# X1) (proper# U63 X -> proper# X, proper# U21(X1, X2) -> proper# X2) (proper# U63 X -> proper# X, proper# U32 X -> U32# proper X) (proper# U63 X -> proper# X, proper# U32 X -> proper# X) (proper# U63 X -> proper# X, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U63 X -> proper# X, proper# U31(X1, X2) -> proper# X1) (proper# U63 X -> proper# X, proper# U31(X1, X2) -> proper# X2) (proper# U63 X -> proper# X, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U63 X -> proper# X, proper# U42(X1, X2) -> proper# X1) (proper# U63 X -> proper# X, proper# U42(X1, X2) -> proper# X2) (proper# U63 X -> proper# X, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U63 X -> proper# X, proper# U41(X1, X2, X3) -> proper# X1) (proper# U63 X -> proper# X, proper# U41(X1, X2, X3) -> proper# X2) (proper# U63 X -> proper# X, proper# U41(X1, X2, X3) -> proper# X3) (proper# U63 X -> proper# X, proper# U43 X -> U43# proper X) (proper# U63 X -> proper# X, proper# U43 X -> proper# X) (proper# U63 X -> proper# X, proper# isNatIList X -> isNatIList# proper X) (proper# U63 X -> proper# X, proper# isNatIList X -> proper# X) (proper# U63 X -> proper# X, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U63 X -> proper# X, proper# U52(X1, X2) -> proper# X1) (proper# U63 X -> proper# X, proper# U52(X1, X2) -> proper# X2) (proper# U63 X -> proper# X, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U63 X -> proper# X, proper# U51(X1, X2, X3) -> proper# X1) (proper# U63 X -> proper# X, proper# U51(X1, X2, X3) -> proper# X2) (proper# U63 X -> proper# X, proper# U51(X1, X2, X3) -> proper# X3) (proper# U63 X -> proper# X, proper# U53 X -> U53# proper X) (proper# U63 X -> proper# X, proper# U53 X -> proper# X) (proper# U63 X -> proper# X, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U63 X -> proper# X, proper# U62(X1, X2) -> proper# X1) (proper# U63 X -> proper# X, proper# U62(X1, X2) -> proper# X2) (proper# U63 X -> proper# X, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U63 X -> proper# X, proper# U61(X1, X2, X3) -> proper# X1) (proper# U63 X -> proper# X, proper# U61(X1, X2, X3) -> proper# X2) (proper# U63 X -> proper# X, proper# U61(X1, X2, X3) -> proper# X3) (proper# U63 X -> proper# X, proper# U63 X -> U63# proper X) (proper# U63 X -> proper# X, proper# U63 X -> proper# X) (proper# U63 X -> proper# X, proper# s X -> s# proper X) (proper# U63 X -> proper# X, proper# s X -> proper# X) (proper# U63 X -> proper# X, proper# length X -> length# proper X) (proper# U63 X -> proper# X, proper# length X -> proper# X) (proper# U63 X -> proper# X, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U63 X -> proper# X, proper# U71(X1, X2) -> proper# X1) (proper# U63 X -> proper# X, proper# U71(X1, X2) -> proper# X2) (proper# U63 X -> proper# X, proper# U81 X -> U81# proper X) (proper# U63 X -> proper# X, proper# U81 X -> proper# X) (proper# U63 X -> proper# X, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U63 X -> proper# X, proper# take(X1, X2) -> proper# X1) (proper# U63 X -> proper# X, proper# take(X1, X2) -> proper# X2) (proper# U63 X -> proper# X, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U63 X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U63 X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U63 X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U63 X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U63 X -> proper# X, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U63 X -> proper# X, proper# and(X1, X2) -> proper# X1) (proper# U63 X -> proper# X, proper# and(X1, X2) -> proper# X2) (proper# U63 X -> proper# X, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U63 X -> proper# X, proper# isNatIListKind X -> proper# X) (proper# U63 X -> proper# X, proper# isNatKind X -> isNatKind# proper X) (proper# U63 X -> proper# X, proper# isNatKind X -> proper# X) (proper# isNatIList X -> proper# X, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# isNatIList X -> proper# X, proper# cons(X1, X2) -> proper# X1) (proper# isNatIList X -> proper# X, proper# cons(X1, X2) -> proper# X2) (proper# isNatIList X -> proper# X, proper# U12 X -> U12# proper X) (proper# isNatIList X -> proper# X, proper# U12 X -> proper# X) (proper# isNatIList X -> proper# X, proper# isNatList X -> isNatList# proper X) (proper# isNatIList X -> proper# X, proper# isNatList X -> proper# X) (proper# isNatIList X -> proper# X, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# isNatIList X -> proper# X, proper# U11(X1, X2) -> proper# X1) (proper# isNatIList X -> proper# X, proper# U11(X1, X2) -> proper# X2) (proper# isNatIList X -> proper# X, proper# U22 X -> U22# proper X) (proper# isNatIList X -> proper# X, proper# U22 X -> proper# X) (proper# isNatIList X -> proper# X, proper# isNat X -> isNat# proper X) (proper# isNatIList X -> proper# X, proper# isNat X -> proper# X) (proper# isNatIList X -> proper# X, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# isNatIList X -> proper# X, proper# U21(X1, X2) -> proper# X1) (proper# isNatIList X -> proper# X, proper# U21(X1, X2) -> proper# X2) (proper# isNatIList X -> proper# X, proper# U32 X -> U32# proper X) (proper# isNatIList X -> proper# X, proper# U32 X -> proper# X) (proper# isNatIList X -> proper# X, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# isNatIList X -> proper# X, proper# U31(X1, X2) -> proper# X1) (proper# isNatIList X -> proper# X, proper# U31(X1, X2) -> proper# X2) (proper# isNatIList X -> proper# X, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# isNatIList X -> proper# X, proper# U42(X1, X2) -> proper# X1) (proper# isNatIList X -> proper# X, proper# U42(X1, X2) -> proper# X2) (proper# isNatIList X -> proper# X, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# isNatIList X -> proper# X, proper# U41(X1, X2, X3) -> proper# X1) (proper# isNatIList X -> proper# X, proper# U41(X1, X2, X3) -> proper# X2) (proper# isNatIList X -> proper# X, proper# U41(X1, X2, X3) -> proper# X3) (proper# isNatIList X -> proper# X, proper# U43 X -> U43# proper X) (proper# isNatIList X -> proper# X, proper# U43 X -> proper# X) (proper# isNatIList X -> proper# X, proper# isNatIList X -> isNatIList# proper X) (proper# isNatIList X -> proper# X, proper# isNatIList X -> proper# X) (proper# isNatIList X -> proper# X, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# isNatIList X -> proper# X, proper# U52(X1, X2) -> proper# X1) (proper# isNatIList X -> proper# X, proper# U52(X1, X2) -> proper# X2) (proper# isNatIList X -> proper# X, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# isNatIList X -> proper# X, proper# U51(X1, X2, X3) -> proper# X1) (proper# isNatIList X -> proper# X, proper# U51(X1, X2, X3) -> proper# X2) (proper# isNatIList X -> proper# X, proper# U51(X1, X2, X3) -> proper# X3) (proper# isNatIList X -> proper# X, proper# U53 X -> U53# proper X) (proper# isNatIList X -> proper# X, proper# U53 X -> proper# X) (proper# isNatIList X -> proper# X, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# isNatIList X -> proper# X, proper# U62(X1, X2) -> proper# X1) (proper# isNatIList X -> proper# X, proper# U62(X1, X2) -> proper# X2) (proper# isNatIList X -> proper# X, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# isNatIList X -> proper# X, proper# U61(X1, X2, X3) -> proper# X1) (proper# isNatIList X -> proper# X, proper# U61(X1, X2, X3) -> proper# X2) (proper# isNatIList X -> proper# X, proper# U61(X1, X2, X3) -> proper# X3) (proper# isNatIList X -> proper# X, proper# U63 X -> U63# proper X) (proper# isNatIList X -> proper# X, proper# U63 X -> proper# X) (proper# isNatIList X -> proper# X, proper# s X -> s# proper X) (proper# isNatIList X -> proper# X, proper# s X -> proper# X) (proper# isNatIList X -> proper# X, proper# length X -> length# proper X) (proper# isNatIList X -> proper# X, proper# length X -> proper# X) (proper# isNatIList X -> proper# X, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# isNatIList X -> proper# X, proper# U71(X1, X2) -> proper# X1) (proper# isNatIList X -> proper# X, proper# U71(X1, X2) -> proper# X2) (proper# isNatIList X -> proper# X, proper# U81 X -> U81# proper X) (proper# isNatIList X -> proper# X, proper# U81 X -> proper# X) (proper# isNatIList X -> proper# X, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# isNatIList X -> proper# X, proper# take(X1, X2) -> proper# X1) (proper# isNatIList X -> proper# X, proper# take(X1, X2) -> proper# X2) (proper# isNatIList X -> proper# X, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# isNatIList X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# isNatIList X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# isNatIList X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# isNatIList X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# isNatIList X -> proper# X, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# isNatIList X -> proper# X, proper# and(X1, X2) -> proper# X1) (proper# isNatIList X -> proper# X, proper# and(X1, X2) -> proper# X2) (proper# isNatIList X -> proper# X, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# isNatIList X -> proper# X, proper# isNatIListKind X -> proper# X) (proper# isNatIList X -> proper# X, proper# isNatKind X -> isNatKind# proper X) (proper# isNatIList X -> proper# X, proper# isNatKind X -> proper# X) (proper# U32 X -> proper# X, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# U32 X -> proper# X, proper# cons(X1, X2) -> proper# X1) (proper# U32 X -> proper# X, proper# cons(X1, X2) -> proper# X2) (proper# U32 X -> proper# X, proper# U12 X -> U12# proper X) (proper# U32 X -> proper# X, proper# U12 X -> proper# X) (proper# U32 X -> proper# X, proper# isNatList X -> isNatList# proper X) (proper# U32 X -> proper# X, proper# isNatList X -> proper# X) (proper# U32 X -> proper# X, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U32 X -> proper# X, proper# U11(X1, X2) -> proper# X1) (proper# U32 X -> proper# X, proper# U11(X1, X2) -> proper# X2) (proper# U32 X -> proper# X, proper# U22 X -> U22# proper X) (proper# U32 X -> proper# X, proper# U22 X -> proper# X) (proper# U32 X -> proper# X, proper# isNat X -> isNat# proper X) (proper# U32 X -> proper# X, proper# isNat X -> proper# X) (proper# U32 X -> proper# X, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U32 X -> proper# X, proper# U21(X1, X2) -> proper# X1) (proper# U32 X -> proper# X, proper# U21(X1, X2) -> proper# X2) (proper# U32 X -> proper# X, proper# U32 X -> U32# proper X) (proper# U32 X -> proper# X, proper# U32 X -> proper# X) (proper# U32 X -> proper# X, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U32 X -> proper# X, proper# U31(X1, X2) -> proper# X1) (proper# U32 X -> proper# X, proper# U31(X1, X2) -> proper# X2) (proper# U32 X -> proper# X, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U32 X -> proper# X, proper# U42(X1, X2) -> proper# X1) (proper# U32 X -> proper# X, proper# U42(X1, X2) -> proper# X2) (proper# U32 X -> proper# X, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U32 X -> proper# X, proper# U41(X1, X2, X3) -> proper# X1) (proper# U32 X -> proper# X, proper# U41(X1, X2, X3) -> proper# X2) (proper# U32 X -> proper# X, proper# U41(X1, X2, X3) -> proper# X3) (proper# U32 X -> proper# X, proper# U43 X -> U43# proper X) (proper# U32 X -> proper# X, proper# U43 X -> proper# X) (proper# U32 X -> proper# X, proper# isNatIList X -> isNatIList# proper X) (proper# U32 X -> proper# X, proper# isNatIList X -> proper# X) (proper# U32 X -> proper# X, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U32 X -> proper# X, proper# U52(X1, X2) -> proper# X1) (proper# U32 X -> proper# X, proper# U52(X1, X2) -> proper# X2) (proper# U32 X -> proper# X, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U32 X -> proper# X, proper# U51(X1, X2, X3) -> proper# X1) (proper# U32 X -> proper# X, proper# U51(X1, X2, X3) -> proper# X2) (proper# U32 X -> proper# X, proper# U51(X1, X2, X3) -> proper# X3) (proper# U32 X -> proper# X, proper# U53 X -> U53# proper X) (proper# U32 X -> proper# X, proper# U53 X -> proper# X) (proper# U32 X -> proper# X, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U32 X -> proper# X, proper# U62(X1, X2) -> proper# X1) (proper# U32 X -> proper# X, proper# U62(X1, X2) -> proper# X2) (proper# U32 X -> proper# X, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U32 X -> proper# X, proper# U61(X1, X2, X3) -> proper# X1) (proper# U32 X -> proper# X, proper# U61(X1, X2, X3) -> proper# X2) (proper# U32 X -> proper# X, proper# U61(X1, X2, X3) -> proper# X3) (proper# U32 X -> proper# X, proper# U63 X -> U63# proper X) (proper# U32 X -> proper# X, proper# U63 X -> proper# X) (proper# U32 X -> proper# X, proper# s X -> s# proper X) (proper# U32 X -> proper# X, proper# s X -> proper# X) (proper# U32 X -> proper# X, proper# length X -> length# proper X) (proper# U32 X -> proper# X, proper# length X -> proper# X) (proper# U32 X -> proper# X, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U32 X -> proper# X, proper# U71(X1, X2) -> proper# X1) (proper# U32 X -> proper# X, proper# U71(X1, X2) -> proper# X2) (proper# U32 X -> proper# X, proper# U81 X -> U81# proper X) (proper# U32 X -> proper# X, proper# U81 X -> proper# X) (proper# U32 X -> proper# X, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U32 X -> proper# X, proper# take(X1, X2) -> proper# X1) (proper# U32 X -> proper# X, proper# take(X1, X2) -> proper# X2) (proper# U32 X -> proper# X, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U32 X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U32 X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U32 X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U32 X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U32 X -> proper# X, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U32 X -> proper# X, proper# and(X1, X2) -> proper# X1) (proper# U32 X -> proper# X, proper# and(X1, X2) -> proper# X2) (proper# U32 X -> proper# X, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U32 X -> proper# X, proper# isNatIListKind X -> proper# X) (proper# U32 X -> proper# X, proper# isNatKind X -> isNatKind# proper X) (proper# U32 X -> proper# X, proper# isNatKind X -> proper# X) (proper# U22 X -> proper# X, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# U22 X -> proper# X, proper# cons(X1, X2) -> proper# X1) (proper# U22 X -> proper# X, proper# cons(X1, X2) -> proper# X2) (proper# U22 X -> proper# X, proper# U12 X -> U12# proper X) (proper# U22 X -> proper# X, proper# U12 X -> proper# X) (proper# U22 X -> proper# X, proper# isNatList X -> isNatList# proper X) (proper# U22 X -> proper# X, proper# isNatList X -> proper# X) (proper# U22 X -> proper# X, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U22 X -> proper# X, proper# U11(X1, X2) -> proper# X1) (proper# U22 X -> proper# X, proper# U11(X1, X2) -> proper# X2) (proper# U22 X -> proper# X, proper# U22 X -> U22# proper X) (proper# U22 X -> proper# X, proper# U22 X -> proper# X) (proper# U22 X -> proper# X, proper# isNat X -> isNat# proper X) (proper# U22 X -> proper# X, proper# isNat X -> proper# X) (proper# U22 X -> proper# X, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U22 X -> proper# X, proper# U21(X1, X2) -> proper# X1) (proper# U22 X -> proper# X, proper# U21(X1, X2) -> proper# X2) (proper# U22 X -> proper# X, proper# U32 X -> U32# proper X) (proper# U22 X -> proper# X, proper# U32 X -> proper# X) (proper# U22 X -> proper# X, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U22 X -> proper# X, proper# U31(X1, X2) -> proper# X1) (proper# U22 X -> proper# X, proper# U31(X1, X2) -> proper# X2) (proper# U22 X -> proper# X, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U22 X -> proper# X, proper# U42(X1, X2) -> proper# X1) (proper# U22 X -> proper# X, proper# U42(X1, X2) -> proper# X2) (proper# U22 X -> proper# X, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U22 X -> proper# X, proper# U41(X1, X2, X3) -> proper# X1) (proper# U22 X -> proper# X, proper# U41(X1, X2, X3) -> proper# X2) (proper# U22 X -> proper# X, proper# U41(X1, X2, X3) -> proper# X3) (proper# U22 X -> proper# X, proper# U43 X -> U43# proper X) (proper# U22 X -> proper# X, proper# U43 X -> proper# X) (proper# U22 X -> proper# X, proper# isNatIList X -> isNatIList# proper X) (proper# U22 X -> proper# X, proper# isNatIList X -> proper# X) (proper# U22 X -> proper# X, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U22 X -> proper# X, proper# U52(X1, X2) -> proper# X1) (proper# U22 X -> proper# X, proper# U52(X1, X2) -> proper# X2) (proper# U22 X -> proper# X, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U22 X -> proper# X, proper# U51(X1, X2, X3) -> proper# X1) (proper# U22 X -> proper# X, proper# U51(X1, X2, X3) -> proper# X2) (proper# U22 X -> proper# X, proper# U51(X1, X2, X3) -> proper# X3) (proper# U22 X -> proper# X, proper# U53 X -> U53# proper X) (proper# U22 X -> proper# X, proper# U53 X -> proper# X) (proper# U22 X -> proper# X, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U22 X -> proper# X, proper# U62(X1, X2) -> proper# X1) (proper# U22 X -> proper# X, proper# U62(X1, X2) -> proper# X2) (proper# U22 X -> proper# X, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U22 X -> proper# X, proper# U61(X1, X2, X3) -> proper# X1) (proper# U22 X -> proper# X, proper# U61(X1, X2, X3) -> proper# X2) (proper# U22 X -> proper# X, proper# U61(X1, X2, X3) -> proper# X3) (proper# U22 X -> proper# X, proper# U63 X -> U63# proper X) (proper# U22 X -> proper# X, proper# U63 X -> proper# X) (proper# U22 X -> proper# X, proper# s X -> s# proper X) (proper# U22 X -> proper# X, proper# s X -> proper# X) (proper# U22 X -> proper# X, proper# length X -> length# proper X) (proper# U22 X -> proper# X, proper# length X -> proper# X) (proper# U22 X -> proper# X, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U22 X -> proper# X, proper# U71(X1, X2) -> proper# X1) (proper# U22 X -> proper# X, proper# U71(X1, X2) -> proper# X2) (proper# U22 X -> proper# X, proper# U81 X -> U81# proper X) (proper# U22 X -> proper# X, proper# U81 X -> proper# X) (proper# U22 X -> proper# X, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U22 X -> proper# X, proper# take(X1, X2) -> proper# X1) (proper# U22 X -> proper# X, proper# take(X1, X2) -> proper# X2) (proper# U22 X -> proper# X, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U22 X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U22 X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U22 X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U22 X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U22 X -> proper# X, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U22 X -> proper# X, proper# and(X1, X2) -> proper# X1) (proper# U22 X -> proper# X, proper# and(X1, X2) -> proper# X2) (proper# U22 X -> proper# X, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U22 X -> proper# X, proper# isNatIListKind X -> proper# X) (proper# U22 X -> proper# X, proper# isNatKind X -> isNatKind# proper X) (proper# U22 X -> proper# X, proper# isNatKind X -> proper# X) (proper# U12 X -> proper# X, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# U12 X -> proper# X, proper# cons(X1, X2) -> proper# X1) (proper# U12 X -> proper# X, proper# cons(X1, X2) -> proper# X2) (proper# U12 X -> proper# X, proper# U12 X -> U12# proper X) (proper# U12 X -> proper# X, proper# U12 X -> proper# X) (proper# U12 X -> proper# X, proper# isNatList X -> isNatList# proper X) (proper# U12 X -> proper# X, proper# isNatList X -> proper# X) (proper# U12 X -> proper# X, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U12 X -> proper# X, proper# U11(X1, X2) -> proper# X1) (proper# U12 X -> proper# X, proper# U11(X1, X2) -> proper# X2) (proper# U12 X -> proper# X, proper# U22 X -> U22# proper X) (proper# U12 X -> proper# X, proper# U22 X -> proper# X) (proper# U12 X -> proper# X, proper# isNat X -> isNat# proper X) (proper# U12 X -> proper# X, proper# isNat X -> proper# X) (proper# U12 X -> proper# X, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U12 X -> proper# X, proper# U21(X1, X2) -> proper# X1) (proper# U12 X -> proper# X, proper# U21(X1, X2) -> proper# X2) (proper# U12 X -> proper# X, proper# U32 X -> U32# proper X) (proper# U12 X -> proper# X, proper# U32 X -> proper# X) (proper# U12 X -> proper# X, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U12 X -> proper# X, proper# U31(X1, X2) -> proper# X1) (proper# U12 X -> proper# X, proper# U31(X1, X2) -> proper# X2) (proper# U12 X -> proper# X, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U12 X -> proper# X, proper# U42(X1, X2) -> proper# X1) (proper# U12 X -> proper# X, proper# U42(X1, X2) -> proper# X2) (proper# U12 X -> proper# X, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U12 X -> proper# X, proper# U41(X1, X2, X3) -> proper# X1) (proper# U12 X -> proper# X, proper# U41(X1, X2, X3) -> proper# X2) (proper# U12 X -> proper# X, proper# U41(X1, X2, X3) -> proper# X3) (proper# U12 X -> proper# X, proper# U43 X -> U43# proper X) (proper# U12 X -> proper# X, proper# U43 X -> proper# X) (proper# U12 X -> proper# X, proper# isNatIList X -> isNatIList# proper X) (proper# U12 X -> proper# X, proper# isNatIList X -> proper# X) (proper# U12 X -> proper# X, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U12 X -> proper# X, proper# U52(X1, X2) -> proper# X1) (proper# U12 X -> proper# X, proper# U52(X1, X2) -> proper# X2) (proper# U12 X -> proper# X, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U12 X -> proper# X, proper# U51(X1, X2, X3) -> proper# X1) (proper# U12 X -> proper# X, proper# U51(X1, X2, X3) -> proper# X2) (proper# U12 X -> proper# X, proper# U51(X1, X2, X3) -> proper# X3) (proper# U12 X -> proper# X, proper# U53 X -> U53# proper X) (proper# U12 X -> proper# X, proper# U53 X -> proper# X) (proper# U12 X -> proper# X, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U12 X -> proper# X, proper# U62(X1, X2) -> proper# X1) (proper# U12 X -> proper# X, proper# U62(X1, X2) -> proper# X2) (proper# U12 X -> proper# X, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U12 X -> proper# X, proper# U61(X1, X2, X3) -> proper# X1) (proper# U12 X -> proper# X, proper# U61(X1, X2, X3) -> proper# X2) (proper# U12 X -> proper# X, proper# U61(X1, X2, X3) -> proper# X3) (proper# U12 X -> proper# X, proper# U63 X -> U63# proper X) (proper# U12 X -> proper# X, proper# U63 X -> proper# X) (proper# U12 X -> proper# X, proper# s X -> s# proper X) (proper# U12 X -> proper# X, proper# s X -> proper# X) (proper# U12 X -> proper# X, proper# length X -> length# proper X) (proper# U12 X -> proper# X, proper# length X -> proper# X) (proper# U12 X -> proper# X, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U12 X -> proper# X, proper# U71(X1, X2) -> proper# X1) (proper# U12 X -> proper# X, proper# U71(X1, X2) -> proper# X2) (proper# U12 X -> proper# X, proper# U81 X -> U81# proper X) (proper# U12 X -> proper# X, proper# U81 X -> proper# X) (proper# U12 X -> proper# X, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U12 X -> proper# X, proper# take(X1, X2) -> proper# X1) (proper# U12 X -> proper# X, proper# take(X1, X2) -> proper# X2) (proper# U12 X -> proper# X, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U12 X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U12 X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U12 X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U12 X -> proper# X, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U12 X -> proper# X, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U12 X -> proper# X, proper# and(X1, X2) -> proper# X1) (proper# U12 X -> proper# X, proper# and(X1, X2) -> proper# X2) (proper# U12 X -> proper# X, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U12 X -> proper# X, proper# isNatIListKind X -> proper# X) (proper# U12 X -> proper# X, proper# isNatKind X -> isNatKind# proper X) (proper# U12 X -> proper# X, proper# isNatKind X -> proper# X) (isNatIListKind# ok X -> isNatIListKind# X, isNatIListKind# ok X -> isNatIListKind# X) (U81# mark X -> U81# X, U81# mark X -> U81# X) (U81# mark X -> U81# X, U81# ok X -> U81# X) (length# mark X -> length# X, length# mark X -> length# X) (length# mark X -> length# X, length# ok X -> length# X) (s# mark X -> s# X, s# mark X -> s# X) (s# mark X -> s# X, s# ok X -> s# X) (U63# mark X -> U63# X, U63# mark X -> U63# X) (U63# mark X -> U63# X, U63# ok X -> U63# X) (U53# mark X -> U53# X, U53# mark X -> U53# X) (U53# mark X -> U53# X, U53# ok X -> U53# X) (U43# ok X -> U43# X, U43# mark X -> U43# X) (U43# ok X -> U43# X, U43# ok X -> U43# X) (U32# ok X -> U32# X, U32# mark X -> U32# X) (U32# ok X -> U32# X, U32# ok X -> U32# X) (isNat# ok X -> isNat# X, isNat# ok X -> isNat# X) (U22# mark X -> U22# X, U22# mark X -> U22# X) (U22# mark X -> U22# X, U22# ok X -> U22# X) (U12# ok X -> U12# X, U12# mark X -> U12# X) (U12# ok X -> U12# X, U12# ok X -> U12# X) (active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL), U81# mark X -> U81# X) (active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL), U81# ok X -> U81# X) (active# length X -> active# X, active# cons(X1, X2) -> cons#(active X1, X2)) (active# length X -> active# X, active# cons(X1, X2) -> active# X1) (active# length X -> active# X, active# zeros() -> cons#(0(), zeros())) (active# length X -> active# X, active# U12 X -> active# X) (active# length X -> active# X, active# U12 X -> U12# active X) (active# length X -> active# X, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# length X -> active# X, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# length X -> active# X, active# isNatList cons(V1, V2) -> isNatIListKind# V2) (active# length X -> active# X, active# isNatList cons(V1, V2) -> isNatKind# V1) (active# length X -> active# X, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# length X -> active# X, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# length X -> active# X, active# isNatList take(V1, V2) -> isNatIListKind# V2) (active# length X -> active# X, active# isNatList take(V1, V2) -> isNatKind# V1) (active# length X -> active# X, active# U11(X1, X2) -> active# X1) (active# length X -> active# X, active# U11(X1, X2) -> U11#(active X1, X2)) (active# length X -> active# X, active# U11(tt(), V1) -> U12# isNatList V1) (active# length X -> active# X, active# U11(tt(), V1) -> isNatList# V1) (active# length X -> active# X, active# U22 X -> active# X) (active# length X -> active# X, active# U22 X -> U22# active X) (active# length X -> active# X, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# length X -> active# X, active# isNat s V1 -> isNatKind# V1) (active# length X -> active# X, active# isNat length V1 -> U11#(isNatIListKind V1, V1)) (active# length X -> active# X, active# isNat length V1 -> isNatIListKind# V1) (active# length X -> active# X, active# U21(X1, X2) -> active# X1) (active# length X -> active# X, active# U21(X1, X2) -> U21#(active X1, X2)) (active# length X -> active# X, active# U21(tt(), V1) -> U22# isNat V1) (active# length X -> active# X, active# U21(tt(), V1) -> isNat# V1) (active# length X -> active# X, active# U32 X -> active# X) (active# length X -> active# X, active# U32 X -> U32# active X) (active# length X -> active# X, active# U31(X1, X2) -> active# X1) (active# length X -> active# X, active# U31(X1, X2) -> U31#(active X1, X2)) (active# length X -> active# X, active# U31(tt(), V) -> isNatList# V) (active# length X -> active# X, active# U31(tt(), V) -> U32# isNatList V) (active# length X -> active# X, active# U42(X1, X2) -> active# X1) (active# length X -> active# X, active# U42(X1, X2) -> U42#(active X1, X2)) (active# length X -> active# X, active# U42(tt(), V2) -> U43# isNatIList V2) (active# length X -> active# X, active# U42(tt(), V2) -> isNatIList# V2) (active# length X -> active# X, active# U41(X1, X2, X3) -> active# X1) (active# length X -> active# X, active# U41(X1, X2, X3) -> U41#(active X1, X2, X3)) (active# length X -> active# X, active# U41(tt(), V1, V2) -> isNat# V1) (active# length X -> active# X, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2)) (active# length X -> active# X, active# U43 X -> active# X) (active# length X -> active# X, active# U43 X -> U43# active X) (active# length X -> active# X, active# isNatIList V -> U31#(isNatIListKind V, V)) (active# length X -> active# X, active# isNatIList V -> isNatIListKind# V) (active# length X -> active# X, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# length X -> active# X, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# length X -> active# X, active# isNatIList cons(V1, V2) -> isNatIListKind# V2) (active# length X -> active# X, active# isNatIList cons(V1, V2) -> isNatKind# V1) (active# length X -> active# X, active# U52(X1, X2) -> active# X1) (active# length X -> active# X, active# U52(X1, X2) -> U52#(active X1, X2)) (active# length X -> active# X, active# U52(tt(), V2) -> isNatList# V2) (active# length X -> active# X, active# U52(tt(), V2) -> U53# isNatList V2) (active# length X -> active# X, active# U51(X1, X2, X3) -> active# X1) (active# length X -> active# X, active# U51(X1, X2, X3) -> U51#(active X1, X2, X3)) (active# length X -> active# X, active# U51(tt(), V1, V2) -> isNat# V1) (active# length X -> active# X, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2)) (active# length X -> active# X, active# U53 X -> active# X) (active# length X -> active# X, active# U53 X -> U53# active X) (active# length X -> active# X, active# U62(X1, X2) -> active# X1) (active# length X -> active# X, active# U62(X1, X2) -> U62#(active X1, X2)) (active# length X -> active# X, active# U62(tt(), V2) -> isNatIList# V2) (active# length X -> active# X, active# U62(tt(), V2) -> U63# isNatIList V2) (active# length X -> active# X, active# U61(X1, X2, X3) -> active# X1) (active# length X -> active# X, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# length X -> active# X, active# U61(tt(), V1, V2) -> isNat# V1) (active# length X -> active# X, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2)) (active# length X -> active# X, active# U63 X -> active# X) (active# length X -> active# X, active# U63 X -> U63# active X) (active# length X -> active# X, active# s X -> active# X) (active# length X -> active# X, active# s X -> s# active X) (active# length X -> active# X, active# length X -> active# X) (active# length X -> active# X, active# length X -> length# active X) (active# length X -> active# X, active# length cons(N, L) -> isNatList# L) (active# length X -> active# X, active# length cons(N, L) -> isNat# N) (active# length X -> active# X, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L)) (active# length X -> active# X, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L)) (active# length X -> active# X, active# length cons(N, L) -> and#(isNat N, isNatKind N)) (active# length X -> active# X, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N))) (active# length X -> active# X, active# length cons(N, L) -> isNatIListKind# L) (active# length X -> active# X, active# length cons(N, L) -> isNatKind# N) (active# length X -> active# X, active# U71(X1, X2) -> active# X1) (active# length X -> active# X, active# U71(X1, X2) -> U71#(active X1, X2)) (active# length X -> active# X, active# U71(tt(), L) -> s# length L) (active# length X -> active# X, active# U71(tt(), L) -> length# L) (active# length X -> active# X, active# U81 X -> active# X) (active# length X -> active# X, active# U81 X -> U81# active X) (active# length X -> active# X, active# take(X1, X2) -> active# X1) (active# length X -> active# X, active# take(X1, X2) -> active# X2) (active# length X -> active# X, active# take(X1, X2) -> take#(X1, active X2)) (active# length X -> active# X, active# take(X1, X2) -> take#(active X1, X2)) (active# length X -> active# X, active# take(0(), IL) -> isNatIList# IL) (active# length X -> active# X, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL)) (active# length X -> active# X, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL)) (active# length X -> active# X, active# take(0(), IL) -> isNatIListKind# IL) (active# length X -> active# X, active# take(s M, cons(N, IL)) -> isNat# N) (active# length X -> active# X, active# take(s M, cons(N, IL)) -> isNat# M) (active# length X -> active# X, active# take(s M, cons(N, IL)) -> isNatIList# IL) (active# length X -> active# X, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)) (active# length X -> active# X, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N)) (active# length X -> active# X, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M)) (active# length X -> active# X, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL)) (active# length X -> active# X, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (active# length X -> active# X, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))) (active# length X -> active# X, active# take(s M, cons(N, IL)) -> isNatIListKind# IL) (active# length X -> active# X, active# take(s M, cons(N, IL)) -> isNatKind# N) (active# length X -> active# X, active# take(s M, cons(N, IL)) -> isNatKind# M) (active# length X -> active# X, active# U91(X1, X2, X3, X4) -> active# X1) (active# length X -> active# X, active# U91(X1, X2, X3, X4) -> U91#(active X1, X2, X3, X4)) (active# length X -> active# X, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL))) (active# length X -> active# X, active# U91(tt(), IL, M, N) -> take#(M, IL)) (active# length X -> active# X, active# and(X1, X2) -> active# X1) (active# length X -> active# X, active# and(X1, X2) -> and#(active X1, X2)) (active# length X -> active# X, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# length X -> active# X, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2) (active# length X -> active# X, active# isNatIListKind cons(V1, V2) -> isNatKind# V1) (active# length X -> active# X, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# length X -> active# X, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2) (active# length X -> active# X, active# isNatIListKind take(V1, V2) -> isNatKind# V1) (active# length X -> active# X, active# isNatKind s V1 -> isNatKind# V1) (active# length X -> active# X, active# isNatKind length V1 -> isNatIListKind# V1) (active# U63 X -> active# X, active# cons(X1, X2) -> cons#(active X1, X2)) (active# U63 X -> active# X, active# cons(X1, X2) -> active# X1) (active# U63 X -> active# X, active# zeros() -> cons#(0(), zeros())) (active# U63 X -> active# X, active# U12 X -> active# X) (active# U63 X -> active# X, active# U12 X -> U12# active X) (active# U63 X -> active# X, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U63 X -> active# X, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U63 X -> active# X, active# isNatList cons(V1, V2) -> isNatIListKind# V2) (active# U63 X -> active# X, active# isNatList cons(V1, V2) -> isNatKind# V1) (active# U63 X -> active# X, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U63 X -> active# X, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U63 X -> active# X, active# isNatList take(V1, V2) -> isNatIListKind# V2) (active# U63 X -> active# X, active# isNatList take(V1, V2) -> isNatKind# V1) (active# U63 X -> active# X, active# U11(X1, X2) -> active# X1) (active# U63 X -> active# X, active# U11(X1, X2) -> U11#(active X1, X2)) (active# U63 X -> active# X, active# U11(tt(), V1) -> U12# isNatList V1) (active# U63 X -> active# X, active# U11(tt(), V1) -> isNatList# V1) (active# U63 X -> active# X, active# U22 X -> active# X) (active# U63 X -> active# X, active# U22 X -> U22# active X) (active# U63 X -> active# X, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U63 X -> active# X, active# isNat s V1 -> isNatKind# V1) (active# U63 X -> active# X, active# isNat length V1 -> U11#(isNatIListKind V1, V1)) (active# U63 X -> active# X, active# isNat length V1 -> isNatIListKind# V1) (active# U63 X -> active# X, active# U21(X1, X2) -> active# X1) (active# U63 X -> active# X, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U63 X -> active# X, active# U21(tt(), V1) -> U22# isNat V1) (active# U63 X -> active# X, active# U21(tt(), V1) -> isNat# V1) (active# U63 X -> active# X, active# U32 X -> active# X) (active# U63 X -> active# X, active# U32 X -> U32# active X) (active# U63 X -> active# X, active# U31(X1, X2) -> active# X1) (active# U63 X -> active# X, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U63 X -> active# X, active# U31(tt(), V) -> isNatList# V) (active# U63 X -> active# X, active# U31(tt(), V) -> U32# isNatList V) (active# U63 X -> active# X, active# U42(X1, X2) -> active# X1) (active# U63 X -> active# X, active# U42(X1, X2) -> U42#(active X1, X2)) (active# U63 X -> active# X, active# U42(tt(), V2) -> U43# isNatIList V2) (active# U63 X -> active# X, active# U42(tt(), V2) -> isNatIList# V2) (active# U63 X -> active# X, active# U41(X1, X2, X3) -> active# X1) (active# U63 X -> active# X, active# U41(X1, X2, X3) -> U41#(active X1, X2, X3)) (active# U63 X -> active# X, active# U41(tt(), V1, V2) -> isNat# V1) (active# U63 X -> active# X, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2)) (active# U63 X -> active# X, active# U43 X -> active# X) (active# U63 X -> active# X, active# U43 X -> U43# active X) (active# U63 X -> active# X, active# isNatIList V -> U31#(isNatIListKind V, V)) (active# U63 X -> active# X, active# isNatIList V -> isNatIListKind# V) (active# U63 X -> active# X, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U63 X -> active# X, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U63 X -> active# X, active# isNatIList cons(V1, V2) -> isNatIListKind# V2) (active# U63 X -> active# X, active# isNatIList cons(V1, V2) -> isNatKind# V1) (active# U63 X -> active# X, active# U52(X1, X2) -> active# X1) (active# U63 X -> active# X, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U63 X -> active# X, active# U52(tt(), V2) -> isNatList# V2) (active# U63 X -> active# X, active# U52(tt(), V2) -> U53# isNatList V2) (active# U63 X -> active# X, active# U51(X1, X2, X3) -> active# X1) (active# U63 X -> active# X, active# U51(X1, X2, X3) -> U51#(active X1, X2, X3)) (active# U63 X -> active# X, active# U51(tt(), V1, V2) -> isNat# V1) (active# U63 X -> active# X, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2)) (active# U63 X -> active# X, active# U53 X -> active# X) (active# U63 X -> active# X, active# U53 X -> U53# active X) (active# U63 X -> active# X, active# U62(X1, X2) -> active# X1) (active# U63 X -> active# X, active# U62(X1, X2) -> U62#(active X1, X2)) (active# U63 X -> active# X, active# U62(tt(), V2) -> isNatIList# V2) (active# U63 X -> active# X, active# U62(tt(), V2) -> U63# isNatIList V2) (active# U63 X -> active# X, active# U61(X1, X2, X3) -> active# X1) (active# U63 X -> active# X, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U63 X -> active# X, active# U61(tt(), V1, V2) -> isNat# V1) (active# U63 X -> active# X, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2)) (active# U63 X -> active# X, active# U63 X -> active# X) (active# U63 X -> active# X, active# U63 X -> U63# active X) (active# U63 X -> active# X, active# s X -> active# X) (active# U63 X -> active# X, active# s X -> s# active X) (active# U63 X -> active# X, active# length X -> active# X) (active# U63 X -> active# X, active# length X -> length# active X) (active# U63 X -> active# X, active# length cons(N, L) -> isNatList# L) (active# U63 X -> active# X, active# length cons(N, L) -> isNat# N) (active# U63 X -> active# X, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L)) (active# U63 X -> active# X, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L)) (active# U63 X -> active# X, active# length cons(N, L) -> and#(isNat N, isNatKind N)) (active# U63 X -> active# X, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N))) (active# U63 X -> active# X, active# length cons(N, L) -> isNatIListKind# L) (active# U63 X -> active# X, active# length cons(N, L) -> isNatKind# N) (active# U63 X -> active# X, active# U71(X1, X2) -> active# X1) (active# U63 X -> active# X, active# U71(X1, X2) -> U71#(active X1, X2)) (active# U63 X -> active# X, active# U71(tt(), L) -> s# length L) (active# U63 X -> active# X, active# U71(tt(), L) -> length# L) (active# U63 X -> active# X, active# U81 X -> active# X) (active# U63 X -> active# X, active# U81 X -> U81# active X) (active# U63 X -> active# X, active# take(X1, X2) -> active# X1) (active# U63 X -> active# X, active# take(X1, X2) -> active# X2) (active# U63 X -> active# X, active# take(X1, X2) -> take#(X1, active X2)) (active# U63 X -> active# X, active# take(X1, X2) -> take#(active X1, X2)) (active# U63 X -> active# X, active# take(0(), IL) -> isNatIList# IL) (active# U63 X -> active# X, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL)) (active# U63 X -> active# X, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL)) (active# U63 X -> active# X, active# take(0(), IL) -> isNatIListKind# IL) (active# U63 X -> active# X, active# take(s M, cons(N, IL)) -> isNat# N) (active# U63 X -> active# X, active# take(s M, cons(N, IL)) -> isNat# M) (active# U63 X -> active# X, active# take(s M, cons(N, IL)) -> isNatIList# IL) (active# U63 X -> active# X, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)) (active# U63 X -> active# X, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N)) (active# U63 X -> active# X, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M)) (active# U63 X -> active# X, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL)) (active# U63 X -> active# X, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (active# U63 X -> active# X, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))) (active# U63 X -> active# X, active# take(s M, cons(N, IL)) -> isNatIListKind# IL) (active# U63 X -> active# X, active# take(s M, cons(N, IL)) -> isNatKind# N) (active# U63 X -> active# X, active# take(s M, cons(N, IL)) -> isNatKind# M) (active# U63 X -> active# X, active# U91(X1, X2, X3, X4) -> active# X1) (active# U63 X -> active# X, active# U91(X1, X2, X3, X4) -> U91#(active X1, X2, X3, X4)) (active# U63 X -> active# X, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL))) (active# U63 X -> active# X, active# U91(tt(), IL, M, N) -> take#(M, IL)) (active# U63 X -> active# X, active# and(X1, X2) -> active# X1) (active# U63 X -> active# X, active# and(X1, X2) -> and#(active X1, X2)) (active# U63 X -> active# X, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U63 X -> active# X, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2) (active# U63 X -> active# X, active# isNatIListKind cons(V1, V2) -> isNatKind# V1) (active# U63 X -> active# X, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U63 X -> active# X, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2) (active# U63 X -> active# X, active# isNatIListKind take(V1, V2) -> isNatKind# V1) (active# U63 X -> active# X, active# isNatKind s V1 -> isNatKind# V1) (active# U63 X -> active# X, active# isNatKind length V1 -> isNatIListKind# V1) (active# U43 X -> active# X, active# cons(X1, X2) -> cons#(active X1, X2)) (active# U43 X -> active# X, active# cons(X1, X2) -> active# X1) (active# U43 X -> active# X, active# zeros() -> cons#(0(), zeros())) (active# U43 X -> active# X, active# U12 X -> active# X) (active# U43 X -> active# X, active# U12 X -> U12# active X) (active# U43 X -> active# X, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U43 X -> active# X, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U43 X -> active# X, active# isNatList cons(V1, V2) -> isNatIListKind# V2) (active# U43 X -> active# X, active# isNatList cons(V1, V2) -> isNatKind# V1) (active# U43 X -> active# X, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U43 X -> active# X, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U43 X -> active# X, active# isNatList take(V1, V2) -> isNatIListKind# V2) (active# U43 X -> active# X, active# isNatList take(V1, V2) -> isNatKind# V1) (active# U43 X -> active# X, active# U11(X1, X2) -> active# X1) (active# U43 X -> active# X, active# U11(X1, X2) -> U11#(active X1, X2)) (active# U43 X -> active# X, active# U11(tt(), V1) -> U12# isNatList V1) (active# U43 X -> active# X, active# U11(tt(), V1) -> isNatList# V1) (active# U43 X -> active# X, active# U22 X -> active# X) (active# U43 X -> active# X, active# U22 X -> U22# active X) (active# U43 X -> active# X, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U43 X -> active# X, active# isNat s V1 -> isNatKind# V1) (active# U43 X -> active# X, active# isNat length V1 -> U11#(isNatIListKind V1, V1)) (active# U43 X -> active# X, active# isNat length V1 -> isNatIListKind# V1) (active# U43 X -> active# X, active# U21(X1, X2) -> active# X1) (active# U43 X -> active# X, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U43 X -> active# X, active# U21(tt(), V1) -> U22# isNat V1) (active# U43 X -> active# X, active# U21(tt(), V1) -> isNat# V1) (active# U43 X -> active# X, active# U32 X -> active# X) (active# U43 X -> active# X, active# U32 X -> U32# active X) (active# U43 X -> active# X, active# U31(X1, X2) -> active# X1) (active# U43 X -> active# X, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U43 X -> active# X, active# U31(tt(), V) -> isNatList# V) (active# U43 X -> active# X, active# U31(tt(), V) -> U32# isNatList V) (active# U43 X -> active# X, active# U42(X1, X2) -> active# X1) (active# U43 X -> active# X, active# U42(X1, X2) -> U42#(active X1, X2)) (active# U43 X -> active# X, active# U42(tt(), V2) -> U43# isNatIList V2) (active# U43 X -> active# X, active# U42(tt(), V2) -> isNatIList# V2) (active# U43 X -> active# X, active# U41(X1, X2, X3) -> active# X1) (active# U43 X -> active# X, active# U41(X1, X2, X3) -> U41#(active X1, X2, X3)) (active# U43 X -> active# X, active# U41(tt(), V1, V2) -> isNat# V1) (active# U43 X -> active# X, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2)) (active# U43 X -> active# X, active# U43 X -> active# X) (active# U43 X -> active# X, active# U43 X -> U43# active X) (active# U43 X -> active# X, active# isNatIList V -> U31#(isNatIListKind V, V)) (active# U43 X -> active# X, active# isNatIList V -> isNatIListKind# V) (active# U43 X -> active# X, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U43 X -> active# X, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U43 X -> active# X, active# isNatIList cons(V1, V2) -> isNatIListKind# V2) (active# U43 X -> active# X, active# isNatIList cons(V1, V2) -> isNatKind# V1) (active# U43 X -> active# X, active# U52(X1, X2) -> active# X1) (active# U43 X -> active# X, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U43 X -> active# X, active# U52(tt(), V2) -> isNatList# V2) (active# U43 X -> active# X, active# U52(tt(), V2) -> U53# isNatList V2) (active# U43 X -> active# X, active# U51(X1, X2, X3) -> active# X1) (active# U43 X -> active# X, active# U51(X1, X2, X3) -> U51#(active X1, X2, X3)) (active# U43 X -> active# X, active# U51(tt(), V1, V2) -> isNat# V1) (active# U43 X -> active# X, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2)) (active# U43 X -> active# X, active# U53 X -> active# X) (active# U43 X -> active# X, active# U53 X -> U53# active X) (active# U43 X -> active# X, active# U62(X1, X2) -> active# X1) (active# U43 X -> active# X, active# U62(X1, X2) -> U62#(active X1, X2)) (active# U43 X -> active# X, active# U62(tt(), V2) -> isNatIList# V2) (active# U43 X -> active# X, active# U62(tt(), V2) -> U63# isNatIList V2) (active# U43 X -> active# X, active# U61(X1, X2, X3) -> active# X1) (active# U43 X -> active# X, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U43 X -> active# X, active# U61(tt(), V1, V2) -> isNat# V1) (active# U43 X -> active# X, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2)) (active# U43 X -> active# X, active# U63 X -> active# X) (active# U43 X -> active# X, active# U63 X -> U63# active X) (active# U43 X -> active# X, active# s X -> active# X) (active# U43 X -> active# X, active# s X -> s# active X) (active# U43 X -> active# X, active# length X -> active# X) (active# U43 X -> active# X, active# length X -> length# active X) (active# U43 X -> active# X, active# length cons(N, L) -> isNatList# L) (active# U43 X -> active# X, active# length cons(N, L) -> isNat# N) (active# U43 X -> active# X, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L)) (active# U43 X -> active# X, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L)) (active# U43 X -> active# X, active# length cons(N, L) -> and#(isNat N, isNatKind N)) (active# U43 X -> active# X, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N))) (active# U43 X -> active# X, active# length cons(N, L) -> isNatIListKind# L) (active# U43 X -> active# X, active# length cons(N, L) -> isNatKind# N) (active# U43 X -> active# X, active# U71(X1, X2) -> active# X1) (active# U43 X -> active# X, active# U71(X1, X2) -> U71#(active X1, X2)) (active# U43 X -> active# X, active# U71(tt(), L) -> s# length L) (active# U43 X -> active# X, active# U71(tt(), L) -> length# L) (active# U43 X -> active# X, active# U81 X -> active# X) (active# U43 X -> active# X, active# U81 X -> U81# active X) (active# U43 X -> active# X, active# take(X1, X2) -> active# X1) (active# U43 X -> active# X, active# take(X1, X2) -> active# X2) (active# U43 X -> active# X, active# take(X1, X2) -> take#(X1, active X2)) (active# U43 X -> active# X, active# take(X1, X2) -> take#(active X1, X2)) (active# U43 X -> active# X, active# take(0(), IL) -> isNatIList# IL) (active# U43 X -> active# X, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL)) (active# U43 X -> active# X, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL)) (active# U43 X -> active# X, active# take(0(), IL) -> isNatIListKind# IL) (active# U43 X -> active# X, active# take(s M, cons(N, IL)) -> isNat# N) (active# U43 X -> active# X, active# take(s M, cons(N, IL)) -> isNat# M) (active# U43 X -> active# X, active# take(s M, cons(N, IL)) -> isNatIList# IL) (active# U43 X -> active# X, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)) (active# U43 X -> active# X, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N)) (active# U43 X -> active# X, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M)) (active# U43 X -> active# X, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL)) (active# U43 X -> active# X, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (active# U43 X -> active# X, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))) (active# U43 X -> active# X, active# take(s M, cons(N, IL)) -> isNatIListKind# IL) (active# U43 X -> active# X, active# take(s M, cons(N, IL)) -> isNatKind# N) (active# U43 X -> active# X, active# take(s M, cons(N, IL)) -> isNatKind# M) (active# U43 X -> active# X, active# U91(X1, X2, X3, X4) -> active# X1) (active# U43 X -> active# X, active# U91(X1, X2, X3, X4) -> U91#(active X1, X2, X3, X4)) (active# U43 X -> active# X, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL))) (active# U43 X -> active# X, active# U91(tt(), IL, M, N) -> take#(M, IL)) (active# U43 X -> active# X, active# and(X1, X2) -> active# X1) (active# U43 X -> active# X, active# and(X1, X2) -> and#(active X1, X2)) (active# U43 X -> active# X, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U43 X -> active# X, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2) (active# U43 X -> active# X, active# isNatIListKind cons(V1, V2) -> isNatKind# V1) (active# U43 X -> active# X, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U43 X -> active# X, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2) (active# U43 X -> active# X, active# isNatIListKind take(V1, V2) -> isNatKind# V1) (active# U43 X -> active# X, active# isNatKind s V1 -> isNatKind# V1) (active# U43 X -> active# X, active# isNatKind length V1 -> isNatIListKind# V1) (active# U22 X -> active# X, active# cons(X1, X2) -> cons#(active X1, X2)) (active# U22 X -> active# X, active# cons(X1, X2) -> active# X1) (active# U22 X -> active# X, active# zeros() -> cons#(0(), zeros())) (active# U22 X -> active# X, active# U12 X -> active# X) (active# U22 X -> active# X, active# U12 X -> U12# active X) (active# U22 X -> active# X, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U22 X -> active# X, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U22 X -> active# X, active# isNatList cons(V1, V2) -> isNatIListKind# V2) (active# U22 X -> active# X, active# isNatList cons(V1, V2) -> isNatKind# V1) (active# U22 X -> active# X, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U22 X -> active# X, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U22 X -> active# X, active# isNatList take(V1, V2) -> isNatIListKind# V2) (active# U22 X -> active# X, active# isNatList take(V1, V2) -> isNatKind# V1) (active# U22 X -> active# X, active# U11(X1, X2) -> active# X1) (active# U22 X -> active# X, active# U11(X1, X2) -> U11#(active X1, X2)) (active# U22 X -> active# X, active# U11(tt(), V1) -> U12# isNatList V1) (active# U22 X -> active# X, active# U11(tt(), V1) -> isNatList# V1) (active# U22 X -> active# X, active# U22 X -> active# X) (active# U22 X -> active# X, active# U22 X -> U22# active X) (active# U22 X -> active# X, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U22 X -> active# X, active# isNat s V1 -> isNatKind# V1) (active# U22 X -> active# X, active# isNat length V1 -> U11#(isNatIListKind V1, V1)) (active# U22 X -> active# X, active# isNat length V1 -> isNatIListKind# V1) (active# U22 X -> active# X, active# U21(X1, X2) -> active# X1) (active# U22 X -> active# X, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U22 X -> active# X, active# U21(tt(), V1) -> U22# isNat V1) (active# U22 X -> active# X, active# U21(tt(), V1) -> isNat# V1) (active# U22 X -> active# X, active# U32 X -> active# X) (active# U22 X -> active# X, active# U32 X -> U32# active X) (active# U22 X -> active# X, active# U31(X1, X2) -> active# X1) (active# U22 X -> active# X, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U22 X -> active# X, active# U31(tt(), V) -> isNatList# V) (active# U22 X -> active# X, active# U31(tt(), V) -> U32# isNatList V) (active# U22 X -> active# X, active# U42(X1, X2) -> active# X1) (active# U22 X -> active# X, active# U42(X1, X2) -> U42#(active X1, X2)) (active# U22 X -> active# X, active# U42(tt(), V2) -> U43# isNatIList V2) (active# U22 X -> active# X, active# U42(tt(), V2) -> isNatIList# V2) (active# U22 X -> active# X, active# U41(X1, X2, X3) -> active# X1) (active# U22 X -> active# X, active# U41(X1, X2, X3) -> U41#(active X1, X2, X3)) (active# U22 X -> active# X, active# U41(tt(), V1, V2) -> isNat# V1) (active# U22 X -> active# X, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2)) (active# U22 X -> active# X, active# U43 X -> active# X) (active# U22 X -> active# X, active# U43 X -> U43# active X) (active# U22 X -> active# X, active# isNatIList V -> U31#(isNatIListKind V, V)) (active# U22 X -> active# X, active# isNatIList V -> isNatIListKind# V) (active# U22 X -> active# X, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U22 X -> active# X, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U22 X -> active# X, active# isNatIList cons(V1, V2) -> isNatIListKind# V2) (active# U22 X -> active# X, active# isNatIList cons(V1, V2) -> isNatKind# V1) (active# U22 X -> active# X, active# U52(X1, X2) -> active# X1) (active# U22 X -> active# X, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U22 X -> active# X, active# U52(tt(), V2) -> isNatList# V2) (active# U22 X -> active# X, active# U52(tt(), V2) -> U53# isNatList V2) (active# U22 X -> active# X, active# U51(X1, X2, X3) -> active# X1) (active# U22 X -> active# X, active# U51(X1, X2, X3) -> U51#(active X1, X2, X3)) (active# U22 X -> active# X, active# U51(tt(), V1, V2) -> isNat# V1) (active# U22 X -> active# X, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2)) (active# U22 X -> active# X, active# U53 X -> active# X) (active# U22 X -> active# X, active# U53 X -> U53# active X) (active# U22 X -> active# X, active# U62(X1, X2) -> active# X1) (active# U22 X -> active# X, active# U62(X1, X2) -> U62#(active X1, X2)) (active# U22 X -> active# X, active# U62(tt(), V2) -> isNatIList# V2) (active# U22 X -> active# X, active# U62(tt(), V2) -> U63# isNatIList V2) (active# U22 X -> active# X, active# U61(X1, X2, X3) -> active# X1) (active# U22 X -> active# X, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U22 X -> active# X, active# U61(tt(), V1, V2) -> isNat# V1) (active# U22 X -> active# X, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2)) (active# U22 X -> active# X, active# U63 X -> active# X) (active# U22 X -> active# X, active# U63 X -> U63# active X) (active# U22 X -> active# X, active# s X -> active# X) (active# U22 X -> active# X, active# s X -> s# active X) (active# U22 X -> active# X, active# length X -> active# X) (active# U22 X -> active# X, active# length X -> length# active X) (active# U22 X -> active# X, active# length cons(N, L) -> isNatList# L) (active# U22 X -> active# X, active# length cons(N, L) -> isNat# N) (active# U22 X -> active# X, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L)) (active# U22 X -> active# X, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L)) (active# U22 X -> active# X, active# length cons(N, L) -> and#(isNat N, isNatKind N)) (active# U22 X -> active# X, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N))) (active# U22 X -> active# X, active# length cons(N, L) -> isNatIListKind# L) (active# U22 X -> active# X, active# length cons(N, L) -> isNatKind# N) (active# U22 X -> active# X, active# U71(X1, X2) -> active# X1) (active# U22 X -> active# X, active# U71(X1, X2) -> U71#(active X1, X2)) (active# U22 X -> active# X, active# U71(tt(), L) -> s# length L) (active# U22 X -> active# X, active# U71(tt(), L) -> length# L) (active# U22 X -> active# X, active# U81 X -> active# X) (active# U22 X -> active# X, active# U81 X -> U81# active X) (active# U22 X -> active# X, active# take(X1, X2) -> active# X1) (active# U22 X -> active# X, active# take(X1, X2) -> active# X2) (active# U22 X -> active# X, active# take(X1, X2) -> take#(X1, active X2)) (active# U22 X -> active# X, active# take(X1, X2) -> take#(active X1, X2)) (active# U22 X -> active# X, active# take(0(), IL) -> isNatIList# IL) (active# U22 X -> active# X, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL)) (active# U22 X -> active# X, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL)) (active# U22 X -> active# X, active# take(0(), IL) -> isNatIListKind# IL) (active# U22 X -> active# X, active# take(s M, cons(N, IL)) -> isNat# N) (active# U22 X -> active# X, active# take(s M, cons(N, IL)) -> isNat# M) (active# U22 X -> active# X, active# take(s M, cons(N, IL)) -> isNatIList# IL) (active# U22 X -> active# X, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)) (active# U22 X -> active# X, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N)) (active# U22 X -> active# X, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M)) (active# U22 X -> active# X, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL)) (active# U22 X -> active# X, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (active# U22 X -> active# X, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))) (active# U22 X -> active# X, active# take(s M, cons(N, IL)) -> isNatIListKind# IL) (active# U22 X -> active# X, active# take(s M, cons(N, IL)) -> isNatKind# N) (active# U22 X -> active# X, active# take(s M, cons(N, IL)) -> isNatKind# M) (active# U22 X -> active# X, active# U91(X1, X2, X3, X4) -> active# X1) (active# U22 X -> active# X, active# U91(X1, X2, X3, X4) -> U91#(active X1, X2, X3, X4)) (active# U22 X -> active# X, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL))) (active# U22 X -> active# X, active# U91(tt(), IL, M, N) -> take#(M, IL)) (active# U22 X -> active# X, active# and(X1, X2) -> active# X1) (active# U22 X -> active# X, active# and(X1, X2) -> and#(active X1, X2)) (active# U22 X -> active# X, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U22 X -> active# X, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2) (active# U22 X -> active# X, active# isNatIListKind cons(V1, V2) -> isNatKind# V1) (active# U22 X -> active# X, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U22 X -> active# X, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2) (active# U22 X -> active# X, active# isNatIListKind take(V1, V2) -> isNatKind# V1) (active# U22 X -> active# X, active# isNatKind s V1 -> isNatKind# V1) (active# U22 X -> active# X, active# isNatKind length V1 -> isNatIListKind# V1) (proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4), U91#(mark X1, X2, X3, X4) -> U91#(X1, X2, X3, X4)) (proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4), U91#(ok X1, ok X2, ok X3, ok X4) -> U91#(X1, X2, X3, X4)) (active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2, isNatIListKind# ok X -> isNatIListKind# X) (active# U52(tt(), V2) -> isNatList# V2, isNatList# ok X -> isNatList# X) (active# U42(tt(), V2) -> isNatIList# V2, isNatIList# ok X -> isNatIList# X) (active# isNatList cons(V1, V2) -> isNatIListKind# V2, isNatIListKind# ok X -> isNatIListKind# X) (active# isNat s V1 -> U21#(isNatKind V1, V1), U21#(mark X1, X2) -> U21#(X1, X2)) (active# isNat s V1 -> U21#(isNatKind V1, V1), U21#(ok X1, ok X2) -> U21#(X1, X2)) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# cons(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# cons(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U12 X -> U12# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U12 X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# isNatList X -> isNatList# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# isNatList X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U11(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U11(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U22 X -> U22# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U22 X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# isNat X -> isNat# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# isNat X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U21(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U21(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U32 X -> U32# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U32 X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U31(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U31(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U42(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U42(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X3) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U43 X -> U43# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U43 X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# isNatIList X -> isNatIList# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# isNatIList X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U52(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U52(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X3) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U53 X -> U53# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U53 X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U62(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U62(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U63 X -> U63# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U63 X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# s X -> s# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# s X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# length X -> length# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# length X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U71(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U71(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U81 X -> U81# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U81 X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# take(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# take(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# and(X1, X2) -> proper# X1) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# and(X1, X2) -> proper# X2) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# isNatIListKind X -> proper# X) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# isNatKind X -> isNatKind# proper X) (proper# U91(X1, X2, X3, X4) -> proper# X2, proper# isNatKind X -> proper# X) (proper# U71(X1, X2) -> proper# X2, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# U71(X1, X2) -> proper# X2, proper# cons(X1, X2) -> proper# X1) (proper# U71(X1, X2) -> proper# X2, proper# cons(X1, X2) -> proper# X2) (proper# U71(X1, X2) -> proper# X2, proper# U12 X -> U12# proper X) (proper# U71(X1, X2) -> proper# X2, proper# U12 X -> proper# X) (proper# U71(X1, X2) -> proper# X2, proper# isNatList X -> isNatList# proper X) (proper# U71(X1, X2) -> proper# X2, proper# isNatList X -> proper# X) (proper# U71(X1, X2) -> proper# X2, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U71(X1, X2) -> proper# X2, proper# U11(X1, X2) -> proper# X1) (proper# U71(X1, X2) -> proper# X2, proper# U11(X1, X2) -> proper# X2) (proper# U71(X1, X2) -> proper# X2, proper# U22 X -> U22# proper X) (proper# U71(X1, X2) -> proper# X2, proper# U22 X -> proper# X) (proper# U71(X1, X2) -> proper# X2, proper# isNat X -> isNat# proper X) (proper# U71(X1, X2) -> proper# X2, proper# isNat X -> proper# X) (proper# U71(X1, X2) -> proper# X2, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U71(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1) (proper# U71(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X2) (proper# U71(X1, X2) -> proper# X2, proper# U32 X -> U32# proper X) (proper# U71(X1, X2) -> proper# X2, proper# U32 X -> proper# X) (proper# U71(X1, X2) -> proper# X2, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U71(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X1) (proper# U71(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X2) (proper# U71(X1, X2) -> proper# X2, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U71(X1, X2) -> proper# X2, proper# U42(X1, X2) -> proper# X1) (proper# U71(X1, X2) -> proper# X2, proper# U42(X1, X2) -> proper# X2) (proper# U71(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U71(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X1) (proper# U71(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X2) (proper# U71(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X3) (proper# U71(X1, X2) -> proper# X2, proper# U43 X -> U43# proper X) (proper# U71(X1, X2) -> proper# X2, proper# U43 X -> proper# X) (proper# U71(X1, X2) -> proper# X2, proper# isNatIList X -> isNatIList# proper X) (proper# U71(X1, X2) -> proper# X2, proper# isNatIList X -> proper# X) (proper# U71(X1, X2) -> proper# X2, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U71(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X1) (proper# U71(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X2) (proper# U71(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U71(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X1) (proper# U71(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X2) (proper# U71(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X3) (proper# U71(X1, X2) -> proper# X2, proper# U53 X -> U53# proper X) (proper# U71(X1, X2) -> proper# X2, proper# U53 X -> proper# X) (proper# U71(X1, X2) -> proper# X2, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U71(X1, X2) -> proper# X2, proper# U62(X1, X2) -> proper# X1) (proper# U71(X1, X2) -> proper# X2, proper# U62(X1, X2) -> proper# X2) (proper# U71(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U71(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X1) (proper# U71(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X2) (proper# U71(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3) (proper# U71(X1, X2) -> proper# X2, proper# U63 X -> U63# proper X) (proper# U71(X1, X2) -> proper# X2, proper# U63 X -> proper# X) (proper# U71(X1, X2) -> proper# X2, proper# s X -> s# proper X) (proper# U71(X1, X2) -> proper# X2, proper# s X -> proper# X) (proper# U71(X1, X2) -> proper# X2, proper# length X -> length# proper X) (proper# U71(X1, X2) -> proper# X2, proper# length X -> proper# X) (proper# U71(X1, X2) -> proper# X2, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U71(X1, X2) -> proper# X2, proper# U71(X1, X2) -> proper# X1) (proper# U71(X1, X2) -> proper# X2, proper# U71(X1, X2) -> proper# X2) (proper# U71(X1, X2) -> proper# X2, proper# U81 X -> U81# proper X) (proper# U71(X1, X2) -> proper# X2, proper# U81 X -> proper# X) (proper# U71(X1, X2) -> proper# X2, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U71(X1, X2) -> proper# X2, proper# take(X1, X2) -> proper# X1) (proper# U71(X1, X2) -> proper# X2, proper# take(X1, X2) -> proper# X2) (proper# U71(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U71(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U71(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U71(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U71(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U71(X1, X2) -> proper# X2, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U71(X1, X2) -> proper# X2, proper# and(X1, X2) -> proper# X1) (proper# U71(X1, X2) -> proper# X2, proper# and(X1, X2) -> proper# X2) (proper# U71(X1, X2) -> proper# X2, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U71(X1, X2) -> proper# X2, proper# isNatIListKind X -> proper# X) (proper# U71(X1, X2) -> proper# X2, proper# isNatKind X -> isNatKind# proper X) (proper# U71(X1, X2) -> proper# X2, proper# isNatKind X -> proper# X) (proper# U62(X1, X2) -> proper# X2, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# U62(X1, X2) -> proper# X2, proper# cons(X1, X2) -> proper# X1) (proper# U62(X1, X2) -> proper# X2, proper# cons(X1, X2) -> proper# X2) (proper# U62(X1, X2) -> proper# X2, proper# U12 X -> U12# proper X) (proper# U62(X1, X2) -> proper# X2, proper# U12 X -> proper# X) (proper# U62(X1, X2) -> proper# X2, proper# isNatList X -> isNatList# proper X) (proper# U62(X1, X2) -> proper# X2, proper# isNatList X -> proper# X) (proper# U62(X1, X2) -> proper# X2, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U62(X1, X2) -> proper# X2, proper# U11(X1, X2) -> proper# X1) (proper# U62(X1, X2) -> proper# X2, proper# U11(X1, X2) -> proper# X2) (proper# U62(X1, X2) -> proper# X2, proper# U22 X -> U22# proper X) (proper# U62(X1, X2) -> proper# X2, proper# U22 X -> proper# X) (proper# U62(X1, X2) -> proper# X2, proper# isNat X -> isNat# proper X) (proper# U62(X1, X2) -> proper# X2, proper# isNat X -> proper# X) (proper# U62(X1, X2) -> proper# X2, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U62(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1) (proper# U62(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X2) (proper# U62(X1, X2) -> proper# X2, proper# U32 X -> U32# proper X) (proper# U62(X1, X2) -> proper# X2, proper# U32 X -> proper# X) (proper# U62(X1, X2) -> proper# X2, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U62(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X1) (proper# U62(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X2) (proper# U62(X1, X2) -> proper# X2, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U62(X1, X2) -> proper# X2, proper# U42(X1, X2) -> proper# X1) (proper# U62(X1, X2) -> proper# X2, proper# U42(X1, X2) -> proper# X2) (proper# U62(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U62(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X1) (proper# U62(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X2) (proper# U62(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X3) (proper# U62(X1, X2) -> proper# X2, proper# U43 X -> U43# proper X) (proper# U62(X1, X2) -> proper# X2, proper# U43 X -> proper# X) (proper# U62(X1, X2) -> proper# X2, proper# isNatIList X -> isNatIList# proper X) (proper# U62(X1, X2) -> proper# X2, proper# isNatIList X -> proper# X) (proper# U62(X1, X2) -> proper# X2, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U62(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X1) (proper# U62(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X2) (proper# U62(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U62(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X1) (proper# U62(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X2) (proper# U62(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X3) (proper# U62(X1, X2) -> proper# X2, proper# U53 X -> U53# proper X) (proper# U62(X1, X2) -> proper# X2, proper# U53 X -> proper# X) (proper# U62(X1, X2) -> proper# X2, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U62(X1, X2) -> proper# X2, proper# U62(X1, X2) -> proper# X1) (proper# U62(X1, X2) -> proper# X2, proper# U62(X1, X2) -> proper# X2) (proper# U62(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U62(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X1) (proper# U62(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X2) (proper# U62(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3) (proper# U62(X1, X2) -> proper# X2, proper# U63 X -> U63# proper X) (proper# U62(X1, X2) -> proper# X2, proper# U63 X -> proper# X) (proper# U62(X1, X2) -> proper# X2, proper# s X -> s# proper X) (proper# U62(X1, X2) -> proper# X2, proper# s X -> proper# X) (proper# U62(X1, X2) -> proper# X2, proper# length X -> length# proper X) (proper# U62(X1, X2) -> proper# X2, proper# length X -> proper# X) (proper# U62(X1, X2) -> proper# X2, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U62(X1, X2) -> proper# X2, proper# U71(X1, X2) -> proper# X1) (proper# U62(X1, X2) -> proper# X2, proper# U71(X1, X2) -> proper# X2) (proper# U62(X1, X2) -> proper# X2, proper# U81 X -> U81# proper X) (proper# U62(X1, X2) -> proper# X2, proper# U81 X -> proper# X) (proper# U62(X1, X2) -> proper# X2, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U62(X1, X2) -> proper# X2, proper# take(X1, X2) -> proper# X1) (proper# U62(X1, X2) -> proper# X2, proper# take(X1, X2) -> proper# X2) (proper# U62(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U62(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U62(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U62(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U62(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U62(X1, X2) -> proper# X2, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U62(X1, X2) -> proper# X2, proper# and(X1, X2) -> proper# X1) (proper# U62(X1, X2) -> proper# X2, proper# and(X1, X2) -> proper# X2) (proper# U62(X1, X2) -> proper# X2, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U62(X1, X2) -> proper# X2, proper# isNatIListKind X -> proper# X) (proper# U62(X1, X2) -> proper# X2, proper# isNatKind X -> isNatKind# proper X) (proper# U62(X1, X2) -> proper# X2, proper# isNatKind X -> proper# X) (proper# U52(X1, X2) -> proper# X2, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X2, proper# cons(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X2, proper# cons(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X2, proper# U12 X -> U12# proper X) (proper# U52(X1, X2) -> proper# X2, proper# U12 X -> proper# X) (proper# U52(X1, X2) -> proper# X2, proper# isNatList X -> isNatList# proper X) (proper# U52(X1, X2) -> proper# X2, proper# isNatList X -> proper# X) (proper# U52(X1, X2) -> proper# X2, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X2, proper# U11(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X2, proper# U11(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X2, proper# U22 X -> U22# proper X) (proper# U52(X1, X2) -> proper# X2, proper# U22 X -> proper# X) (proper# U52(X1, X2) -> proper# X2, proper# isNat X -> isNat# proper X) (proper# U52(X1, X2) -> proper# X2, proper# isNat X -> proper# X) (proper# U52(X1, X2) -> proper# X2, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X2, proper# U32 X -> U32# proper X) (proper# U52(X1, X2) -> proper# X2, proper# U32 X -> proper# X) (proper# U52(X1, X2) -> proper# X2, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X2, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X2, proper# U42(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X2, proper# U42(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U52(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X1) (proper# U52(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X2) (proper# U52(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X3) (proper# U52(X1, X2) -> proper# X2, proper# U43 X -> U43# proper X) (proper# U52(X1, X2) -> proper# X2, proper# U43 X -> proper# X) (proper# U52(X1, X2) -> proper# X2, proper# isNatIList X -> isNatIList# proper X) (proper# U52(X1, X2) -> proper# X2, proper# isNatIList X -> proper# X) (proper# U52(X1, X2) -> proper# X2, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U52(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X1) (proper# U52(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X2) (proper# U52(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X3) (proper# U52(X1, X2) -> proper# X2, proper# U53 X -> U53# proper X) (proper# U52(X1, X2) -> proper# X2, proper# U53 X -> proper# X) (proper# U52(X1, X2) -> proper# X2, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X2, proper# U62(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X2, proper# U62(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U52(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X1) (proper# U52(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X2) (proper# U52(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3) (proper# U52(X1, X2) -> proper# X2, proper# U63 X -> U63# proper X) (proper# U52(X1, X2) -> proper# X2, proper# U63 X -> proper# X) (proper# U52(X1, X2) -> proper# X2, proper# s X -> s# proper X) (proper# U52(X1, X2) -> proper# X2, proper# s X -> proper# X) (proper# U52(X1, X2) -> proper# X2, proper# length X -> length# proper X) (proper# U52(X1, X2) -> proper# X2, proper# length X -> proper# X) (proper# U52(X1, X2) -> proper# X2, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X2, proper# U71(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X2, proper# U71(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X2, proper# U81 X -> U81# proper X) (proper# U52(X1, X2) -> proper# X2, proper# U81 X -> proper# X) (proper# U52(X1, X2) -> proper# X2, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X2, proper# take(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X2, proper# take(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U52(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U52(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U52(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U52(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U52(X1, X2) -> proper# X2, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X2, proper# and(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X2, proper# and(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X2, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U52(X1, X2) -> proper# X2, proper# isNatIListKind X -> proper# X) (proper# U52(X1, X2) -> proper# X2, proper# isNatKind X -> isNatKind# proper X) (proper# U52(X1, X2) -> proper# X2, proper# isNatKind X -> proper# X) (proper# U42(X1, X2) -> proper# X2, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# U42(X1, X2) -> proper# X2, proper# cons(X1, X2) -> proper# X1) (proper# U42(X1, X2) -> proper# X2, proper# cons(X1, X2) -> proper# X2) (proper# U42(X1, X2) -> proper# X2, proper# U12 X -> U12# proper X) (proper# U42(X1, X2) -> proper# X2, proper# U12 X -> proper# X) (proper# U42(X1, X2) -> proper# X2, proper# isNatList X -> isNatList# proper X) (proper# U42(X1, X2) -> proper# X2, proper# isNatList X -> proper# X) (proper# U42(X1, X2) -> proper# X2, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U42(X1, X2) -> proper# X2, proper# U11(X1, X2) -> proper# X1) (proper# U42(X1, X2) -> proper# X2, proper# U11(X1, X2) -> proper# X2) (proper# U42(X1, X2) -> proper# X2, proper# U22 X -> U22# proper X) (proper# U42(X1, X2) -> proper# X2, proper# U22 X -> proper# X) (proper# U42(X1, X2) -> proper# X2, proper# isNat X -> isNat# proper X) (proper# U42(X1, X2) -> proper# X2, proper# isNat X -> proper# X) (proper# U42(X1, X2) -> proper# X2, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U42(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1) (proper# U42(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X2) (proper# U42(X1, X2) -> proper# X2, proper# U32 X -> U32# proper X) (proper# U42(X1, X2) -> proper# X2, proper# U32 X -> proper# X) (proper# U42(X1, X2) -> proper# X2, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U42(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X1) (proper# U42(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X2) (proper# U42(X1, X2) -> proper# X2, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U42(X1, X2) -> proper# X2, proper# U42(X1, X2) -> proper# X1) (proper# U42(X1, X2) -> proper# X2, proper# U42(X1, X2) -> proper# X2) (proper# U42(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U42(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X1) (proper# U42(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X2) (proper# U42(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X3) (proper# U42(X1, X2) -> proper# X2, proper# U43 X -> U43# proper X) (proper# U42(X1, X2) -> proper# X2, proper# U43 X -> proper# X) (proper# U42(X1, X2) -> proper# X2, proper# isNatIList X -> isNatIList# proper X) (proper# U42(X1, X2) -> proper# X2, proper# isNatIList X -> proper# X) (proper# U42(X1, X2) -> proper# X2, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U42(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X1) (proper# U42(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X2) (proper# U42(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U42(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X1) (proper# U42(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X2) (proper# U42(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X3) (proper# U42(X1, X2) -> proper# X2, proper# U53 X -> U53# proper X) (proper# U42(X1, X2) -> proper# X2, proper# U53 X -> proper# X) (proper# U42(X1, X2) -> proper# X2, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U42(X1, X2) -> proper# X2, proper# U62(X1, X2) -> proper# X1) (proper# U42(X1, X2) -> proper# X2, proper# U62(X1, X2) -> proper# X2) (proper# U42(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U42(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X1) (proper# U42(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X2) (proper# U42(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3) (proper# U42(X1, X2) -> proper# X2, proper# U63 X -> U63# proper X) (proper# U42(X1, X2) -> proper# X2, proper# U63 X -> proper# X) (proper# U42(X1, X2) -> proper# X2, proper# s X -> s# proper X) (proper# U42(X1, X2) -> proper# X2, proper# s X -> proper# X) (proper# U42(X1, X2) -> proper# X2, proper# length X -> length# proper X) (proper# U42(X1, X2) -> proper# X2, proper# length X -> proper# X) (proper# U42(X1, X2) -> proper# X2, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U42(X1, X2) -> proper# X2, proper# U71(X1, X2) -> proper# X1) (proper# U42(X1, X2) -> proper# X2, proper# U71(X1, X2) -> proper# X2) (proper# U42(X1, X2) -> proper# X2, proper# U81 X -> U81# proper X) (proper# U42(X1, X2) -> proper# X2, proper# U81 X -> proper# X) (proper# U42(X1, X2) -> proper# X2, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U42(X1, X2) -> proper# X2, proper# take(X1, X2) -> proper# X1) (proper# U42(X1, X2) -> proper# X2, proper# take(X1, X2) -> proper# X2) (proper# U42(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U42(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U42(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U42(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U42(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U42(X1, X2) -> proper# X2, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U42(X1, X2) -> proper# X2, proper# and(X1, X2) -> proper# X1) (proper# U42(X1, X2) -> proper# X2, proper# and(X1, X2) -> proper# X2) (proper# U42(X1, X2) -> proper# X2, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U42(X1, X2) -> proper# X2, proper# isNatIListKind X -> proper# X) (proper# U42(X1, X2) -> proper# X2, proper# isNatKind X -> isNatKind# proper X) (proper# U42(X1, X2) -> proper# X2, proper# isNatKind X -> proper# X) (proper# U21(X1, X2) -> proper# X2, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X2, proper# cons(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X2, proper# cons(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X2, proper# U12 X -> U12# proper X) (proper# U21(X1, X2) -> proper# X2, proper# U12 X -> proper# X) (proper# U21(X1, X2) -> proper# X2, proper# isNatList X -> isNatList# proper X) (proper# U21(X1, X2) -> proper# X2, proper# isNatList X -> proper# X) (proper# U21(X1, X2) -> proper# X2, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X2, proper# U11(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X2, proper# U11(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X2, proper# U22 X -> U22# proper X) (proper# U21(X1, X2) -> proper# X2, proper# U22 X -> proper# X) (proper# U21(X1, X2) -> proper# X2, proper# isNat X -> isNat# proper X) (proper# U21(X1, X2) -> proper# X2, proper# isNat X -> proper# X) (proper# U21(X1, X2) -> proper# X2, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X2, proper# U32 X -> U32# proper X) (proper# U21(X1, X2) -> proper# X2, proper# U32 X -> proper# X) (proper# U21(X1, X2) -> proper# X2, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X2, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X2, proper# U42(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X2, proper# U42(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U21(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X1) (proper# U21(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X2) (proper# U21(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X3) (proper# U21(X1, X2) -> proper# X2, proper# U43 X -> U43# proper X) (proper# U21(X1, X2) -> proper# X2, proper# U43 X -> proper# X) (proper# U21(X1, X2) -> proper# X2, proper# isNatIList X -> isNatIList# proper X) (proper# U21(X1, X2) -> proper# X2, proper# isNatIList X -> proper# X) (proper# U21(X1, X2) -> proper# X2, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U21(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X1) (proper# U21(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X2) (proper# U21(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X3) (proper# U21(X1, X2) -> proper# X2, proper# U53 X -> U53# proper X) (proper# U21(X1, X2) -> proper# X2, proper# U53 X -> proper# X) (proper# U21(X1, X2) -> proper# X2, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X2, proper# U62(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X2, proper# U62(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U21(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X1) (proper# U21(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X2) (proper# U21(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3) (proper# U21(X1, X2) -> proper# X2, proper# U63 X -> U63# proper X) (proper# U21(X1, X2) -> proper# X2, proper# U63 X -> proper# X) (proper# U21(X1, X2) -> proper# X2, proper# s X -> s# proper X) (proper# U21(X1, X2) -> proper# X2, proper# s X -> proper# X) (proper# U21(X1, X2) -> proper# X2, proper# length X -> length# proper X) (proper# U21(X1, X2) -> proper# X2, proper# length X -> proper# X) (proper# U21(X1, X2) -> proper# X2, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X2, proper# U71(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X2, proper# U71(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X2, proper# U81 X -> U81# proper X) (proper# U21(X1, X2) -> proper# X2, proper# U81 X -> proper# X) (proper# U21(X1, X2) -> proper# X2, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X2, proper# take(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X2, proper# take(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U21(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U21(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U21(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U21(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U21(X1, X2) -> proper# X2, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X2, proper# and(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X2, proper# and(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X2, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U21(X1, X2) -> proper# X2, proper# isNatIListKind X -> proper# X) (proper# U21(X1, X2) -> proper# X2, proper# isNatKind X -> isNatKind# proper X) (proper# U21(X1, X2) -> proper# X2, proper# isNatKind X -> proper# X) (proper# cons(X1, X2) -> proper# X2, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# cons(X1, X2) -> proper# X2, proper# cons(X1, X2) -> proper# X1) (proper# cons(X1, X2) -> proper# X2, proper# cons(X1, X2) -> proper# X2) (proper# cons(X1, X2) -> proper# X2, proper# U12 X -> U12# proper X) (proper# cons(X1, X2) -> proper# X2, proper# U12 X -> proper# X) (proper# cons(X1, X2) -> proper# X2, proper# isNatList X -> isNatList# proper X) (proper# cons(X1, X2) -> proper# X2, proper# isNatList X -> proper# X) (proper# cons(X1, X2) -> proper# X2, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# cons(X1, X2) -> proper# X2, proper# U11(X1, X2) -> proper# X1) (proper# cons(X1, X2) -> proper# X2, proper# U11(X1, X2) -> proper# X2) (proper# cons(X1, X2) -> proper# X2, proper# U22 X -> U22# proper X) (proper# cons(X1, X2) -> proper# X2, proper# U22 X -> proper# X) (proper# cons(X1, X2) -> proper# X2, proper# isNat X -> isNat# proper X) (proper# cons(X1, X2) -> proper# X2, proper# isNat X -> proper# X) (proper# cons(X1, X2) -> proper# X2, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# cons(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1) (proper# cons(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X2) (proper# cons(X1, X2) -> proper# X2, proper# U32 X -> U32# proper X) (proper# cons(X1, X2) -> proper# X2, proper# U32 X -> proper# X) (proper# cons(X1, X2) -> proper# X2, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# cons(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X1) (proper# cons(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X2) (proper# cons(X1, X2) -> proper# X2, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# cons(X1, X2) -> proper# X2, proper# U42(X1, X2) -> proper# X1) (proper# cons(X1, X2) -> proper# X2, proper# U42(X1, X2) -> proper# X2) (proper# cons(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# cons(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X1) (proper# cons(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X2) (proper# cons(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X3) (proper# cons(X1, X2) -> proper# X2, proper# U43 X -> U43# proper X) (proper# cons(X1, X2) -> proper# X2, proper# U43 X -> proper# X) (proper# cons(X1, X2) -> proper# X2, proper# isNatIList X -> isNatIList# proper X) (proper# cons(X1, X2) -> proper# X2, proper# isNatIList X -> proper# X) (proper# cons(X1, X2) -> proper# X2, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# cons(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X1) (proper# cons(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X2) (proper# cons(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# cons(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X1) (proper# cons(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X2) (proper# cons(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X3) (proper# cons(X1, X2) -> proper# X2, proper# U53 X -> U53# proper X) (proper# cons(X1, X2) -> proper# X2, proper# U53 X -> proper# X) (proper# cons(X1, X2) -> proper# X2, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# cons(X1, X2) -> proper# X2, proper# U62(X1, X2) -> proper# X1) (proper# cons(X1, X2) -> proper# X2, proper# U62(X1, X2) -> proper# X2) (proper# cons(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# cons(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X1) (proper# cons(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X2) (proper# cons(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3) (proper# cons(X1, X2) -> proper# X2, proper# U63 X -> U63# proper X) (proper# cons(X1, X2) -> proper# X2, proper# U63 X -> proper# X) (proper# cons(X1, X2) -> proper# X2, proper# s X -> s# proper X) (proper# cons(X1, X2) -> proper# X2, proper# s X -> proper# X) (proper# cons(X1, X2) -> proper# X2, proper# length X -> length# proper X) (proper# cons(X1, X2) -> proper# X2, proper# length X -> proper# X) (proper# cons(X1, X2) -> proper# X2, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# cons(X1, X2) -> proper# X2, proper# U71(X1, X2) -> proper# X1) (proper# cons(X1, X2) -> proper# X2, proper# U71(X1, X2) -> proper# X2) (proper# cons(X1, X2) -> proper# X2, proper# U81 X -> U81# proper X) (proper# cons(X1, X2) -> proper# X2, proper# U81 X -> proper# X) (proper# cons(X1, X2) -> proper# X2, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# cons(X1, X2) -> proper# X2, proper# take(X1, X2) -> proper# X1) (proper# cons(X1, X2) -> proper# X2, proper# take(X1, X2) -> proper# X2) (proper# cons(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# cons(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# cons(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# cons(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# cons(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# cons(X1, X2) -> proper# X2, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# cons(X1, X2) -> proper# X2, proper# and(X1, X2) -> proper# X1) (proper# cons(X1, X2) -> proper# X2, proper# and(X1, X2) -> proper# X2) (proper# cons(X1, X2) -> proper# X2, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# cons(X1, X2) -> proper# X2, proper# isNatIListKind X -> proper# X) (proper# cons(X1, X2) -> proper# X2, proper# isNatKind X -> isNatKind# proper X) (proper# cons(X1, X2) -> proper# X2, proper# isNatKind X -> proper# X) (active# take(s M, cons(N, IL)) -> isNatKind# N, isNatKind# ok X -> isNatKind# X) (active# length cons(N, L) -> isNatKind# N, isNatKind# ok X -> isNatKind# X) (active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), U71#(mark X1, X2) -> U71#(X1, X2)) (active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), U71#(ok X1, ok X2) -> U71#(X1, X2)) (active# zeros() -> cons#(0(), zeros()), cons#(mark X1, X2) -> cons#(X1, X2)) (active# zeros() -> cons#(0(), zeros()), cons#(ok X1, ok X2) -> cons#(X1, X2)) (active# U91(tt(), IL, M, N) -> take#(M, IL), take#(X1, mark X2) -> take#(X1, X2)) (active# U91(tt(), IL, M, N) -> take#(M, IL), take#(mark X1, X2) -> take#(X1, X2)) (active# U91(tt(), IL, M, N) -> take#(M, IL), take#(ok X1, ok X2) -> take#(X1, X2)) (proper# take(X1, X2) -> take#(proper X1, proper X2), take#(X1, mark X2) -> take#(X1, X2)) (proper# take(X1, X2) -> take#(proper X1, proper X2), take#(mark X1, X2) -> take#(X1, X2)) (proper# take(X1, X2) -> take#(proper X1, proper X2), take#(ok X1, ok X2) -> take#(X1, X2)) (proper# U62(X1, X2) -> U62#(proper X1, proper X2), U62#(mark X1, X2) -> U62#(X1, X2)) (proper# U62(X1, X2) -> U62#(proper X1, proper X2), U62#(ok X1, ok X2) -> U62#(X1, X2)) (proper# U42(X1, X2) -> U42#(proper X1, proper X2), U42#(mark X1, X2) -> U42#(X1, X2)) (proper# U42(X1, X2) -> U42#(proper X1, proper X2), U42#(ok X1, ok X2) -> U42#(X1, X2)) (proper# U21(X1, X2) -> U21#(proper X1, proper X2), U21#(mark X1, X2) -> U21#(X1, X2)) (proper# U21(X1, X2) -> U21#(proper X1, proper X2), U21#(ok X1, ok X2) -> U21#(X1, X2)) (proper# cons(X1, X2) -> cons#(proper X1, proper X2), cons#(mark X1, X2) -> cons#(X1, X2)) (proper# cons(X1, X2) -> cons#(proper X1, proper X2), cons#(ok X1, ok X2) -> cons#(X1, X2)) (active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), and#(mark X1, X2) -> and#(X1, X2)) (active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), and#(ok X1, ok X2) -> and#(X1, X2)) (active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M), and#(mark X1, X2) -> and#(X1, X2)) (active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M), and#(ok X1, ok X2) -> and#(X1, X2)) (active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL), and#(mark X1, X2) -> and#(X1, X2)) (active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL), and#(ok X1, ok X2) -> and#(X1, X2)) (active# length cons(N, L) -> and#(isNat N, isNatKind N), and#(mark X1, X2) -> and#(X1, X2)) (active# length cons(N, L) -> and#(isNat N, isNatKind N), and#(ok X1, ok X2) -> and#(X1, X2)) (active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), and#(mark X1, X2) -> and#(X1, X2)) (active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), and#(ok X1, ok X2) -> and#(X1, X2)) (active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), and#(mark X1, X2) -> and#(X1, X2)) (active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2), and#(ok X1, ok X2) -> and#(X1, X2)) (U91#(mark X1, X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(mark X1, X2, X3, X4) -> U91#(X1, X2, X3, X4)) (U91#(mark X1, X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(ok X1, ok X2, ok X3, ok X4) -> U91#(X1, X2, X3, X4)) (active# take(s M, cons(N, IL)) -> isNatIListKind# IL, isNatIListKind# ok X -> isNatIListKind# X) (active# take(0(), IL) -> isNatIListKind# IL, isNatIListKind# ok X -> isNatIListKind# X) (active# U21(tt(), V1) -> U22# isNat V1, U22# mark X -> U22# X) (active# U21(tt(), V1) -> U22# isNat V1, U22# ok X -> U22# X) (active# U31(tt(), V) -> U32# isNatList V, U32# mark X -> U32# X) (active# U31(tt(), V) -> U32# isNatList V, U32# ok X -> U32# X) (active# U52(tt(), V2) -> U53# isNatList V2, U53# mark X -> U53# X) (active# U52(tt(), V2) -> U53# isNatList V2, U53# ok X -> U53# X) (active# U71(tt(), L) -> s# length L, s# mark X -> s# X) (active# U71(tt(), L) -> s# length L, s# ok X -> s# X) (top# mark X -> top# proper X, top# mark X -> proper# X) (top# mark X -> top# proper X, top# mark X -> top# proper X) (top# mark X -> top# proper X, top# ok X -> active# X) (top# mark X -> top# proper X, top# ok X -> top# active X) (proper# isNatIListKind X -> isNatIListKind# proper X, isNatIListKind# ok X -> isNatIListKind# X) (proper# length X -> length# proper X, length# mark X -> length# X) (proper# length X -> length# proper X, length# ok X -> length# X) (proper# U63 X -> U63# proper X, U63# mark X -> U63# X) (proper# U63 X -> U63# proper X, U63# ok X -> U63# X) (proper# isNatIList X -> isNatIList# proper X, isNatIList# ok X -> isNatIList# X) (proper# U32 X -> U32# proper X, U32# mark X -> U32# X) (proper# U32 X -> U32# proper X, U32# ok X -> U32# X) (proper# U22 X -> U22# proper X, U22# mark X -> U22# X) (proper# U22 X -> U22# proper X, U22# ok X -> U22# X) (proper# U12 X -> U12# proper X, U12# mark X -> U12# X) (proper# U12 X -> U12# proper X, U12# ok X -> U12# X) (active# length X -> length# active X, length# mark X -> length# X) (active# length X -> length# active X, length# ok X -> length# X) (active# U63 X -> U63# active X, U63# mark X -> U63# X) (active# U63 X -> U63# active X, U63# ok X -> U63# X) (active# U43 X -> U43# active X, U43# mark X -> U43# X) (active# U43 X -> U43# active X, U43# ok X -> U43# X) (active# U22 X -> U22# active X, U22# mark X -> U22# X) (active# U22 X -> U22# active X, U22# ok X -> U22# X) (proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3), U61#(mark X1, X2, X3) -> U61#(X1, X2, X3)) (proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3), U61#(ok X1, ok X2, ok X3) -> U61#(X1, X2, X3)) (proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3), U41#(mark X1, X2, X3) -> U41#(X1, X2, X3)) (proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3), U41#(ok X1, ok X2, ok X3) -> U41#(X1, X2, X3)) (active# U31(tt(), V) -> isNatList# V, isNatList# ok X -> isNatList# X) (active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2), U61#(mark X1, X2, X3) -> U61#(X1, X2, X3)) (active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2), U61#(ok X1, ok X2, ok X3) -> U61#(X1, X2, X3)) (and#(ok X1, ok X2) -> and#(X1, X2), and#(mark X1, X2) -> and#(X1, X2)) (and#(ok X1, ok X2) -> and#(X1, X2), and#(ok X1, ok X2) -> and#(X1, X2)) (take#(ok X1, ok X2) -> take#(X1, X2), take#(X1, mark X2) -> take#(X1, X2)) (take#(ok X1, ok X2) -> take#(X1, X2), take#(mark X1, X2) -> take#(X1, X2)) (take#(ok X1, ok X2) -> take#(X1, X2), take#(ok X1, ok X2) -> take#(X1, X2)) (take#(X1, mark X2) -> take#(X1, X2), take#(X1, mark X2) -> take#(X1, X2)) (take#(X1, mark X2) -> take#(X1, X2), take#(mark X1, X2) -> take#(X1, X2)) (take#(X1, mark X2) -> take#(X1, X2), take#(ok X1, ok X2) -> take#(X1, X2)) (U71#(mark X1, X2) -> U71#(X1, X2), U71#(mark X1, X2) -> U71#(X1, X2)) (U71#(mark X1, X2) -> U71#(X1, X2), U71#(ok X1, ok X2) -> U71#(X1, X2)) (U62#(mark X1, X2) -> U62#(X1, X2), U62#(mark X1, X2) -> U62#(X1, X2)) (U62#(mark X1, X2) -> U62#(X1, X2), U62#(ok X1, ok X2) -> U62#(X1, X2)) (U52#(mark X1, X2) -> U52#(X1, X2), U52#(mark X1, X2) -> U52#(X1, X2)) (U52#(mark X1, X2) -> U52#(X1, X2), U52#(ok X1, ok X2) -> U52#(X1, X2)) (U42#(mark X1, X2) -> U42#(X1, X2), U42#(mark X1, X2) -> U42#(X1, X2)) (U42#(mark X1, X2) -> U42#(X1, X2), U42#(ok X1, ok X2) -> U42#(X1, X2)) (U31#(mark X1, X2) -> U31#(X1, X2), U31#(mark X1, X2) -> U31#(X1, X2)) (U31#(mark X1, X2) -> U31#(X1, X2), U31#(ok X1, ok X2) -> U31#(X1, X2)) (U21#(mark X1, X2) -> U21#(X1, X2), U21#(mark X1, X2) -> U21#(X1, X2)) (U21#(mark X1, X2) -> U21#(X1, X2), U21#(ok X1, ok X2) -> U21#(X1, X2)) (U11#(mark X1, X2) -> U11#(X1, X2), U11#(mark X1, X2) -> U11#(X1, X2)) (U11#(mark X1, X2) -> U11#(X1, X2), U11#(ok X1, ok X2) -> U11#(X1, X2)) (cons#(mark X1, X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2)) (cons#(mark X1, X2) -> cons#(X1, X2), cons#(ok X1, ok X2) -> cons#(X1, X2)) (active# U51(tt(), V1, V2) -> U52#(isNat V1, V2), U52#(mark X1, X2) -> U52#(X1, X2)) (active# U51(tt(), V1, V2) -> U52#(isNat V1, V2), U52#(ok X1, ok X2) -> U52#(X1, X2)) (proper# and(X1, X2) -> proper# X1, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# and(X1, X2) -> proper# X1, proper# cons(X1, X2) -> proper# X1) (proper# and(X1, X2) -> proper# X1, proper# cons(X1, X2) -> proper# X2) (proper# and(X1, X2) -> proper# X1, proper# U12 X -> U12# proper X) (proper# and(X1, X2) -> proper# X1, proper# U12 X -> proper# X) (proper# and(X1, X2) -> proper# X1, proper# isNatList X -> isNatList# proper X) (proper# and(X1, X2) -> proper# X1, proper# isNatList X -> proper# X) (proper# and(X1, X2) -> proper# X1, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# and(X1, X2) -> proper# X1, proper# U11(X1, X2) -> proper# X1) (proper# and(X1, X2) -> proper# X1, proper# U11(X1, X2) -> proper# X2) (proper# and(X1, X2) -> proper# X1, proper# U22 X -> U22# proper X) (proper# and(X1, X2) -> proper# X1, proper# U22 X -> proper# X) (proper# and(X1, X2) -> proper# X1, proper# isNat X -> isNat# proper X) (proper# and(X1, X2) -> proper# X1, proper# isNat X -> proper# X) (proper# and(X1, X2) -> proper# X1, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# and(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X1) (proper# and(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2) (proper# and(X1, X2) -> proper# X1, proper# U32 X -> U32# proper X) (proper# and(X1, X2) -> proper# X1, proper# U32 X -> proper# X) (proper# and(X1, X2) -> proper# X1, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# and(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X1) (proper# and(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2) (proper# and(X1, X2) -> proper# X1, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# and(X1, X2) -> proper# X1, proper# U42(X1, X2) -> proper# X1) (proper# and(X1, X2) -> proper# X1, proper# U42(X1, X2) -> proper# X2) (proper# and(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# and(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X1) (proper# and(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X2) (proper# and(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X3) (proper# and(X1, X2) -> proper# X1, proper# U43 X -> U43# proper X) (proper# and(X1, X2) -> proper# X1, proper# U43 X -> proper# X) (proper# and(X1, X2) -> proper# X1, proper# isNatIList X -> isNatIList# proper X) (proper# and(X1, X2) -> proper# X1, proper# isNatIList X -> proper# X) (proper# and(X1, X2) -> proper# X1, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# and(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X1) (proper# and(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2) (proper# and(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# and(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X1) (proper# and(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X2) (proper# and(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X3) (proper# and(X1, X2) -> proper# X1, proper# U53 X -> U53# proper X) (proper# and(X1, X2) -> proper# X1, proper# U53 X -> proper# X) (proper# and(X1, X2) -> proper# X1, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# and(X1, X2) -> proper# X1, proper# U62(X1, X2) -> proper# X1) (proper# and(X1, X2) -> proper# X1, proper# U62(X1, X2) -> proper# X2) (proper# and(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# and(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X1) (proper# and(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2) (proper# and(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X3) (proper# and(X1, X2) -> proper# X1, proper# U63 X -> U63# proper X) (proper# and(X1, X2) -> proper# X1, proper# U63 X -> proper# X) (proper# and(X1, X2) -> proper# X1, proper# s X -> s# proper X) (proper# and(X1, X2) -> proper# X1, proper# s X -> proper# X) (proper# and(X1, X2) -> proper# X1, proper# length X -> length# proper X) (proper# and(X1, X2) -> proper# X1, proper# length X -> proper# X) (proper# and(X1, X2) -> proper# X1, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# and(X1, X2) -> proper# X1, proper# U71(X1, X2) -> proper# X1) (proper# and(X1, X2) -> proper# X1, proper# U71(X1, X2) -> proper# X2) (proper# and(X1, X2) -> proper# X1, proper# U81 X -> U81# proper X) (proper# and(X1, X2) -> proper# X1, proper# U81 X -> proper# X) (proper# and(X1, X2) -> proper# X1, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# and(X1, X2) -> proper# X1, proper# take(X1, X2) -> proper# X1) (proper# and(X1, X2) -> proper# X1, proper# take(X1, X2) -> proper# X2) (proper# and(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# and(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# and(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# and(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# and(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# and(X1, X2) -> proper# X1, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# and(X1, X2) -> proper# X1, proper# and(X1, X2) -> proper# X1) (proper# and(X1, X2) -> proper# X1, proper# and(X1, X2) -> proper# X2) (proper# and(X1, X2) -> proper# X1, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# and(X1, X2) -> proper# X1, proper# isNatIListKind X -> proper# X) (proper# and(X1, X2) -> proper# X1, proper# isNatKind X -> isNatKind# proper X) (proper# and(X1, X2) -> proper# X1, proper# isNatKind X -> proper# X) (proper# take(X1, X2) -> proper# X1, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# take(X1, X2) -> proper# X1, proper# cons(X1, X2) -> proper# X1) (proper# take(X1, X2) -> proper# X1, proper# cons(X1, X2) -> proper# X2) (proper# take(X1, X2) -> proper# X1, proper# U12 X -> U12# proper X) (proper# take(X1, X2) -> proper# X1, proper# U12 X -> proper# X) (proper# take(X1, X2) -> proper# X1, proper# isNatList X -> isNatList# proper X) (proper# take(X1, X2) -> proper# X1, proper# isNatList X -> proper# X) (proper# take(X1, X2) -> proper# X1, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# take(X1, X2) -> proper# X1, proper# U11(X1, X2) -> proper# X1) (proper# take(X1, X2) -> proper# X1, proper# U11(X1, X2) -> proper# X2) (proper# take(X1, X2) -> proper# X1, proper# U22 X -> U22# proper X) (proper# take(X1, X2) -> proper# X1, proper# U22 X -> proper# X) (proper# take(X1, X2) -> proper# X1, proper# isNat X -> isNat# proper X) (proper# take(X1, X2) -> proper# X1, proper# isNat X -> proper# X) (proper# take(X1, X2) -> proper# X1, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# take(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X1) (proper# take(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2) (proper# take(X1, X2) -> proper# X1, proper# U32 X -> U32# proper X) (proper# take(X1, X2) -> proper# X1, proper# U32 X -> proper# X) (proper# take(X1, X2) -> proper# X1, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# take(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X1) (proper# take(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2) (proper# take(X1, X2) -> proper# X1, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# take(X1, X2) -> proper# X1, proper# U42(X1, X2) -> proper# X1) (proper# take(X1, X2) -> proper# X1, proper# U42(X1, X2) -> proper# X2) (proper# take(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# take(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X1) (proper# take(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X2) (proper# take(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X3) (proper# take(X1, X2) -> proper# X1, proper# U43 X -> U43# proper X) (proper# take(X1, X2) -> proper# X1, proper# U43 X -> proper# X) (proper# take(X1, X2) -> proper# X1, proper# isNatIList X -> isNatIList# proper X) (proper# take(X1, X2) -> proper# X1, proper# isNatIList X -> proper# X) (proper# take(X1, X2) -> proper# X1, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# take(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X1) (proper# take(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2) (proper# take(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# take(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X1) (proper# take(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X2) (proper# take(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X3) (proper# take(X1, X2) -> proper# X1, proper# U53 X -> U53# proper X) (proper# take(X1, X2) -> proper# X1, proper# U53 X -> proper# X) (proper# take(X1, X2) -> proper# X1, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# take(X1, X2) -> proper# X1, proper# U62(X1, X2) -> proper# X1) (proper# take(X1, X2) -> proper# X1, proper# U62(X1, X2) -> proper# X2) (proper# take(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# take(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X1) (proper# take(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2) (proper# take(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X3) (proper# take(X1, X2) -> proper# X1, proper# U63 X -> U63# proper X) (proper# take(X1, X2) -> proper# X1, proper# U63 X -> proper# X) (proper# take(X1, X2) -> proper# X1, proper# s X -> s# proper X) (proper# take(X1, X2) -> proper# X1, proper# s X -> proper# X) (proper# take(X1, X2) -> proper# X1, proper# length X -> length# proper X) (proper# take(X1, X2) -> proper# X1, proper# length X -> proper# X) (proper# take(X1, X2) -> proper# X1, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# take(X1, X2) -> proper# X1, proper# U71(X1, X2) -> proper# X1) (proper# take(X1, X2) -> proper# X1, proper# U71(X1, X2) -> proper# X2) (proper# take(X1, X2) -> proper# X1, proper# U81 X -> U81# proper X) (proper# take(X1, X2) -> proper# X1, proper# U81 X -> proper# X) (proper# take(X1, X2) -> proper# X1, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# take(X1, X2) -> proper# X1, proper# take(X1, X2) -> proper# X1) (proper# take(X1, X2) -> proper# X1, proper# take(X1, X2) -> proper# X2) (proper# take(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# take(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# take(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# take(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# take(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# take(X1, X2) -> proper# X1, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# take(X1, X2) -> proper# X1, proper# and(X1, X2) -> proper# X1) (proper# take(X1, X2) -> proper# X1, proper# and(X1, X2) -> proper# X2) (proper# take(X1, X2) -> proper# X1, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# take(X1, X2) -> proper# X1, proper# isNatIListKind X -> proper# X) (proper# take(X1, X2) -> proper# X1, proper# isNatKind X -> isNatKind# proper X) (proper# take(X1, X2) -> proper# X1, proper# isNatKind X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X1, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X1, proper# cons(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X1, proper# cons(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X1, proper# U12 X -> U12# proper X) (proper# U61(X1, X2, X3) -> proper# X1, proper# U12 X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X1, proper# isNatList X -> isNatList# proper X) (proper# U61(X1, X2, X3) -> proper# X1, proper# isNatList X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X1, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X1, proper# U11(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X1, proper# U11(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X1, proper# U22 X -> U22# proper X) (proper# U61(X1, X2, X3) -> proper# X1, proper# U22 X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X1, proper# isNat X -> isNat# proper X) (proper# U61(X1, X2, X3) -> proper# X1, proper# isNat X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X1, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X1, proper# U21(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X1, proper# U21(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X1, proper# U32 X -> U32# proper X) (proper# U61(X1, X2, X3) -> proper# X1, proper# U32 X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X1, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X1, proper# U31(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X1, proper# U31(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X1, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X1, proper# U42(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X1, proper# U42(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X1, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U61(X1, X2, X3) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X1, proper# U43 X -> U43# proper X) (proper# U61(X1, X2, X3) -> proper# X1, proper# U43 X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X1, proper# isNatIList X -> isNatIList# proper X) (proper# U61(X1, X2, X3) -> proper# X1, proper# isNatIList X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X1, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X1, proper# U52(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X1, proper# U52(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X1, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U61(X1, X2, X3) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X1, proper# U53 X -> U53# proper X) (proper# U61(X1, X2, X3) -> proper# X1, proper# U53 X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X1, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X1, proper# U62(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X1, proper# U62(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U61(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X1, proper# U63 X -> U63# proper X) (proper# U61(X1, X2, X3) -> proper# X1, proper# U63 X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X1, proper# s X -> s# proper X) (proper# U61(X1, X2, X3) -> proper# X1, proper# s X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X1, proper# length X -> length# proper X) (proper# U61(X1, X2, X3) -> proper# X1, proper# length X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X1, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X1, proper# U71(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X1, proper# U71(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X1, proper# U81 X -> U81# proper X) (proper# U61(X1, X2, X3) -> proper# X1, proper# U81 X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X1, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X1, proper# take(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X1, proper# take(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X1, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U61(X1, X2, X3) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U61(X1, X2, X3) -> proper# X1, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X1, proper# and(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X1, proper# and(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X1, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U61(X1, X2, X3) -> proper# X1, proper# isNatIListKind X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X1, proper# isNatKind X -> isNatKind# proper X) (proper# U61(X1, X2, X3) -> proper# X1, proper# isNatKind X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X1, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# U51(X1, X2, X3) -> proper# X1, proper# cons(X1, X2) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X1, proper# cons(X1, X2) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X1, proper# U12 X -> U12# proper X) (proper# U51(X1, X2, X3) -> proper# X1, proper# U12 X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X1, proper# isNatList X -> isNatList# proper X) (proper# U51(X1, X2, X3) -> proper# X1, proper# isNatList X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X1, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U51(X1, X2, X3) -> proper# X1, proper# U11(X1, X2) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X1, proper# U11(X1, X2) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X1, proper# U22 X -> U22# proper X) (proper# U51(X1, X2, X3) -> proper# X1, proper# U22 X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X1, proper# isNat X -> isNat# proper X) (proper# U51(X1, X2, X3) -> proper# X1, proper# isNat X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X1, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U51(X1, X2, X3) -> proper# X1, proper# U21(X1, X2) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X1, proper# U21(X1, X2) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X1, proper# U32 X -> U32# proper X) (proper# U51(X1, X2, X3) -> proper# X1, proper# U32 X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X1, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U51(X1, X2, X3) -> proper# X1, proper# U31(X1, X2) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X1, proper# U31(X1, X2) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X1, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U51(X1, X2, X3) -> proper# X1, proper# U42(X1, X2) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X1, proper# U42(X1, X2) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X1, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U51(X1, X2, X3) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X3) (proper# U51(X1, X2, X3) -> proper# X1, proper# U43 X -> U43# proper X) (proper# U51(X1, X2, X3) -> proper# X1, proper# U43 X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X1, proper# isNatIList X -> isNatIList# proper X) (proper# U51(X1, X2, X3) -> proper# X1, proper# isNatIList X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X1, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U51(X1, X2, X3) -> proper# X1, proper# U52(X1, X2) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X1, proper# U52(X1, X2) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X1, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U51(X1, X2, X3) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X3) (proper# U51(X1, X2, X3) -> proper# X1, proper# U53 X -> U53# proper X) (proper# U51(X1, X2, X3) -> proper# X1, proper# U53 X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X1, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U51(X1, X2, X3) -> proper# X1, proper# U62(X1, X2) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X1, proper# U62(X1, X2) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U51(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X3) (proper# U51(X1, X2, X3) -> proper# X1, proper# U63 X -> U63# proper X) (proper# U51(X1, X2, X3) -> proper# X1, proper# U63 X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X1, proper# s X -> s# proper X) (proper# U51(X1, X2, X3) -> proper# X1, proper# s X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X1, proper# length X -> length# proper X) (proper# U51(X1, X2, X3) -> proper# X1, proper# length X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X1, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U51(X1, X2, X3) -> proper# X1, proper# U71(X1, X2) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X1, proper# U71(X1, X2) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X1, proper# U81 X -> U81# proper X) (proper# U51(X1, X2, X3) -> proper# X1, proper# U81 X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X1, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U51(X1, X2, X3) -> proper# X1, proper# take(X1, X2) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X1, proper# take(X1, X2) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X1, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U51(X1, X2, X3) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U51(X1, X2, X3) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U51(X1, X2, X3) -> proper# X1, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U51(X1, X2, X3) -> proper# X1, proper# and(X1, X2) -> proper# X1) (proper# U51(X1, X2, X3) -> proper# X1, proper# and(X1, X2) -> proper# X2) (proper# U51(X1, X2, X3) -> proper# X1, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U51(X1, X2, X3) -> proper# X1, proper# isNatIListKind X -> proper# X) (proper# U51(X1, X2, X3) -> proper# X1, proper# isNatKind X -> isNatKind# proper X) (proper# U51(X1, X2, X3) -> proper# X1, proper# isNatKind X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X1, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# U41(X1, X2, X3) -> proper# X1, proper# cons(X1, X2) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X1, proper# cons(X1, X2) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X1, proper# U12 X -> U12# proper X) (proper# U41(X1, X2, X3) -> proper# X1, proper# U12 X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X1, proper# isNatList X -> isNatList# proper X) (proper# U41(X1, X2, X3) -> proper# X1, proper# isNatList X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X1, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U41(X1, X2, X3) -> proper# X1, proper# U11(X1, X2) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X1, proper# U11(X1, X2) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X1, proper# U22 X -> U22# proper X) (proper# U41(X1, X2, X3) -> proper# X1, proper# U22 X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X1, proper# isNat X -> isNat# proper X) (proper# U41(X1, X2, X3) -> proper# X1, proper# isNat X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X1, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U41(X1, X2, X3) -> proper# X1, proper# U21(X1, X2) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X1, proper# U21(X1, X2) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X1, proper# U32 X -> U32# proper X) (proper# U41(X1, X2, X3) -> proper# X1, proper# U32 X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X1, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U41(X1, X2, X3) -> proper# X1, proper# U31(X1, X2) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X1, proper# U31(X1, X2) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X1, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U41(X1, X2, X3) -> proper# X1, proper# U42(X1, X2) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X1, proper# U42(X1, X2) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X1, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U41(X1, X2, X3) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X3) (proper# U41(X1, X2, X3) -> proper# X1, proper# U43 X -> U43# proper X) (proper# U41(X1, X2, X3) -> proper# X1, proper# U43 X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X1, proper# isNatIList X -> isNatIList# proper X) (proper# U41(X1, X2, X3) -> proper# X1, proper# isNatIList X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X1, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U41(X1, X2, X3) -> proper# X1, proper# U52(X1, X2) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X1, proper# U52(X1, X2) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X1, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U41(X1, X2, X3) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X3) (proper# U41(X1, X2, X3) -> proper# X1, proper# U53 X -> U53# proper X) (proper# U41(X1, X2, X3) -> proper# X1, proper# U53 X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X1, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U41(X1, X2, X3) -> proper# X1, proper# U62(X1, X2) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X1, proper# U62(X1, X2) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U41(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X3) (proper# U41(X1, X2, X3) -> proper# X1, proper# U63 X -> U63# proper X) (proper# U41(X1, X2, X3) -> proper# X1, proper# U63 X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X1, proper# s X -> s# proper X) (proper# U41(X1, X2, X3) -> proper# X1, proper# s X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X1, proper# length X -> length# proper X) (proper# U41(X1, X2, X3) -> proper# X1, proper# length X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X1, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U41(X1, X2, X3) -> proper# X1, proper# U71(X1, X2) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X1, proper# U71(X1, X2) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X1, proper# U81 X -> U81# proper X) (proper# U41(X1, X2, X3) -> proper# X1, proper# U81 X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X1, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U41(X1, X2, X3) -> proper# X1, proper# take(X1, X2) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X1, proper# take(X1, X2) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X1, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U41(X1, X2, X3) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U41(X1, X2, X3) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U41(X1, X2, X3) -> proper# X1, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U41(X1, X2, X3) -> proper# X1, proper# and(X1, X2) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X1, proper# and(X1, X2) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X1, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U41(X1, X2, X3) -> proper# X1, proper# isNatIListKind X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X1, proper# isNatKind X -> isNatKind# proper X) (proper# U41(X1, X2, X3) -> proper# X1, proper# isNatKind X -> proper# X) (proper# U31(X1, X2) -> proper# X1, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X1, proper# cons(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X1, proper# cons(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X1, proper# U12 X -> U12# proper X) (proper# U31(X1, X2) -> proper# X1, proper# U12 X -> proper# X) (proper# U31(X1, X2) -> proper# X1, proper# isNatList X -> isNatList# proper X) (proper# U31(X1, X2) -> proper# X1, proper# isNatList X -> proper# X) (proper# U31(X1, X2) -> proper# X1, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X1, proper# U11(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X1, proper# U11(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X1, proper# U22 X -> U22# proper X) (proper# U31(X1, X2) -> proper# X1, proper# U22 X -> proper# X) (proper# U31(X1, X2) -> proper# X1, proper# isNat X -> isNat# proper X) (proper# U31(X1, X2) -> proper# X1, proper# isNat X -> proper# X) (proper# U31(X1, X2) -> proper# X1, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X1, proper# U32 X -> U32# proper X) (proper# U31(X1, X2) -> proper# X1, proper# U32 X -> proper# X) (proper# U31(X1, X2) -> proper# X1, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X1, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X1, proper# U42(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X1, proper# U42(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U31(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X1) (proper# U31(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X2) (proper# U31(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X3) (proper# U31(X1, X2) -> proper# X1, proper# U43 X -> U43# proper X) (proper# U31(X1, X2) -> proper# X1, proper# U43 X -> proper# X) (proper# U31(X1, X2) -> proper# X1, proper# isNatIList X -> isNatIList# proper X) (proper# U31(X1, X2) -> proper# X1, proper# isNatIList X -> proper# X) (proper# U31(X1, X2) -> proper# X1, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U31(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X1) (proper# U31(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X2) (proper# U31(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X3) (proper# U31(X1, X2) -> proper# X1, proper# U53 X -> U53# proper X) (proper# U31(X1, X2) -> proper# X1, proper# U53 X -> proper# X) (proper# U31(X1, X2) -> proper# X1, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X1, proper# U62(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X1, proper# U62(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U31(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X1) (proper# U31(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2) (proper# U31(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X3) (proper# U31(X1, X2) -> proper# X1, proper# U63 X -> U63# proper X) (proper# U31(X1, X2) -> proper# X1, proper# U63 X -> proper# X) (proper# U31(X1, X2) -> proper# X1, proper# s X -> s# proper X) (proper# U31(X1, X2) -> proper# X1, proper# s X -> proper# X) (proper# U31(X1, X2) -> proper# X1, proper# length X -> length# proper X) (proper# U31(X1, X2) -> proper# X1, proper# length X -> proper# X) (proper# U31(X1, X2) -> proper# X1, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X1, proper# U71(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X1, proper# U71(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X1, proper# U81 X -> U81# proper X) (proper# U31(X1, X2) -> proper# X1, proper# U81 X -> proper# X) (proper# U31(X1, X2) -> proper# X1, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X1, proper# take(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X1, proper# take(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U31(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U31(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U31(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U31(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U31(X1, X2) -> proper# X1, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X1, proper# and(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X1, proper# and(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X1, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U31(X1, X2) -> proper# X1, proper# isNatIListKind X -> proper# X) (proper# U31(X1, X2) -> proper# X1, proper# isNatKind X -> isNatKind# proper X) (proper# U31(X1, X2) -> proper# X1, proper# isNatKind X -> proper# X) (proper# U11(X1, X2) -> proper# X1, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# U11(X1, X2) -> proper# X1, proper# cons(X1, X2) -> proper# X1) (proper# U11(X1, X2) -> proper# X1, proper# cons(X1, X2) -> proper# X2) (proper# U11(X1, X2) -> proper# X1, proper# U12 X -> U12# proper X) (proper# U11(X1, X2) -> proper# X1, proper# U12 X -> proper# X) (proper# U11(X1, X2) -> proper# X1, proper# isNatList X -> isNatList# proper X) (proper# U11(X1, X2) -> proper# X1, proper# isNatList X -> proper# X) (proper# U11(X1, X2) -> proper# X1, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U11(X1, X2) -> proper# X1, proper# U11(X1, X2) -> proper# X1) (proper# U11(X1, X2) -> proper# X1, proper# U11(X1, X2) -> proper# X2) (proper# U11(X1, X2) -> proper# X1, proper# U22 X -> U22# proper X) (proper# U11(X1, X2) -> proper# X1, proper# U22 X -> proper# X) (proper# U11(X1, X2) -> proper# X1, proper# isNat X -> isNat# proper X) (proper# U11(X1, X2) -> proper# X1, proper# isNat X -> proper# X) (proper# U11(X1, X2) -> proper# X1, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U11(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X1) (proper# U11(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2) (proper# U11(X1, X2) -> proper# X1, proper# U32 X -> U32# proper X) (proper# U11(X1, X2) -> proper# X1, proper# U32 X -> proper# X) (proper# U11(X1, X2) -> proper# X1, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U11(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X1) (proper# U11(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2) (proper# U11(X1, X2) -> proper# X1, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U11(X1, X2) -> proper# X1, proper# U42(X1, X2) -> proper# X1) (proper# U11(X1, X2) -> proper# X1, proper# U42(X1, X2) -> proper# X2) (proper# U11(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U11(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X1) (proper# U11(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X2) (proper# U11(X1, X2) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X3) (proper# U11(X1, X2) -> proper# X1, proper# U43 X -> U43# proper X) (proper# U11(X1, X2) -> proper# X1, proper# U43 X -> proper# X) (proper# U11(X1, X2) -> proper# X1, proper# isNatIList X -> isNatIList# proper X) (proper# U11(X1, X2) -> proper# X1, proper# isNatIList X -> proper# X) (proper# U11(X1, X2) -> proper# X1, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U11(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X1) (proper# U11(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2) (proper# U11(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U11(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X1) (proper# U11(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X2) (proper# U11(X1, X2) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X3) (proper# U11(X1, X2) -> proper# X1, proper# U53 X -> U53# proper X) (proper# U11(X1, X2) -> proper# X1, proper# U53 X -> proper# X) (proper# U11(X1, X2) -> proper# X1, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U11(X1, X2) -> proper# X1, proper# U62(X1, X2) -> proper# X1) (proper# U11(X1, X2) -> proper# X1, proper# U62(X1, X2) -> proper# X2) (proper# U11(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U11(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X1) (proper# U11(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2) (proper# U11(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X3) (proper# U11(X1, X2) -> proper# X1, proper# U63 X -> U63# proper X) (proper# U11(X1, X2) -> proper# X1, proper# U63 X -> proper# X) (proper# U11(X1, X2) -> proper# X1, proper# s X -> s# proper X) (proper# U11(X1, X2) -> proper# X1, proper# s X -> proper# X) (proper# U11(X1, X2) -> proper# X1, proper# length X -> length# proper X) (proper# U11(X1, X2) -> proper# X1, proper# length X -> proper# X) (proper# U11(X1, X2) -> proper# X1, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U11(X1, X2) -> proper# X1, proper# U71(X1, X2) -> proper# X1) (proper# U11(X1, X2) -> proper# X1, proper# U71(X1, X2) -> proper# X2) (proper# U11(X1, X2) -> proper# X1, proper# U81 X -> U81# proper X) (proper# U11(X1, X2) -> proper# X1, proper# U81 X -> proper# X) (proper# U11(X1, X2) -> proper# X1, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U11(X1, X2) -> proper# X1, proper# take(X1, X2) -> proper# X1) (proper# U11(X1, X2) -> proper# X1, proper# take(X1, X2) -> proper# X2) (proper# U11(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U11(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U11(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U11(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U11(X1, X2) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U11(X1, X2) -> proper# X1, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U11(X1, X2) -> proper# X1, proper# and(X1, X2) -> proper# X1) (proper# U11(X1, X2) -> proper# X1, proper# and(X1, X2) -> proper# X2) (proper# U11(X1, X2) -> proper# X1, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U11(X1, X2) -> proper# X1, proper# isNatIListKind X -> proper# X) (proper# U11(X1, X2) -> proper# X1, proper# isNatKind X -> isNatKind# proper X) (proper# U11(X1, X2) -> proper# X1, proper# isNatKind X -> proper# X) (active# and(X1, X2) -> and#(active X1, X2), and#(mark X1, X2) -> and#(X1, X2)) (active# and(X1, X2) -> and#(active X1, X2), and#(ok X1, ok X2) -> and#(X1, X2)) (active# U91(X1, X2, X3, X4) -> active# X1, active# cons(X1, X2) -> cons#(active X1, X2)) (active# U91(X1, X2, X3, X4) -> active# X1, active# cons(X1, X2) -> active# X1) (active# U91(X1, X2, X3, X4) -> active# X1, active# zeros() -> cons#(0(), zeros())) (active# U91(X1, X2, X3, X4) -> active# X1, active# U12 X -> active# X) (active# U91(X1, X2, X3, X4) -> active# X1, active# U12 X -> U12# active X) (active# U91(X1, X2, X3, X4) -> active# X1, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U91(X1, X2, X3, X4) -> active# X1, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U91(X1, X2, X3, X4) -> active# X1, active# isNatList cons(V1, V2) -> isNatIListKind# V2) (active# U91(X1, X2, X3, X4) -> active# X1, active# isNatList cons(V1, V2) -> isNatKind# V1) (active# U91(X1, X2, X3, X4) -> active# X1, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U91(X1, X2, X3, X4) -> active# X1, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U91(X1, X2, X3, X4) -> active# X1, active# isNatList take(V1, V2) -> isNatIListKind# V2) (active# U91(X1, X2, X3, X4) -> active# X1, active# isNatList take(V1, V2) -> isNatKind# V1) (active# U91(X1, X2, X3, X4) -> active# X1, active# U11(X1, X2) -> active# X1) (active# U91(X1, X2, X3, X4) -> active# X1, active# U11(X1, X2) -> U11#(active X1, X2)) (active# U91(X1, X2, X3, X4) -> active# X1, active# U11(tt(), V1) -> U12# isNatList V1) (active# U91(X1, X2, X3, X4) -> active# X1, active# U11(tt(), V1) -> isNatList# V1) (active# U91(X1, X2, X3, X4) -> active# X1, active# U22 X -> active# X) (active# U91(X1, X2, X3, X4) -> active# X1, active# U22 X -> U22# active X) (active# U91(X1, X2, X3, X4) -> active# X1, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U91(X1, X2, X3, X4) -> active# X1, active# isNat s V1 -> isNatKind# V1) (active# U91(X1, X2, X3, X4) -> active# X1, active# isNat length V1 -> U11#(isNatIListKind V1, V1)) (active# U91(X1, X2, X3, X4) -> active# X1, active# isNat length V1 -> isNatIListKind# V1) (active# U91(X1, X2, X3, X4) -> active# X1, active# U21(X1, X2) -> active# X1) (active# U91(X1, X2, X3, X4) -> active# X1, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U91(X1, X2, X3, X4) -> active# X1, active# U21(tt(), V1) -> U22# isNat V1) (active# U91(X1, X2, X3, X4) -> active# X1, active# U21(tt(), V1) -> isNat# V1) (active# U91(X1, X2, X3, X4) -> active# X1, active# U32 X -> active# X) (active# U91(X1, X2, X3, X4) -> active# X1, active# U32 X -> U32# active X) (active# U91(X1, X2, X3, X4) -> active# X1, active# U31(X1, X2) -> active# X1) (active# U91(X1, X2, X3, X4) -> active# X1, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U91(X1, X2, X3, X4) -> active# X1, active# U31(tt(), V) -> isNatList# V) (active# U91(X1, X2, X3, X4) -> active# X1, active# U31(tt(), V) -> U32# isNatList V) (active# U91(X1, X2, X3, X4) -> active# X1, active# U42(X1, X2) -> active# X1) (active# U91(X1, X2, X3, X4) -> active# X1, active# U42(X1, X2) -> U42#(active X1, X2)) (active# U91(X1, X2, X3, X4) -> active# X1, active# U42(tt(), V2) -> U43# isNatIList V2) (active# U91(X1, X2, X3, X4) -> active# X1, active# U42(tt(), V2) -> isNatIList# V2) (active# U91(X1, X2, X3, X4) -> active# X1, active# U41(X1, X2, X3) -> active# X1) (active# U91(X1, X2, X3, X4) -> active# X1, active# U41(X1, X2, X3) -> U41#(active X1, X2, X3)) (active# U91(X1, X2, X3, X4) -> active# X1, active# U41(tt(), V1, V2) -> isNat# V1) (active# U91(X1, X2, X3, X4) -> active# X1, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2)) (active# U91(X1, X2, X3, X4) -> active# X1, active# U43 X -> active# X) (active# U91(X1, X2, X3, X4) -> active# X1, active# U43 X -> U43# active X) (active# U91(X1, X2, X3, X4) -> active# X1, active# isNatIList V -> U31#(isNatIListKind V, V)) (active# U91(X1, X2, X3, X4) -> active# X1, active# isNatIList V -> isNatIListKind# V) (active# U91(X1, X2, X3, X4) -> active# X1, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U91(X1, X2, X3, X4) -> active# X1, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U91(X1, X2, X3, X4) -> active# X1, active# isNatIList cons(V1, V2) -> isNatIListKind# V2) (active# U91(X1, X2, X3, X4) -> active# X1, active# isNatIList cons(V1, V2) -> isNatKind# V1) (active# U91(X1, X2, X3, X4) -> active# X1, active# U52(X1, X2) -> active# X1) (active# U91(X1, X2, X3, X4) -> active# X1, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U91(X1, X2, X3, X4) -> active# X1, active# U52(tt(), V2) -> isNatList# V2) (active# U91(X1, X2, X3, X4) -> active# X1, active# U52(tt(), V2) -> U53# isNatList V2) (active# U91(X1, X2, X3, X4) -> active# X1, active# U51(X1, X2, X3) -> active# X1) (active# U91(X1, X2, X3, X4) -> active# X1, active# U51(X1, X2, X3) -> U51#(active X1, X2, X3)) (active# U91(X1, X2, X3, X4) -> active# X1, active# U51(tt(), V1, V2) -> isNat# V1) (active# U91(X1, X2, X3, X4) -> active# X1, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2)) (active# U91(X1, X2, X3, X4) -> active# X1, active# U53 X -> active# X) (active# U91(X1, X2, X3, X4) -> active# X1, active# U53 X -> U53# active X) (active# U91(X1, X2, X3, X4) -> active# X1, active# U62(X1, X2) -> active# X1) (active# U91(X1, X2, X3, X4) -> active# X1, active# U62(X1, X2) -> U62#(active X1, X2)) (active# U91(X1, X2, X3, X4) -> active# X1, active# U62(tt(), V2) -> isNatIList# V2) (active# U91(X1, X2, X3, X4) -> active# X1, active# U62(tt(), V2) -> U63# isNatIList V2) (active# U91(X1, X2, X3, X4) -> active# X1, active# U61(X1, X2, X3) -> active# X1) (active# U91(X1, X2, X3, X4) -> active# X1, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U91(X1, X2, X3, X4) -> active# X1, active# U61(tt(), V1, V2) -> isNat# V1) (active# U91(X1, X2, X3, X4) -> active# X1, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2)) (active# U91(X1, X2, X3, X4) -> active# X1, active# U63 X -> active# X) (active# U91(X1, X2, X3, X4) -> active# X1, active# U63 X -> U63# active X) (active# U91(X1, X2, X3, X4) -> active# X1, active# s X -> active# X) (active# U91(X1, X2, X3, X4) -> active# X1, active# s X -> s# active X) (active# U91(X1, X2, X3, X4) -> active# X1, active# length X -> active# X) (active# U91(X1, X2, X3, X4) -> active# X1, active# length X -> length# active X) (active# U91(X1, X2, X3, X4) -> active# X1, active# length cons(N, L) -> isNatList# L) (active# U91(X1, X2, X3, X4) -> active# X1, active# length cons(N, L) -> isNat# N) (active# U91(X1, X2, X3, X4) -> active# X1, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L)) (active# U91(X1, X2, X3, X4) -> active# X1, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L)) (active# U91(X1, X2, X3, X4) -> active# X1, active# length cons(N, L) -> and#(isNat N, isNatKind N)) (active# U91(X1, X2, X3, X4) -> active# X1, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N))) (active# U91(X1, X2, X3, X4) -> active# X1, active# length cons(N, L) -> isNatIListKind# L) (active# U91(X1, X2, X3, X4) -> active# X1, active# length cons(N, L) -> isNatKind# N) (active# U91(X1, X2, X3, X4) -> active# X1, active# U71(X1, X2) -> active# X1) (active# U91(X1, X2, X3, X4) -> active# X1, active# U71(X1, X2) -> U71#(active X1, X2)) (active# U91(X1, X2, X3, X4) -> active# X1, active# U71(tt(), L) -> s# length L) (active# U91(X1, X2, X3, X4) -> active# X1, active# U71(tt(), L) -> length# L) (active# U91(X1, X2, X3, X4) -> active# X1, active# U81 X -> active# X) (active# U91(X1, X2, X3, X4) -> active# X1, active# U81 X -> U81# active X) (active# U91(X1, X2, X3, X4) -> active# X1, active# take(X1, X2) -> active# X1) (active# U91(X1, X2, X3, X4) -> active# X1, active# take(X1, X2) -> active# X2) (active# U91(X1, X2, X3, X4) -> active# X1, active# take(X1, X2) -> take#(X1, active X2)) (active# U91(X1, X2, X3, X4) -> active# X1, active# take(X1, X2) -> take#(active X1, X2)) (active# U91(X1, X2, X3, X4) -> active# X1, active# take(0(), IL) -> isNatIList# IL) (active# U91(X1, X2, X3, X4) -> active# X1, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL)) (active# U91(X1, X2, X3, X4) -> active# X1, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL)) (active# U91(X1, X2, X3, X4) -> active# X1, active# take(0(), IL) -> isNatIListKind# IL) (active# U91(X1, X2, X3, X4) -> active# X1, active# take(s M, cons(N, IL)) -> isNat# N) (active# U91(X1, X2, X3, X4) -> active# X1, active# take(s M, cons(N, IL)) -> isNat# M) (active# U91(X1, X2, X3, X4) -> active# X1, active# take(s M, cons(N, IL)) -> isNatIList# IL) (active# U91(X1, X2, X3, X4) -> active# X1, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)) (active# U91(X1, X2, X3, X4) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N)) (active# U91(X1, X2, X3, X4) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M)) (active# U91(X1, X2, X3, X4) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL)) (active# U91(X1, X2, X3, X4) -> active# X1, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (active# U91(X1, X2, X3, X4) -> active# X1, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))) (active# U91(X1, X2, X3, X4) -> active# X1, active# take(s M, cons(N, IL)) -> isNatIListKind# IL) (active# U91(X1, X2, X3, X4) -> active# X1, active# take(s M, cons(N, IL)) -> isNatKind# N) (active# U91(X1, X2, X3, X4) -> active# X1, active# take(s M, cons(N, IL)) -> isNatKind# M) (active# U91(X1, X2, X3, X4) -> active# X1, active# U91(X1, X2, X3, X4) -> active# X1) (active# U91(X1, X2, X3, X4) -> active# X1, active# U91(X1, X2, X3, X4) -> U91#(active X1, X2, X3, X4)) (active# U91(X1, X2, X3, X4) -> active# X1, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL))) (active# U91(X1, X2, X3, X4) -> active# X1, active# U91(tt(), IL, M, N) -> take#(M, IL)) (active# U91(X1, X2, X3, X4) -> active# X1, active# and(X1, X2) -> active# X1) (active# U91(X1, X2, X3, X4) -> active# X1, active# and(X1, X2) -> and#(active X1, X2)) (active# U91(X1, X2, X3, X4) -> active# X1, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U91(X1, X2, X3, X4) -> active# X1, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2) (active# U91(X1, X2, X3, X4) -> active# X1, active# isNatIListKind cons(V1, V2) -> isNatKind# V1) (active# U91(X1, X2, X3, X4) -> active# X1, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U91(X1, X2, X3, X4) -> active# X1, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2) (active# U91(X1, X2, X3, X4) -> active# X1, active# isNatIListKind take(V1, V2) -> isNatKind# V1) (active# U91(X1, X2, X3, X4) -> active# X1, active# isNatKind s V1 -> isNatKind# V1) (active# U91(X1, X2, X3, X4) -> active# X1, active# isNatKind length V1 -> isNatIListKind# V1) (active# take(X1, X2) -> active# X1, active# cons(X1, X2) -> cons#(active X1, X2)) (active# take(X1, X2) -> active# X1, active# cons(X1, X2) -> active# X1) (active# take(X1, X2) -> active# X1, active# zeros() -> cons#(0(), zeros())) (active# take(X1, X2) -> active# X1, active# U12 X -> active# X) (active# take(X1, X2) -> active# X1, active# U12 X -> U12# active X) (active# take(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# take(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# take(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> isNatIListKind# V2) (active# take(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> isNatKind# V1) (active# take(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# take(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# take(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> isNatIListKind# V2) (active# take(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> isNatKind# V1) (active# take(X1, X2) -> active# X1, active# U11(X1, X2) -> active# X1) (active# take(X1, X2) -> active# X1, active# U11(X1, X2) -> U11#(active X1, X2)) (active# take(X1, X2) -> active# X1, active# U11(tt(), V1) -> U12# isNatList V1) (active# take(X1, X2) -> active# X1, active# U11(tt(), V1) -> isNatList# V1) (active# take(X1, X2) -> active# X1, active# U22 X -> active# X) (active# take(X1, X2) -> active# X1, active# U22 X -> U22# active X) (active# take(X1, X2) -> active# X1, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# take(X1, X2) -> active# X1, active# isNat s V1 -> isNatKind# V1) (active# take(X1, X2) -> active# X1, active# isNat length V1 -> U11#(isNatIListKind V1, V1)) (active# take(X1, X2) -> active# X1, active# isNat length V1 -> isNatIListKind# V1) (active# take(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1) (active# take(X1, X2) -> active# X1, active# U21(X1, X2) -> U21#(active X1, X2)) (active# take(X1, X2) -> active# X1, active# U21(tt(), V1) -> U22# isNat V1) (active# take(X1, X2) -> active# X1, active# U21(tt(), V1) -> isNat# V1) (active# take(X1, X2) -> active# X1, active# U32 X -> active# X) (active# take(X1, X2) -> active# X1, active# U32 X -> U32# active X) (active# take(X1, X2) -> active# X1, active# U31(X1, X2) -> active# X1) (active# take(X1, X2) -> active# X1, active# U31(X1, X2) -> U31#(active X1, X2)) (active# take(X1, X2) -> active# X1, active# U31(tt(), V) -> isNatList# V) (active# take(X1, X2) -> active# X1, active# U31(tt(), V) -> U32# isNatList V) (active# take(X1, X2) -> active# X1, active# U42(X1, X2) -> active# X1) (active# take(X1, X2) -> active# X1, active# U42(X1, X2) -> U42#(active X1, X2)) (active# take(X1, X2) -> active# X1, active# U42(tt(), V2) -> U43# isNatIList V2) (active# take(X1, X2) -> active# X1, active# U42(tt(), V2) -> isNatIList# V2) (active# take(X1, X2) -> active# X1, active# U41(X1, X2, X3) -> active# X1) (active# take(X1, X2) -> active# X1, active# U41(X1, X2, X3) -> U41#(active X1, X2, X3)) (active# take(X1, X2) -> active# X1, active# U41(tt(), V1, V2) -> isNat# V1) (active# take(X1, X2) -> active# X1, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2)) (active# take(X1, X2) -> active# X1, active# U43 X -> active# X) (active# take(X1, X2) -> active# X1, active# U43 X -> U43# active X) (active# take(X1, X2) -> active# X1, active# isNatIList V -> U31#(isNatIListKind V, V)) (active# take(X1, X2) -> active# X1, active# isNatIList V -> isNatIListKind# V) (active# take(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# take(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# take(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> isNatIListKind# V2) (active# take(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> isNatKind# V1) (active# take(X1, X2) -> active# X1, active# U52(X1, X2) -> active# X1) (active# take(X1, X2) -> active# X1, active# U52(X1, X2) -> U52#(active X1, X2)) (active# take(X1, X2) -> active# X1, active# U52(tt(), V2) -> isNatList# V2) (active# take(X1, X2) -> active# X1, active# U52(tt(), V2) -> U53# isNatList V2) (active# take(X1, X2) -> active# X1, active# U51(X1, X2, X3) -> active# X1) (active# take(X1, X2) -> active# X1, active# U51(X1, X2, X3) -> U51#(active X1, X2, X3)) (active# take(X1, X2) -> active# X1, active# U51(tt(), V1, V2) -> isNat# V1) (active# take(X1, X2) -> active# X1, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2)) (active# take(X1, X2) -> active# X1, active# U53 X -> active# X) (active# take(X1, X2) -> active# X1, active# U53 X -> U53# active X) (active# take(X1, X2) -> active# X1, active# U62(X1, X2) -> active# X1) (active# take(X1, X2) -> active# X1, active# U62(X1, X2) -> U62#(active X1, X2)) (active# take(X1, X2) -> active# X1, active# U62(tt(), V2) -> isNatIList# V2) (active# take(X1, X2) -> active# X1, active# U62(tt(), V2) -> U63# isNatIList V2) (active# take(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> active# X1) (active# take(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# take(X1, X2) -> active# X1, active# U61(tt(), V1, V2) -> isNat# V1) (active# take(X1, X2) -> active# X1, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2)) (active# take(X1, X2) -> active# X1, active# U63 X -> active# X) (active# take(X1, X2) -> active# X1, active# U63 X -> U63# active X) (active# take(X1, X2) -> active# X1, active# s X -> active# X) (active# take(X1, X2) -> active# X1, active# s X -> s# active X) (active# take(X1, X2) -> active# X1, active# length X -> active# X) (active# take(X1, X2) -> active# X1, active# length X -> length# active X) (active# take(X1, X2) -> active# X1, active# length cons(N, L) -> isNatList# L) (active# take(X1, X2) -> active# X1, active# length cons(N, L) -> isNat# N) (active# take(X1, X2) -> active# X1, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L)) (active# take(X1, X2) -> active# X1, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L)) (active# take(X1, X2) -> active# X1, active# length cons(N, L) -> and#(isNat N, isNatKind N)) (active# take(X1, X2) -> active# X1, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N))) (active# take(X1, X2) -> active# X1, active# length cons(N, L) -> isNatIListKind# L) (active# take(X1, X2) -> active# X1, active# length cons(N, L) -> isNatKind# N) (active# take(X1, X2) -> active# X1, active# U71(X1, X2) -> active# X1) (active# take(X1, X2) -> active# X1, active# U71(X1, X2) -> U71#(active X1, X2)) (active# take(X1, X2) -> active# X1, active# U71(tt(), L) -> s# length L) (active# take(X1, X2) -> active# X1, active# U71(tt(), L) -> length# L) (active# take(X1, X2) -> active# X1, active# U81 X -> active# X) (active# take(X1, X2) -> active# X1, active# U81 X -> U81# active X) (active# take(X1, X2) -> active# X1, active# take(X1, X2) -> active# X1) (active# take(X1, X2) -> active# X1, active# take(X1, X2) -> active# X2) (active# take(X1, X2) -> active# X1, active# take(X1, X2) -> take#(X1, active X2)) (active# take(X1, X2) -> active# X1, active# take(X1, X2) -> take#(active X1, X2)) (active# take(X1, X2) -> active# X1, active# take(0(), IL) -> isNatIList# IL) (active# take(X1, X2) -> active# X1, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL)) (active# take(X1, X2) -> active# X1, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL)) (active# take(X1, X2) -> active# X1, active# take(0(), IL) -> isNatIListKind# IL) (active# take(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNat# N) (active# take(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNat# M) (active# take(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatIList# IL) (active# take(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)) (active# take(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N)) (active# take(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M)) (active# take(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL)) (active# take(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (active# take(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))) (active# take(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatIListKind# IL) (active# take(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatKind# N) (active# take(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatKind# M) (active# take(X1, X2) -> active# X1, active# U91(X1, X2, X3, X4) -> active# X1) (active# take(X1, X2) -> active# X1, active# U91(X1, X2, X3, X4) -> U91#(active X1, X2, X3, X4)) (active# take(X1, X2) -> active# X1, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL))) (active# take(X1, X2) -> active# X1, active# U91(tt(), IL, M, N) -> take#(M, IL)) (active# take(X1, X2) -> active# X1, active# and(X1, X2) -> active# X1) (active# take(X1, X2) -> active# X1, active# and(X1, X2) -> and#(active X1, X2)) (active# take(X1, X2) -> active# X1, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# take(X1, X2) -> active# X1, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2) (active# take(X1, X2) -> active# X1, active# isNatIListKind cons(V1, V2) -> isNatKind# V1) (active# take(X1, X2) -> active# X1, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# take(X1, X2) -> active# X1, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2) (active# take(X1, X2) -> active# X1, active# isNatIListKind take(V1, V2) -> isNatKind# V1) (active# take(X1, X2) -> active# X1, active# isNatKind s V1 -> isNatKind# V1) (active# take(X1, X2) -> active# X1, active# isNatKind length V1 -> isNatIListKind# V1) (active# U71(X1, X2) -> active# X1, active# cons(X1, X2) -> cons#(active X1, X2)) (active# U71(X1, X2) -> active# X1, active# cons(X1, X2) -> active# X1) (active# U71(X1, X2) -> active# X1, active# zeros() -> cons#(0(), zeros())) (active# U71(X1, X2) -> active# X1, active# U12 X -> active# X) (active# U71(X1, X2) -> active# X1, active# U12 X -> U12# active X) (active# U71(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U71(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U71(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> isNatIListKind# V2) (active# U71(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> isNatKind# V1) (active# U71(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U71(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U71(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> isNatIListKind# V2) (active# U71(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> isNatKind# V1) (active# U71(X1, X2) -> active# X1, active# U11(X1, X2) -> active# X1) (active# U71(X1, X2) -> active# X1, active# U11(X1, X2) -> U11#(active X1, X2)) (active# U71(X1, X2) -> active# X1, active# U11(tt(), V1) -> U12# isNatList V1) (active# U71(X1, X2) -> active# X1, active# U11(tt(), V1) -> isNatList# V1) (active# U71(X1, X2) -> active# X1, active# U22 X -> active# X) (active# U71(X1, X2) -> active# X1, active# U22 X -> U22# active X) (active# U71(X1, X2) -> active# X1, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U71(X1, X2) -> active# X1, active# isNat s V1 -> isNatKind# V1) (active# U71(X1, X2) -> active# X1, active# isNat length V1 -> U11#(isNatIListKind V1, V1)) (active# U71(X1, X2) -> active# X1, active# isNat length V1 -> isNatIListKind# V1) (active# U71(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1) (active# U71(X1, X2) -> active# X1, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U71(X1, X2) -> active# X1, active# U21(tt(), V1) -> U22# isNat V1) (active# U71(X1, X2) -> active# X1, active# U21(tt(), V1) -> isNat# V1) (active# U71(X1, X2) -> active# X1, active# U32 X -> active# X) (active# U71(X1, X2) -> active# X1, active# U32 X -> U32# active X) (active# U71(X1, X2) -> active# X1, active# U31(X1, X2) -> active# X1) (active# U71(X1, X2) -> active# X1, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U71(X1, X2) -> active# X1, active# U31(tt(), V) -> isNatList# V) (active# U71(X1, X2) -> active# X1, active# U31(tt(), V) -> U32# isNatList V) (active# U71(X1, X2) -> active# X1, active# U42(X1, X2) -> active# X1) (active# U71(X1, X2) -> active# X1, active# U42(X1, X2) -> U42#(active X1, X2)) (active# U71(X1, X2) -> active# X1, active# U42(tt(), V2) -> U43# isNatIList V2) (active# U71(X1, X2) -> active# X1, active# U42(tt(), V2) -> isNatIList# V2) (active# U71(X1, X2) -> active# X1, active# U41(X1, X2, X3) -> active# X1) (active# U71(X1, X2) -> active# X1, active# U41(X1, X2, X3) -> U41#(active X1, X2, X3)) (active# U71(X1, X2) -> active# X1, active# U41(tt(), V1, V2) -> isNat# V1) (active# U71(X1, X2) -> active# X1, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2)) (active# U71(X1, X2) -> active# X1, active# U43 X -> active# X) (active# U71(X1, X2) -> active# X1, active# U43 X -> U43# active X) (active# U71(X1, X2) -> active# X1, active# isNatIList V -> U31#(isNatIListKind V, V)) (active# U71(X1, X2) -> active# X1, active# isNatIList V -> isNatIListKind# V) (active# U71(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U71(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U71(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> isNatIListKind# V2) (active# U71(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> isNatKind# V1) (active# U71(X1, X2) -> active# X1, active# U52(X1, X2) -> active# X1) (active# U71(X1, X2) -> active# X1, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U71(X1, X2) -> active# X1, active# U52(tt(), V2) -> isNatList# V2) (active# U71(X1, X2) -> active# X1, active# U52(tt(), V2) -> U53# isNatList V2) (active# U71(X1, X2) -> active# X1, active# U51(X1, X2, X3) -> active# X1) (active# U71(X1, X2) -> active# X1, active# U51(X1, X2, X3) -> U51#(active X1, X2, X3)) (active# U71(X1, X2) -> active# X1, active# U51(tt(), V1, V2) -> isNat# V1) (active# U71(X1, X2) -> active# X1, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2)) (active# U71(X1, X2) -> active# X1, active# U53 X -> active# X) (active# U71(X1, X2) -> active# X1, active# U53 X -> U53# active X) (active# U71(X1, X2) -> active# X1, active# U62(X1, X2) -> active# X1) (active# U71(X1, X2) -> active# X1, active# U62(X1, X2) -> U62#(active X1, X2)) (active# U71(X1, X2) -> active# X1, active# U62(tt(), V2) -> isNatIList# V2) (active# U71(X1, X2) -> active# X1, active# U62(tt(), V2) -> U63# isNatIList V2) (active# U71(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> active# X1) (active# U71(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U71(X1, X2) -> active# X1, active# U61(tt(), V1, V2) -> isNat# V1) (active# U71(X1, X2) -> active# X1, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2)) (active# U71(X1, X2) -> active# X1, active# U63 X -> active# X) (active# U71(X1, X2) -> active# X1, active# U63 X -> U63# active X) (active# U71(X1, X2) -> active# X1, active# s X -> active# X) (active# U71(X1, X2) -> active# X1, active# s X -> s# active X) (active# U71(X1, X2) -> active# X1, active# length X -> active# X) (active# U71(X1, X2) -> active# X1, active# length X -> length# active X) (active# U71(X1, X2) -> active# X1, active# length cons(N, L) -> isNatList# L) (active# U71(X1, X2) -> active# X1, active# length cons(N, L) -> isNat# N) (active# U71(X1, X2) -> active# X1, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L)) (active# U71(X1, X2) -> active# X1, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L)) (active# U71(X1, X2) -> active# X1, active# length cons(N, L) -> and#(isNat N, isNatKind N)) (active# U71(X1, X2) -> active# X1, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N))) (active# U71(X1, X2) -> active# X1, active# length cons(N, L) -> isNatIListKind# L) (active# U71(X1, X2) -> active# X1, active# length cons(N, L) -> isNatKind# N) (active# U71(X1, X2) -> active# X1, active# U71(X1, X2) -> active# X1) (active# U71(X1, X2) -> active# X1, active# U71(X1, X2) -> U71#(active X1, X2)) (active# U71(X1, X2) -> active# X1, active# U71(tt(), L) -> s# length L) (active# U71(X1, X2) -> active# X1, active# U71(tt(), L) -> length# L) (active# U71(X1, X2) -> active# X1, active# U81 X -> active# X) (active# U71(X1, X2) -> active# X1, active# U81 X -> U81# active X) (active# U71(X1, X2) -> active# X1, active# take(X1, X2) -> active# X1) (active# U71(X1, X2) -> active# X1, active# take(X1, X2) -> active# X2) (active# U71(X1, X2) -> active# X1, active# take(X1, X2) -> take#(X1, active X2)) (active# U71(X1, X2) -> active# X1, active# take(X1, X2) -> take#(active X1, X2)) (active# U71(X1, X2) -> active# X1, active# take(0(), IL) -> isNatIList# IL) (active# U71(X1, X2) -> active# X1, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL)) (active# U71(X1, X2) -> active# X1, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL)) (active# U71(X1, X2) -> active# X1, active# take(0(), IL) -> isNatIListKind# IL) (active# U71(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNat# N) (active# U71(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNat# M) (active# U71(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatIList# IL) (active# U71(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)) (active# U71(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N)) (active# U71(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M)) (active# U71(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL)) (active# U71(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (active# U71(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))) (active# U71(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatIListKind# IL) (active# U71(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatKind# N) (active# U71(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatKind# M) (active# U71(X1, X2) -> active# X1, active# U91(X1, X2, X3, X4) -> active# X1) (active# U71(X1, X2) -> active# X1, active# U91(X1, X2, X3, X4) -> U91#(active X1, X2, X3, X4)) (active# U71(X1, X2) -> active# X1, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL))) (active# U71(X1, X2) -> active# X1, active# U91(tt(), IL, M, N) -> take#(M, IL)) (active# U71(X1, X2) -> active# X1, active# and(X1, X2) -> active# X1) (active# U71(X1, X2) -> active# X1, active# and(X1, X2) -> and#(active X1, X2)) (active# U71(X1, X2) -> active# X1, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U71(X1, X2) -> active# X1, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2) (active# U71(X1, X2) -> active# X1, active# isNatIListKind cons(V1, V2) -> isNatKind# V1) (active# U71(X1, X2) -> active# X1, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U71(X1, X2) -> active# X1, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2) (active# U71(X1, X2) -> active# X1, active# isNatIListKind take(V1, V2) -> isNatKind# V1) (active# U71(X1, X2) -> active# X1, active# isNatKind s V1 -> isNatKind# V1) (active# U71(X1, X2) -> active# X1, active# isNatKind length V1 -> isNatIListKind# V1) (active# U62(X1, X2) -> U62#(active X1, X2), U62#(mark X1, X2) -> U62#(X1, X2)) (active# U62(X1, X2) -> U62#(active X1, X2), U62#(ok X1, ok X2) -> U62#(X1, X2)) (active# U51(X1, X2, X3) -> active# X1, active# cons(X1, X2) -> cons#(active X1, X2)) (active# U51(X1, X2, X3) -> active# X1, active# cons(X1, X2) -> active# X1) (active# U51(X1, X2, X3) -> active# X1, active# zeros() -> cons#(0(), zeros())) (active# U51(X1, X2, X3) -> active# X1, active# U12 X -> active# X) (active# U51(X1, X2, X3) -> active# X1, active# U12 X -> U12# active X) (active# U51(X1, X2, X3) -> active# X1, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U51(X1, X2, X3) -> active# X1, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U51(X1, X2, X3) -> active# X1, active# isNatList cons(V1, V2) -> isNatIListKind# V2) (active# U51(X1, X2, X3) -> active# X1, active# isNatList cons(V1, V2) -> isNatKind# V1) (active# U51(X1, X2, X3) -> active# X1, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U51(X1, X2, X3) -> active# X1, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U51(X1, X2, X3) -> active# X1, active# isNatList take(V1, V2) -> isNatIListKind# V2) (active# U51(X1, X2, X3) -> active# X1, active# isNatList take(V1, V2) -> isNatKind# V1) (active# U51(X1, X2, X3) -> active# X1, active# U11(X1, X2) -> active# X1) (active# U51(X1, X2, X3) -> active# X1, active# U11(X1, X2) -> U11#(active X1, X2)) (active# U51(X1, X2, X3) -> active# X1, active# U11(tt(), V1) -> U12# isNatList V1) (active# U51(X1, X2, X3) -> active# X1, active# U11(tt(), V1) -> isNatList# V1) (active# U51(X1, X2, X3) -> active# X1, active# U22 X -> active# X) (active# U51(X1, X2, X3) -> active# X1, active# U22 X -> U22# active X) (active# U51(X1, X2, X3) -> active# X1, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U51(X1, X2, X3) -> active# X1, active# isNat s V1 -> isNatKind# V1) (active# U51(X1, X2, X3) -> active# X1, active# isNat length V1 -> U11#(isNatIListKind V1, V1)) (active# U51(X1, X2, X3) -> active# X1, active# isNat length V1 -> isNatIListKind# V1) (active# U51(X1, X2, X3) -> active# X1, active# U21(X1, X2) -> active# X1) (active# U51(X1, X2, X3) -> active# X1, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U51(X1, X2, X3) -> active# X1, active# U21(tt(), V1) -> U22# isNat V1) (active# U51(X1, X2, X3) -> active# X1, active# U21(tt(), V1) -> isNat# V1) (active# U51(X1, X2, X3) -> active# X1, active# U32 X -> active# X) (active# U51(X1, X2, X3) -> active# X1, active# U32 X -> U32# active X) (active# U51(X1, X2, X3) -> active# X1, active# U31(X1, X2) -> active# X1) (active# U51(X1, X2, X3) -> active# X1, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U51(X1, X2, X3) -> active# X1, active# U31(tt(), V) -> isNatList# V) (active# U51(X1, X2, X3) -> active# X1, active# U31(tt(), V) -> U32# isNatList V) (active# U51(X1, X2, X3) -> active# X1, active# U42(X1, X2) -> active# X1) (active# U51(X1, X2, X3) -> active# X1, active# U42(X1, X2) -> U42#(active X1, X2)) (active# U51(X1, X2, X3) -> active# X1, active# U42(tt(), V2) -> U43# isNatIList V2) (active# U51(X1, X2, X3) -> active# X1, active# U42(tt(), V2) -> isNatIList# V2) (active# U51(X1, X2, X3) -> active# X1, active# U41(X1, X2, X3) -> active# X1) (active# U51(X1, X2, X3) -> active# X1, active# U41(X1, X2, X3) -> U41#(active X1, X2, X3)) (active# U51(X1, X2, X3) -> active# X1, active# U41(tt(), V1, V2) -> isNat# V1) (active# U51(X1, X2, X3) -> active# X1, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2)) (active# U51(X1, X2, X3) -> active# X1, active# U43 X -> active# X) (active# U51(X1, X2, X3) -> active# X1, active# U43 X -> U43# active X) (active# U51(X1, X2, X3) -> active# X1, active# isNatIList V -> U31#(isNatIListKind V, V)) (active# U51(X1, X2, X3) -> active# X1, active# isNatIList V -> isNatIListKind# V) (active# U51(X1, X2, X3) -> active# X1, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U51(X1, X2, X3) -> active# X1, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U51(X1, X2, X3) -> active# X1, active# isNatIList cons(V1, V2) -> isNatIListKind# V2) (active# U51(X1, X2, X3) -> active# X1, active# isNatIList cons(V1, V2) -> isNatKind# V1) (active# U51(X1, X2, X3) -> active# X1, active# U52(X1, X2) -> active# X1) (active# U51(X1, X2, X3) -> active# X1, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U51(X1, X2, X3) -> active# X1, active# U52(tt(), V2) -> isNatList# V2) (active# U51(X1, X2, X3) -> active# X1, active# U52(tt(), V2) -> U53# isNatList V2) (active# U51(X1, X2, X3) -> active# X1, active# U51(X1, X2, X3) -> active# X1) (active# U51(X1, X2, X3) -> active# X1, active# U51(X1, X2, X3) -> U51#(active X1, X2, X3)) (active# U51(X1, X2, X3) -> active# X1, active# U51(tt(), V1, V2) -> isNat# V1) (active# U51(X1, X2, X3) -> active# X1, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2)) (active# U51(X1, X2, X3) -> active# X1, active# U53 X -> active# X) (active# U51(X1, X2, X3) -> active# X1, active# U53 X -> U53# active X) (active# U51(X1, X2, X3) -> active# X1, active# U62(X1, X2) -> active# X1) (active# U51(X1, X2, X3) -> active# X1, active# U62(X1, X2) -> U62#(active X1, X2)) (active# U51(X1, X2, X3) -> active# X1, active# U62(tt(), V2) -> isNatIList# V2) (active# U51(X1, X2, X3) -> active# X1, active# U62(tt(), V2) -> U63# isNatIList V2) (active# U51(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> active# X1) (active# U51(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U51(X1, X2, X3) -> active# X1, active# U61(tt(), V1, V2) -> isNat# V1) (active# U51(X1, X2, X3) -> active# X1, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2)) (active# U51(X1, X2, X3) -> active# X1, active# U63 X -> active# X) (active# U51(X1, X2, X3) -> active# X1, active# U63 X -> U63# active X) (active# U51(X1, X2, X3) -> active# X1, active# s X -> active# X) (active# U51(X1, X2, X3) -> active# X1, active# s X -> s# active X) (active# U51(X1, X2, X3) -> active# X1, active# length X -> active# X) (active# U51(X1, X2, X3) -> active# X1, active# length X -> length# active X) (active# U51(X1, X2, X3) -> active# X1, active# length cons(N, L) -> isNatList# L) (active# U51(X1, X2, X3) -> active# X1, active# length cons(N, L) -> isNat# N) (active# U51(X1, X2, X3) -> active# X1, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L)) (active# U51(X1, X2, X3) -> active# X1, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L)) (active# U51(X1, X2, X3) -> active# X1, active# length cons(N, L) -> and#(isNat N, isNatKind N)) (active# U51(X1, X2, X3) -> active# X1, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N))) (active# U51(X1, X2, X3) -> active# X1, active# length cons(N, L) -> isNatIListKind# L) (active# U51(X1, X2, X3) -> active# X1, active# length cons(N, L) -> isNatKind# N) (active# U51(X1, X2, X3) -> active# X1, active# U71(X1, X2) -> active# X1) (active# U51(X1, X2, X3) -> active# X1, active# U71(X1, X2) -> U71#(active X1, X2)) (active# U51(X1, X2, X3) -> active# X1, active# U71(tt(), L) -> s# length L) (active# U51(X1, X2, X3) -> active# X1, active# U71(tt(), L) -> length# L) (active# U51(X1, X2, X3) -> active# X1, active# U81 X -> active# X) (active# U51(X1, X2, X3) -> active# X1, active# U81 X -> U81# active X) (active# U51(X1, X2, X3) -> active# X1, active# take(X1, X2) -> active# X1) (active# U51(X1, X2, X3) -> active# X1, active# take(X1, X2) -> active# X2) (active# U51(X1, X2, X3) -> active# X1, active# take(X1, X2) -> take#(X1, active X2)) (active# U51(X1, X2, X3) -> active# X1, active# take(X1, X2) -> take#(active X1, X2)) (active# U51(X1, X2, X3) -> active# X1, active# take(0(), IL) -> isNatIList# IL) (active# U51(X1, X2, X3) -> active# X1, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL)) (active# U51(X1, X2, X3) -> active# X1, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL)) (active# U51(X1, X2, X3) -> active# X1, active# take(0(), IL) -> isNatIListKind# IL) (active# U51(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> isNat# N) (active# U51(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> isNat# M) (active# U51(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> isNatIList# IL) (active# U51(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)) (active# U51(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N)) (active# U51(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M)) (active# U51(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL)) (active# U51(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (active# U51(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))) (active# U51(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> isNatIListKind# IL) (active# U51(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> isNatKind# N) (active# U51(X1, X2, X3) -> active# X1, active# take(s M, cons(N, IL)) -> isNatKind# M) (active# U51(X1, X2, X3) -> active# X1, active# U91(X1, X2, X3, X4) -> active# X1) (active# U51(X1, X2, X3) -> active# X1, active# U91(X1, X2, X3, X4) -> U91#(active X1, X2, X3, X4)) (active# U51(X1, X2, X3) -> active# X1, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL))) (active# U51(X1, X2, X3) -> active# X1, active# U91(tt(), IL, M, N) -> take#(M, IL)) (active# U51(X1, X2, X3) -> active# X1, active# and(X1, X2) -> active# X1) (active# U51(X1, X2, X3) -> active# X1, active# and(X1, X2) -> and#(active X1, X2)) (active# U51(X1, X2, X3) -> active# X1, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U51(X1, X2, X3) -> active# X1, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2) (active# U51(X1, X2, X3) -> active# X1, active# isNatIListKind cons(V1, V2) -> isNatKind# V1) (active# U51(X1, X2, X3) -> active# X1, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U51(X1, X2, X3) -> active# X1, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2) (active# U51(X1, X2, X3) -> active# X1, active# isNatIListKind take(V1, V2) -> isNatKind# V1) (active# U51(X1, X2, X3) -> active# X1, active# isNatKind s V1 -> isNatKind# V1) (active# U51(X1, X2, X3) -> active# X1, active# isNatKind length V1 -> isNatIListKind# V1) (active# U52(X1, X2) -> active# X1, active# cons(X1, X2) -> cons#(active X1, X2)) (active# U52(X1, X2) -> active# X1, active# cons(X1, X2) -> active# X1) (active# U52(X1, X2) -> active# X1, active# zeros() -> cons#(0(), zeros())) (active# U52(X1, X2) -> active# X1, active# U12 X -> active# X) (active# U52(X1, X2) -> active# X1, active# U12 X -> U12# active X) (active# U52(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U52(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U52(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> isNatIListKind# V2) (active# U52(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> isNatKind# V1) (active# U52(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U52(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U52(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> isNatIListKind# V2) (active# U52(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> isNatKind# V1) (active# U52(X1, X2) -> active# X1, active# U11(X1, X2) -> active# X1) (active# U52(X1, X2) -> active# X1, active# U11(X1, X2) -> U11#(active X1, X2)) (active# U52(X1, X2) -> active# X1, active# U11(tt(), V1) -> U12# isNatList V1) (active# U52(X1, X2) -> active# X1, active# U11(tt(), V1) -> isNatList# V1) (active# U52(X1, X2) -> active# X1, active# U22 X -> active# X) (active# U52(X1, X2) -> active# X1, active# U22 X -> U22# active X) (active# U52(X1, X2) -> active# X1, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U52(X1, X2) -> active# X1, active# isNat s V1 -> isNatKind# V1) (active# U52(X1, X2) -> active# X1, active# isNat length V1 -> U11#(isNatIListKind V1, V1)) (active# U52(X1, X2) -> active# X1, active# isNat length V1 -> isNatIListKind# V1) (active# U52(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1) (active# U52(X1, X2) -> active# X1, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U52(X1, X2) -> active# X1, active# U21(tt(), V1) -> U22# isNat V1) (active# U52(X1, X2) -> active# X1, active# U21(tt(), V1) -> isNat# V1) (active# U52(X1, X2) -> active# X1, active# U32 X -> active# X) (active# U52(X1, X2) -> active# X1, active# U32 X -> U32# active X) (active# U52(X1, X2) -> active# X1, active# U31(X1, X2) -> active# X1) (active# U52(X1, X2) -> active# X1, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U52(X1, X2) -> active# X1, active# U31(tt(), V) -> isNatList# V) (active# U52(X1, X2) -> active# X1, active# U31(tt(), V) -> U32# isNatList V) (active# U52(X1, X2) -> active# X1, active# U42(X1, X2) -> active# X1) (active# U52(X1, X2) -> active# X1, active# U42(X1, X2) -> U42#(active X1, X2)) (active# U52(X1, X2) -> active# X1, active# U42(tt(), V2) -> U43# isNatIList V2) (active# U52(X1, X2) -> active# X1, active# U42(tt(), V2) -> isNatIList# V2) (active# U52(X1, X2) -> active# X1, active# U41(X1, X2, X3) -> active# X1) (active# U52(X1, X2) -> active# X1, active# U41(X1, X2, X3) -> U41#(active X1, X2, X3)) (active# U52(X1, X2) -> active# X1, active# U41(tt(), V1, V2) -> isNat# V1) (active# U52(X1, X2) -> active# X1, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2)) (active# U52(X1, X2) -> active# X1, active# U43 X -> active# X) (active# U52(X1, X2) -> active# X1, active# U43 X -> U43# active X) (active# U52(X1, X2) -> active# X1, active# isNatIList V -> U31#(isNatIListKind V, V)) (active# U52(X1, X2) -> active# X1, active# isNatIList V -> isNatIListKind# V) (active# U52(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# U52(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U52(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> isNatIListKind# V2) (active# U52(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> isNatKind# V1) (active# U52(X1, X2) -> active# X1, active# U52(X1, X2) -> active# X1) (active# U52(X1, X2) -> active# X1, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U52(X1, X2) -> active# X1, active# U52(tt(), V2) -> isNatList# V2) (active# U52(X1, X2) -> active# X1, active# U52(tt(), V2) -> U53# isNatList V2) (active# U52(X1, X2) -> active# X1, active# U51(X1, X2, X3) -> active# X1) (active# U52(X1, X2) -> active# X1, active# U51(X1, X2, X3) -> U51#(active X1, X2, X3)) (active# U52(X1, X2) -> active# X1, active# U51(tt(), V1, V2) -> isNat# V1) (active# U52(X1, X2) -> active# X1, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2)) (active# U52(X1, X2) -> active# X1, active# U53 X -> active# X) (active# U52(X1, X2) -> active# X1, active# U53 X -> U53# active X) (active# U52(X1, X2) -> active# X1, active# U62(X1, X2) -> active# X1) (active# U52(X1, X2) -> active# X1, active# U62(X1, X2) -> U62#(active X1, X2)) (active# U52(X1, X2) -> active# X1, active# U62(tt(), V2) -> isNatIList# V2) (active# U52(X1, X2) -> active# X1, active# U62(tt(), V2) -> U63# isNatIList V2) (active# U52(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> active# X1) (active# U52(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U52(X1, X2) -> active# X1, active# U61(tt(), V1, V2) -> isNat# V1) (active# U52(X1, X2) -> active# X1, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2)) (active# U52(X1, X2) -> active# X1, active# U63 X -> active# X) (active# U52(X1, X2) -> active# X1, active# U63 X -> U63# active X) (active# U52(X1, X2) -> active# X1, active# s X -> active# X) (active# U52(X1, X2) -> active# X1, active# s X -> s# active X) (active# U52(X1, X2) -> active# X1, active# length X -> active# X) (active# U52(X1, X2) -> active# X1, active# length X -> length# active X) (active# U52(X1, X2) -> active# X1, active# length cons(N, L) -> isNatList# L) (active# U52(X1, X2) -> active# X1, active# length cons(N, L) -> isNat# N) (active# U52(X1, X2) -> active# X1, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L)) (active# U52(X1, X2) -> active# X1, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L)) (active# U52(X1, X2) -> active# X1, active# length cons(N, L) -> and#(isNat N, isNatKind N)) (active# U52(X1, X2) -> active# X1, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N))) (active# U52(X1, X2) -> active# X1, active# length cons(N, L) -> isNatIListKind# L) (active# U52(X1, X2) -> active# X1, active# length cons(N, L) -> isNatKind# N) (active# U52(X1, X2) -> active# X1, active# U71(X1, X2) -> active# X1) (active# U52(X1, X2) -> active# X1, active# U71(X1, X2) -> U71#(active X1, X2)) (active# U52(X1, X2) -> active# X1, active# U71(tt(), L) -> s# length L) (active# U52(X1, X2) -> active# X1, active# U71(tt(), L) -> length# L) (active# U52(X1, X2) -> active# X1, active# U81 X -> active# X) (active# U52(X1, X2) -> active# X1, active# U81 X -> U81# active X) (active# U52(X1, X2) -> active# X1, active# take(X1, X2) -> active# X1) (active# U52(X1, X2) -> active# X1, active# take(X1, X2) -> active# X2) (active# U52(X1, X2) -> active# X1, active# take(X1, X2) -> take#(X1, active X2)) (active# U52(X1, X2) -> active# X1, active# take(X1, X2) -> take#(active X1, X2)) (active# U52(X1, X2) -> active# X1, active# take(0(), IL) -> isNatIList# IL) (active# U52(X1, X2) -> active# X1, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL)) (active# U52(X1, X2) -> active# X1, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL)) (active# U52(X1, X2) -> active# X1, active# take(0(), IL) -> isNatIListKind# IL) (active# U52(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNat# N) (active# U52(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNat# M) (active# U52(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatIList# IL) (active# U52(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)) (active# U52(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N)) (active# U52(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M)) (active# U52(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL)) (active# U52(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (active# U52(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))) (active# U52(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatIListKind# IL) (active# U52(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatKind# N) (active# U52(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatKind# M) (active# U52(X1, X2) -> active# X1, active# U91(X1, X2, X3, X4) -> active# X1) (active# U52(X1, X2) -> active# X1, active# U91(X1, X2, X3, X4) -> U91#(active X1, X2, X3, X4)) (active# U52(X1, X2) -> active# X1, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL))) (active# U52(X1, X2) -> active# X1, active# U91(tt(), IL, M, N) -> take#(M, IL)) (active# U52(X1, X2) -> active# X1, active# and(X1, X2) -> active# X1) (active# U52(X1, X2) -> active# X1, active# and(X1, X2) -> and#(active X1, X2)) (active# U52(X1, X2) -> active# X1, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U52(X1, X2) -> active# X1, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2) (active# U52(X1, X2) -> active# X1, active# isNatIListKind cons(V1, V2) -> isNatKind# V1) (active# U52(X1, X2) -> active# X1, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# U52(X1, X2) -> active# X1, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2) (active# U52(X1, X2) -> active# X1, active# isNatIListKind take(V1, V2) -> isNatKind# V1) (active# U52(X1, X2) -> active# X1, active# isNatKind s V1 -> isNatKind# V1) (active# U52(X1, X2) -> active# X1, active# isNatKind length V1 -> isNatIListKind# V1) (active# U42(X1, X2) -> U42#(active X1, X2), U42#(mark X1, X2) -> U42#(X1, X2)) (active# U42(X1, X2) -> U42#(active X1, X2), U42#(ok X1, ok X2) -> U42#(X1, X2)) (active# U31(X1, X2) -> U31#(active X1, X2), U31#(mark X1, X2) -> U31#(X1, X2)) (active# U31(X1, X2) -> U31#(active X1, X2), U31#(ok X1, ok X2) -> U31#(X1, X2)) (active# U21(X1, X2) -> U21#(active X1, X2), U21#(mark X1, X2) -> U21#(X1, X2)) (active# U21(X1, X2) -> U21#(active X1, X2), U21#(ok X1, ok X2) -> U21#(X1, X2)) (active# U11(X1, X2) -> U11#(active X1, X2), U11#(mark X1, X2) -> U11#(X1, X2)) (active# U11(X1, X2) -> U11#(active X1, X2), U11#(ok X1, ok X2) -> U11#(X1, X2)) (active# cons(X1, X2) -> active# X1, active# cons(X1, X2) -> cons#(active X1, X2)) (active# cons(X1, X2) -> active# X1, active# cons(X1, X2) -> active# X1) (active# cons(X1, X2) -> active# X1, active# zeros() -> cons#(0(), zeros())) (active# cons(X1, X2) -> active# X1, active# U12 X -> active# X) (active# cons(X1, X2) -> active# X1, active# U12 X -> U12# active X) (active# cons(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> U51#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# cons(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# cons(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> isNatIListKind# V2) (active# cons(X1, X2) -> active# X1, active# isNatList cons(V1, V2) -> isNatKind# V1) (active# cons(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> U61#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# cons(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# cons(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> isNatIListKind# V2) (active# cons(X1, X2) -> active# X1, active# isNatList take(V1, V2) -> isNatKind# V1) (active# cons(X1, X2) -> active# X1, active# U11(X1, X2) -> active# X1) (active# cons(X1, X2) -> active# X1, active# U11(X1, X2) -> U11#(active X1, X2)) (active# cons(X1, X2) -> active# X1, active# U11(tt(), V1) -> U12# isNatList V1) (active# cons(X1, X2) -> active# X1, active# U11(tt(), V1) -> isNatList# V1) (active# cons(X1, X2) -> active# X1, active# U22 X -> active# X) (active# cons(X1, X2) -> active# X1, active# U22 X -> U22# active X) (active# cons(X1, X2) -> active# X1, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# cons(X1, X2) -> active# X1, active# isNat s V1 -> isNatKind# V1) (active# cons(X1, X2) -> active# X1, active# isNat length V1 -> U11#(isNatIListKind V1, V1)) (active# cons(X1, X2) -> active# X1, active# isNat length V1 -> isNatIListKind# V1) (active# cons(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1) (active# cons(X1, X2) -> active# X1, active# U21(X1, X2) -> U21#(active X1, X2)) (active# cons(X1, X2) -> active# X1, active# U21(tt(), V1) -> U22# isNat V1) (active# cons(X1, X2) -> active# X1, active# U21(tt(), V1) -> isNat# V1) (active# cons(X1, X2) -> active# X1, active# U32 X -> active# X) (active# cons(X1, X2) -> active# X1, active# U32 X -> U32# active X) (active# cons(X1, X2) -> active# X1, active# U31(X1, X2) -> active# X1) (active# cons(X1, X2) -> active# X1, active# U31(X1, X2) -> U31#(active X1, X2)) (active# cons(X1, X2) -> active# X1, active# U31(tt(), V) -> isNatList# V) (active# cons(X1, X2) -> active# X1, active# U31(tt(), V) -> U32# isNatList V) (active# cons(X1, X2) -> active# X1, active# U42(X1, X2) -> active# X1) (active# cons(X1, X2) -> active# X1, active# U42(X1, X2) -> U42#(active X1, X2)) (active# cons(X1, X2) -> active# X1, active# U42(tt(), V2) -> U43# isNatIList V2) (active# cons(X1, X2) -> active# X1, active# U42(tt(), V2) -> isNatIList# V2) (active# cons(X1, X2) -> active# X1, active# U41(X1, X2, X3) -> active# X1) (active# cons(X1, X2) -> active# X1, active# U41(X1, X2, X3) -> U41#(active X1, X2, X3)) (active# cons(X1, X2) -> active# X1, active# U41(tt(), V1, V2) -> isNat# V1) (active# cons(X1, X2) -> active# X1, active# U41(tt(), V1, V2) -> U42#(isNat V1, V2)) (active# cons(X1, X2) -> active# X1, active# U43 X -> active# X) (active# cons(X1, X2) -> active# X1, active# U43 X -> U43# active X) (active# cons(X1, X2) -> active# X1, active# isNatIList V -> U31#(isNatIListKind V, V)) (active# cons(X1, X2) -> active# X1, active# isNatIList V -> isNatIListKind# V) (active# cons(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> U41#(and(isNatKind V1, isNatIListKind V2), V1, V2)) (active# cons(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# cons(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> isNatIListKind# V2) (active# cons(X1, X2) -> active# X1, active# isNatIList cons(V1, V2) -> isNatKind# V1) (active# cons(X1, X2) -> active# X1, active# U52(X1, X2) -> active# X1) (active# cons(X1, X2) -> active# X1, active# U52(X1, X2) -> U52#(active X1, X2)) (active# cons(X1, X2) -> active# X1, active# U52(tt(), V2) -> isNatList# V2) (active# cons(X1, X2) -> active# X1, active# U52(tt(), V2) -> U53# isNatList V2) (active# cons(X1, X2) -> active# X1, active# U51(X1, X2, X3) -> active# X1) (active# cons(X1, X2) -> active# X1, active# U51(X1, X2, X3) -> U51#(active X1, X2, X3)) (active# cons(X1, X2) -> active# X1, active# U51(tt(), V1, V2) -> isNat# V1) (active# cons(X1, X2) -> active# X1, active# U51(tt(), V1, V2) -> U52#(isNat V1, V2)) (active# cons(X1, X2) -> active# X1, active# U53 X -> active# X) (active# cons(X1, X2) -> active# X1, active# U53 X -> U53# active X) (active# cons(X1, X2) -> active# X1, active# U62(X1, X2) -> active# X1) (active# cons(X1, X2) -> active# X1, active# U62(X1, X2) -> U62#(active X1, X2)) (active# cons(X1, X2) -> active# X1, active# U62(tt(), V2) -> isNatIList# V2) (active# cons(X1, X2) -> active# X1, active# U62(tt(), V2) -> U63# isNatIList V2) (active# cons(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> active# X1) (active# cons(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# cons(X1, X2) -> active# X1, active# U61(tt(), V1, V2) -> isNat# V1) (active# cons(X1, X2) -> active# X1, active# U61(tt(), V1, V2) -> U62#(isNat V1, V2)) (active# cons(X1, X2) -> active# X1, active# U63 X -> active# X) (active# cons(X1, X2) -> active# X1, active# U63 X -> U63# active X) (active# cons(X1, X2) -> active# X1, active# s X -> active# X) (active# cons(X1, X2) -> active# X1, active# s X -> s# active X) (active# cons(X1, X2) -> active# X1, active# length X -> active# X) (active# cons(X1, X2) -> active# X1, active# length X -> length# active X) (active# cons(X1, X2) -> active# X1, active# length cons(N, L) -> isNatList# L) (active# cons(X1, X2) -> active# X1, active# length cons(N, L) -> isNat# N) (active# cons(X1, X2) -> active# X1, active# length cons(N, L) -> U71#(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L)) (active# cons(X1, X2) -> active# X1, active# length cons(N, L) -> and#(isNatList L, isNatIListKind L)) (active# cons(X1, X2) -> active# X1, active# length cons(N, L) -> and#(isNat N, isNatKind N)) (active# cons(X1, X2) -> active# X1, active# length cons(N, L) -> and#(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N))) (active# cons(X1, X2) -> active# X1, active# length cons(N, L) -> isNatIListKind# L) (active# cons(X1, X2) -> active# X1, active# length cons(N, L) -> isNatKind# N) (active# cons(X1, X2) -> active# X1, active# U71(X1, X2) -> active# X1) (active# cons(X1, X2) -> active# X1, active# U71(X1, X2) -> U71#(active X1, X2)) (active# cons(X1, X2) -> active# X1, active# U71(tt(), L) -> s# length L) (active# cons(X1, X2) -> active# X1, active# U71(tt(), L) -> length# L) (active# cons(X1, X2) -> active# X1, active# U81 X -> active# X) (active# cons(X1, X2) -> active# X1, active# U81 X -> U81# active X) (active# cons(X1, X2) -> active# X1, active# take(X1, X2) -> active# X1) (active# cons(X1, X2) -> active# X1, active# take(X1, X2) -> active# X2) (active# cons(X1, X2) -> active# X1, active# take(X1, X2) -> take#(X1, active X2)) (active# cons(X1, X2) -> active# X1, active# take(X1, X2) -> take#(active X1, X2)) (active# cons(X1, X2) -> active# X1, active# take(0(), IL) -> isNatIList# IL) (active# cons(X1, X2) -> active# X1, active# take(0(), IL) -> U81# and(isNatIList IL, isNatIListKind IL)) (active# cons(X1, X2) -> active# X1, active# take(0(), IL) -> and#(isNatIList IL, isNatIListKind IL)) (active# cons(X1, X2) -> active# X1, active# take(0(), IL) -> isNatIListKind# IL) (active# cons(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNat# N) (active# cons(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNat# M) (active# cons(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatIList# IL) (active# cons(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> U91#(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N)) (active# cons(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNat N, isNatKind N)) (active# cons(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNat M, isNatKind M)) (active# cons(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(isNatIList IL, isNatIListKind IL)) (active# cons(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (active# cons(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> and#(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)))) (active# cons(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatIListKind# IL) (active# cons(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatKind# N) (active# cons(X1, X2) -> active# X1, active# take(s M, cons(N, IL)) -> isNatKind# M) (active# cons(X1, X2) -> active# X1, active# U91(X1, X2, X3, X4) -> active# X1) (active# cons(X1, X2) -> active# X1, active# U91(X1, X2, X3, X4) -> U91#(active X1, X2, X3, X4)) (active# cons(X1, X2) -> active# X1, active# U91(tt(), IL, M, N) -> cons#(N, take(M, IL))) (active# cons(X1, X2) -> active# X1, active# U91(tt(), IL, M, N) -> take#(M, IL)) (active# cons(X1, X2) -> active# X1, active# and(X1, X2) -> active# X1) (active# cons(X1, X2) -> active# X1, active# and(X1, X2) -> and#(active X1, X2)) (active# cons(X1, X2) -> active# X1, active# isNatIListKind cons(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# cons(X1, X2) -> active# X1, active# isNatIListKind cons(V1, V2) -> isNatIListKind# V2) (active# cons(X1, X2) -> active# X1, active# isNatIListKind cons(V1, V2) -> isNatKind# V1) (active# cons(X1, X2) -> active# X1, active# isNatIListKind take(V1, V2) -> and#(isNatKind V1, isNatIListKind V2)) (active# cons(X1, X2) -> active# X1, active# isNatIListKind take(V1, V2) -> isNatIListKind# V2) (active# cons(X1, X2) -> active# X1, active# isNatIListKind take(V1, V2) -> isNatKind# V1) (active# cons(X1, X2) -> active# X1, active# isNatKind s V1 -> isNatKind# V1) (active# cons(X1, X2) -> active# X1, active# isNatKind length V1 -> isNatIListKind# V1) (active# U71(tt(), L) -> length# L, length# mark X -> length# X) (active# U71(tt(), L) -> length# L, length# ok X -> length# X) (active# length cons(N, L) -> isNatList# L, isNatList# ok X -> isNatList# X) (proper# U61(X1, X2, X3) -> proper# X3, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X3, proper# cons(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X3, proper# cons(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X3, proper# U12 X -> U12# proper X) (proper# U61(X1, X2, X3) -> proper# X3, proper# U12 X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X3, proper# isNatList X -> isNatList# proper X) (proper# U61(X1, X2, X3) -> proper# X3, proper# isNatList X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X3, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X3, proper# U11(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X3, proper# U11(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X3, proper# U22 X -> U22# proper X) (proper# U61(X1, X2, X3) -> proper# X3, proper# U22 X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X3, proper# isNat X -> isNat# proper X) (proper# U61(X1, X2, X3) -> proper# X3, proper# isNat X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X3, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X3, proper# U21(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X3, proper# U21(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X3, proper# U32 X -> U32# proper X) (proper# U61(X1, X2, X3) -> proper# X3, proper# U32 X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X3, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X3, proper# U31(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X3, proper# U31(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X3, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X3, proper# U42(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X3, proper# U42(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X3, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U61(X1, X2, X3) -> proper# X3, proper# U41(X1, X2, X3) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X3, proper# U41(X1, X2, X3) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X3, proper# U41(X1, X2, X3) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X3, proper# U43 X -> U43# proper X) (proper# U61(X1, X2, X3) -> proper# X3, proper# U43 X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X3, proper# isNatIList X -> isNatIList# proper X) (proper# U61(X1, X2, X3) -> proper# X3, proper# isNatIList X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X3, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X3, proper# U52(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X3, proper# U52(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X3, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U61(X1, X2, X3) -> proper# X3, proper# U51(X1, X2, X3) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X3, proper# U51(X1, X2, X3) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X3, proper# U51(X1, X2, X3) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X3, proper# U53 X -> U53# proper X) (proper# U61(X1, X2, X3) -> proper# X3, proper# U53 X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X3, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X3, proper# U62(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X3, proper# U62(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U61(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X3, proper# U63 X -> U63# proper X) (proper# U61(X1, X2, X3) -> proper# X3, proper# U63 X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X3, proper# s X -> s# proper X) (proper# U61(X1, X2, X3) -> proper# X3, proper# s X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X3, proper# length X -> length# proper X) (proper# U61(X1, X2, X3) -> proper# X3, proper# length X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X3, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X3, proper# U71(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X3, proper# U71(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X3, proper# U81 X -> U81# proper X) (proper# U61(X1, X2, X3) -> proper# X3, proper# U81 X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X3, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X3, proper# take(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X3, proper# take(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X3, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U61(X1, X2, X3) -> proper# X3, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X3, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X3, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X3, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U61(X1, X2, X3) -> proper# X3, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X3, proper# and(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X3, proper# and(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X3, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U61(X1, X2, X3) -> proper# X3, proper# isNatIListKind X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X3, proper# isNatKind X -> isNatKind# proper X) (proper# U61(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X3, proper# cons(X1, X2) -> cons#(proper X1, proper X2)) (proper# U41(X1, X2, X3) -> proper# X3, proper# cons(X1, X2) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X3, proper# cons(X1, X2) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X3, proper# U12 X -> U12# proper X) (proper# U41(X1, X2, X3) -> proper# X3, proper# U12 X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X3, proper# isNatList X -> isNatList# proper X) (proper# U41(X1, X2, X3) -> proper# X3, proper# isNatList X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X3, proper# U11(X1, X2) -> U11#(proper X1, proper X2)) (proper# U41(X1, X2, X3) -> proper# X3, proper# U11(X1, X2) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X3, proper# U11(X1, X2) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X3, proper# U22 X -> U22# proper X) (proper# U41(X1, X2, X3) -> proper# X3, proper# U22 X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X3, proper# isNat X -> isNat# proper X) (proper# U41(X1, X2, X3) -> proper# X3, proper# isNat X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X3, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U41(X1, X2, X3) -> proper# X3, proper# U21(X1, X2) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X3, proper# U21(X1, X2) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X3, proper# U32 X -> U32# proper X) (proper# U41(X1, X2, X3) -> proper# X3, proper# U32 X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X3, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U41(X1, X2, X3) -> proper# X3, proper# U31(X1, X2) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X3, proper# U31(X1, X2) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X3, proper# U42(X1, X2) -> U42#(proper X1, proper X2)) (proper# U41(X1, X2, X3) -> proper# X3, proper# U42(X1, X2) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X3, proper# U42(X1, X2) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X3, proper# U41(X1, X2, X3) -> U41#(proper X1, proper X2, proper X3)) (proper# U41(X1, X2, X3) -> proper# X3, proper# U41(X1, X2, X3) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X3, proper# U41(X1, X2, X3) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X3, proper# U41(X1, X2, X3) -> proper# X3) (proper# U41(X1, X2, X3) -> proper# X3, proper# U43 X -> U43# proper X) (proper# U41(X1, X2, X3) -> proper# X3, proper# U43 X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X3, proper# isNatIList X -> isNatIList# proper X) (proper# U41(X1, X2, X3) -> proper# X3, proper# isNatIList X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X3, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U41(X1, X2, X3) -> proper# X3, proper# U52(X1, X2) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X3, proper# U52(X1, X2) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X3, proper# U51(X1, X2, X3) -> U51#(proper X1, proper X2, proper X3)) (proper# U41(X1, X2, X3) -> proper# X3, proper# U51(X1, X2, X3) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X3, proper# U51(X1, X2, X3) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X3, proper# U51(X1, X2, X3) -> proper# X3) (proper# U41(X1, X2, X3) -> proper# X3, proper# U53 X -> U53# proper X) (proper# U41(X1, X2, X3) -> proper# X3, proper# U53 X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X3, proper# U62(X1, X2) -> U62#(proper X1, proper X2)) (proper# U41(X1, X2, X3) -> proper# X3, proper# U62(X1, X2) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X3, proper# U62(X1, X2) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U41(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X3) (proper# U41(X1, X2, X3) -> proper# X3, proper# U63 X -> U63# proper X) (proper# U41(X1, X2, X3) -> proper# X3, proper# U63 X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X3, proper# s X -> s# proper X) (proper# U41(X1, X2, X3) -> proper# X3, proper# s X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X3, proper# length X -> length# proper X) (proper# U41(X1, X2, X3) -> proper# X3, proper# length X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X3, proper# U71(X1, X2) -> U71#(proper X1, proper X2)) (proper# U41(X1, X2, X3) -> proper# X3, proper# U71(X1, X2) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X3, proper# U71(X1, X2) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X3, proper# U81 X -> U81# proper X) (proper# U41(X1, X2, X3) -> proper# X3, proper# U81 X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X3, proper# take(X1, X2) -> take#(proper X1, proper X2)) (proper# U41(X1, X2, X3) -> proper# X3, proper# take(X1, X2) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X3, proper# take(X1, X2) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X3, proper# U91(X1, X2, X3, X4) -> U91#(proper X1, proper X2, proper X3, proper X4)) (proper# U41(X1, X2, X3) -> proper# X3, proper# U91(X1, X2, X3, X4) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X3, proper# U91(X1, X2, X3, X4) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X3, proper# U91(X1, X2, X3, X4) -> proper# X3) (proper# U41(X1, X2, X3) -> proper# X3, proper# U91(X1, X2, X3, X4) -> proper# X4) (proper# U41(X1, X2, X3) -> proper# X3, proper# and(X1, X2) -> and#(proper X1, proper X2)) (proper# U41(X1, X2, X3) -> proper# X3, proper# and(X1, X2) -> proper# X1) (proper# U41(X1, X2, X3) -> proper# X3, proper# and(X1, X2) -> proper# X2) (proper# U41(X1, X2, X3) -> proper# X3, proper# isNatIListKind X -> isNatIListKind# proper X) (proper# U41(X1, X2, X3) -> proper# X3, proper# isNatIListKind X -> proper# X) (proper# U41(X1, X2, X3) -> proper# X3, proper# isNatKind X -> isNatKind# proper X) (proper# U41(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X) (U61#(ok X1, ok X2, ok X3) -> U61#(X1, X2, X3), U61#(mark X1, X2, X3) -> U61#(X1, X2, X3)) (U61#(ok X1, ok X2, ok X3) -> U61#(X1, X2, X3), U61#(ok X1, ok X2, ok X3) -> U61#(X1, X2, X3)) (U51#(ok X1, ok X2, ok X3) -> U51#(X1, X2, X3), U51#(mark X1, X2, X3) -> U51#(X1, X2, X3)) (U51#(ok X1, ok X2, ok X3) -> U51#(X1, X2, X3), U51#(ok X1, ok X2, ok X3) -> U51#(X1, X2, X3)) (U41#(ok X1, ok X2, ok X3) -> U41#(X1, X2, X3), U41#(mark X1, X2, X3) -> U41#(X1, X2, X3)) (U41#(ok X1, ok X2, ok X3) -> U41#(X1, X2, X3), U41#(ok X1, ok X2, ok X3) -> U41#(X1, X2, X3)) (active# U61(X1, X2, X3) -> U61#(active X1, X2, X3), U61#(mark X1, X2, X3) -> U61#(X1, X2, X3)) (active# U61(X1, X2, X3) -> U61#(active X1, X2, X3), U61#(ok X1, ok X2, ok X3) -> U61#(X1, X2, X3)) (active# U41(X1, X2, X3) -> U41#(active X1, X2, X3), U41#(mark X1, X2, X3) -> U41#(X1, X2, X3)) (active# U41(X1, X2, X3) -> U41#(active X1, X2, X3), U41#(ok X1, ok X2, ok X3) -> U41#(X1, X2, X3)) (active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), and#(mark X1, X2) -> and#(X1, X2)) (active# take(s M, cons(N, IL)) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), and#(ok X1, ok X2) -> and#(X1, X2)) (active# take(s M, cons(N, IL)) -> isNatKind# M, isNatKind# ok X -> isNatKind# X) (active# isNatIList V -> U31#(isNatIListKind V, V), U31#(mark X1, X2) -> U31#(X1, X2)) (active# isNatIList V -> U31#(isNatIListKind V, V), U31#(ok X1, ok X2) -> U31#(X1, X2)) (active# isNatKind s V1 -> isNatKind# V1, isNatKind# ok X -> isNatKind# X) (active# isNatIListKind cons(V1, V2) -> isNatKind# V1, isNatKind# ok X -> isNatKind# X) (active# U51(tt(), V1, V2) -> isNat# V1, isNat# ok X -> isNat# X) (active# U41(tt(), V1, V2) -> isNat# V1, isNat# ok X -> isNat# X) (active# isNat length V1 -> isNatIListKind# V1, isNatIListKind# ok X -> isNatIListKind# X) (active# U11(tt(), V1) -> isNatList# V1, isNatList# ok X -> isNatList# X) (active# isNatList cons(V1, V2) -> isNatKind# V1, isNatKind# ok X -> isNatKind# X) } STATUS: arrows: 0.890590 SCCS (31): Scc: {top# mark X -> top# proper X, top# ok X -> top# active X} Scc: { active# cons(X1, X2) -> active# X1, active# U12 X -> active# X, active# U11(X1, X2) -> active# X1, active# U22 X -> active# X, active# U21(X1, X2) -> active# X1, active# U32 X -> active# X, active# U31(X1, X2) -> active# X1, active# U42(X1, X2) -> active# X1, active# U41(X1, X2, X3) -> active# X1, active# U43 X -> active# X, active# U52(X1, X2) -> active# X1, active# U51(X1, X2, X3) -> active# X1, active# U53 X -> active# X, active# U62(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> active# X1, active# U63 X -> active# X, active# s X -> active# X, active# length X -> active# X, active# U71(X1, X2) -> active# X1, active# U81 X -> active# X, active# take(X1, X2) -> active# X1, active# take(X1, X2) -> active# X2, active# U91(X1, X2, X3, X4) -> active# X1, active# and(X1, X2) -> active# X1} Scc: { proper# cons(X1, X2) -> proper# X1, proper# cons(X1, X2) -> proper# X2, proper# U12 X -> proper# X, proper# isNatList X -> proper# X, proper# U11(X1, X2) -> proper# X1, proper# U11(X1, X2) -> proper# X2, proper# U22 X -> proper# X, proper# isNat X -> proper# X, proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2, proper# U32 X -> proper# X, proper# U31(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2, proper# U42(X1, X2) -> proper# X1, proper# U42(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X3, proper# U43 X -> proper# X, proper# isNatIList X -> proper# X, proper# U52(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X3, proper# U53 X -> proper# X, proper# U62(X1, X2) -> proper# X1, proper# U62(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3, proper# U63 X -> proper# X, proper# s X -> proper# X, proper# length X -> proper# X, proper# U71(X1, X2) -> proper# X1, proper# U71(X1, X2) -> proper# X2, proper# U81 X -> proper# X, proper# take(X1, X2) -> proper# X1, proper# take(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U91(X1, X2, X3, X4) -> proper# X4, proper# and(X1, X2) -> proper# X1, proper# and(X1, X2) -> proper# X2, proper# isNatIListKind X -> proper# X, proper# isNatKind X -> proper# X} Scc: { U91#(mark X1, X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(ok X1, ok X2, ok X3, ok X4) -> U91#(X1, X2, X3, X4)} Scc: { take#(X1, mark X2) -> take#(X1, X2), take#(mark X1, X2) -> take#(X1, X2), take#(ok X1, ok X2) -> take#(X1, X2)} Scc: {U81# mark X -> U81# X, U81# ok X -> U81# X} Scc: { U71#(mark X1, X2) -> U71#(X1, X2), U71#(ok X1, ok X2) -> U71#(X1, X2)} Scc: {length# mark X -> length# X, length# ok X -> length# X} Scc: {s# mark X -> s# X, s# ok X -> s# X} Scc: {U63# mark X -> U63# X, U63# ok X -> U63# X} Scc: { U62#(mark X1, X2) -> U62#(X1, X2), U62#(ok X1, ok X2) -> U62#(X1, X2)} Scc: {U53# mark X -> U53# X, U53# ok X -> U53# X} Scc: { U52#(mark X1, X2) -> U52#(X1, X2), U52#(ok X1, ok X2) -> U52#(X1, X2)} Scc: {isNatIList# ok X -> isNatIList# X} Scc: {U43# mark X -> U43# X, U43# ok X -> U43# X} Scc: { U42#(mark X1, X2) -> U42#(X1, X2), U42#(ok X1, ok X2) -> U42#(X1, X2)} Scc: {U32# mark X -> U32# X, U32# ok X -> U32# X} Scc: { U21#(mark X1, X2) -> U21#(X1, X2), U21#(ok X1, ok X2) -> U21#(X1, X2)} Scc: {U22# mark X -> U22# X, U22# ok X -> U22# X} Scc: { U11#(mark X1, X2) -> U11#(X1, X2), U11#(ok X1, ok X2) -> U11#(X1, X2)} Scc: {U12# mark X -> U12# X, U12# ok X -> U12# X} Scc: { cons#(mark X1, X2) -> cons#(X1, X2), cons#(ok X1, ok X2) -> cons#(X1, X2)} Scc: { U61#(mark X1, X2, X3) -> U61#(X1, X2, X3), U61#(ok X1, ok X2, ok X3) -> U61#(X1, X2, X3)} Scc: { U51#(mark X1, X2, X3) -> U51#(X1, X2, X3), U51#(ok X1, ok X2, ok X3) -> U51#(X1, X2, X3)} Scc: { U41#(mark X1, X2, X3) -> U41#(X1, X2, X3), U41#(ok X1, ok X2, ok X3) -> U41#(X1, X2, X3)} Scc: { and#(mark X1, X2) -> and#(X1, X2), and#(ok X1, ok X2) -> and#(X1, X2)} Scc: { U31#(mark X1, X2) -> U31#(X1, X2), U31#(ok X1, ok X2) -> U31#(X1, X2)} Scc: {isNat# ok X -> isNat# X} Scc: {isNatIListKind# ok X -> isNatIListKind# X} Scc: {isNatList# ok X -> isNatList# X} Scc: {isNatKind# ok X -> isNatKind# X} SCC (2): Strict: {top# mark X -> top# proper X, top# ok X -> top# active X} Weak: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, top mark X -> top proper X, top ok X -> top active X} Open SCC (24): Strict: { active# cons(X1, X2) -> active# X1, active# U12 X -> active# X, active# U11(X1, X2) -> active# X1, active# U22 X -> active# X, active# U21(X1, X2) -> active# X1, active# U32 X -> active# X, active# U31(X1, X2) -> active# X1, active# U42(X1, X2) -> active# X1, active# U41(X1, X2, X3) -> active# X1, active# U43 X -> active# X, active# U52(X1, X2) -> active# X1, active# U51(X1, X2, X3) -> active# X1, active# U53 X -> active# X, active# U62(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> active# X1, active# U63 X -> active# X, active# s X -> active# X, active# length X -> active# X, active# U71(X1, X2) -> active# X1, active# U81 X -> active# X, active# take(X1, X2) -> active# X1, active# take(X1, X2) -> active# X2, active# U91(X1, X2, X3, X4) -> active# X1, active# and(X1, X2) -> active# X1} Weak: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, top mark X -> top proper X, top ok X -> top active X} Open SCC (47): Strict: { proper# cons(X1, X2) -> proper# X1, proper# cons(X1, X2) -> proper# X2, proper# U12 X -> proper# X, proper# isNatList X -> proper# X, proper# U11(X1, X2) -> proper# X1, proper# U11(X1, X2) -> proper# X2, proper# U22 X -> proper# X, proper# isNat X -> proper# X, proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2, proper# U32 X -> proper# X, proper# U31(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2, proper# U42(X1, X2) -> proper# X1, proper# U42(X1, X2) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X1, proper# U41(X1, X2, X3) -> proper# X2, proper# U41(X1, X2, X3) -> proper# X3, proper# U43 X -> proper# X, proper# isNatIList X -> proper# X, proper# U52(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X1, proper# U51(X1, X2, X3) -> proper# X2, proper# U51(X1, X2, X3) -> proper# X3, proper# U53 X -> proper# X, proper# U62(X1, X2) -> proper# X1, proper# U62(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3, proper# U63 X -> proper# X, proper# s X -> proper# X, proper# length X -> proper# X, proper# U71(X1, X2) -> proper# X1, proper# U71(X1, X2) -> proper# X2, proper# U81 X -> proper# X, proper# take(X1, X2) -> proper# X1, proper# take(X1, X2) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X1, proper# U91(X1, X2, X3, X4) -> proper# X2, proper# U91(X1, X2, X3, X4) -> proper# X3, proper# U91(X1, X2, X3, X4) -> proper# X4, proper# and(X1, X2) -> proper# X1, proper# and(X1, X2) -> proper# X2, proper# isNatIListKind X -> proper# X, proper# isNatKind X -> proper# X} Weak: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, top mark X -> top proper X, top ok X -> top active X} Open SCC (2): Strict: { U91#(mark X1, X2, X3, X4) -> U91#(X1, X2, X3, X4), U91#(ok X1, ok X2, ok X3, ok X4) -> U91#(X1, X2, X3, X4)} Weak: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, top mark X -> top proper X, top ok X -> top active X} Open SCC (3): Strict: { take#(X1, mark X2) -> take#(X1, X2), take#(mark X1, X2) -> take#(X1, X2), take#(ok X1, ok X2) -> take#(X1, X2)} Weak: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, top mark X -> top proper X, top ok X -> top active X} Open SCC (2): Strict: {U81# mark X -> U81# X, U81# ok X -> U81# X} Weak: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, top mark X -> top proper X, top ok X -> top active X} Open SCC (2): Strict: { U71#(mark X1, X2) -> U71#(X1, X2), U71#(ok X1, ok X2) -> U71#(X1, X2)} Weak: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, top mark X -> top proper X, top ok X -> top active X} Open SCC (2): Strict: {length# mark X -> length# X, length# ok X -> length# X} Weak: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, top mark X -> top proper X, top ok X -> top active X} Open SCC (2): Strict: {s# mark X -> s# X, s# ok X -> s# X} Weak: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, top mark X -> top proper X, top ok X -> top active X} Open SCC (2): Strict: {U63# mark X -> U63# X, U63# ok X -> U63# X} Weak: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, top mark X -> top proper X, top ok X -> top active X} Open SCC (2): Strict: { U62#(mark X1, X2) -> U62#(X1, X2), U62#(ok X1, ok X2) -> U62#(X1, X2)} Weak: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, top mark X -> top proper X, top ok X -> top active X} Open SCC (2): Strict: {U53# mark X -> U53# X, U53# ok X -> U53# X} Weak: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, top mark X -> top proper X, top ok X -> top active X} Open SCC (2): Strict: { U52#(mark X1, X2) -> U52#(X1, X2), U52#(ok X1, ok X2) -> U52#(X1, X2)} Weak: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, top mark X -> top proper X, top ok X -> top active X} Open SCC (1): Strict: {isNatIList# ok X -> isNatIList# X} Weak: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, top mark X -> top proper X, top ok X -> top active X} Open SCC (2): Strict: {U43# mark X -> U43# X, U43# ok X -> U43# X} Weak: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, top mark X -> top proper X, top ok X -> top active X} Open SCC (2): Strict: { U42#(mark X1, X2) -> U42#(X1, X2), U42#(ok X1, ok X2) -> U42#(X1, X2)} Weak: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, top mark X -> top proper X, top ok X -> top active X} Open SCC (2): Strict: {U32# mark X -> U32# X, U32# ok X -> U32# X} Weak: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, top mark X -> top proper X, top ok X -> top active X} Open SCC (2): Strict: { U21#(mark X1, X2) -> U21#(X1, X2), U21#(ok X1, ok X2) -> U21#(X1, X2)} Weak: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, top mark X -> top proper X, top ok X -> top active X} Open SCC (2): Strict: {U22# mark X -> U22# X, U22# ok X -> U22# X} Weak: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, top mark X -> top proper X, top ok X -> top active X} Open SCC (2): Strict: { U11#(mark X1, X2) -> U11#(X1, X2), U11#(ok X1, ok X2) -> U11#(X1, X2)} Weak: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, top mark X -> top proper X, top ok X -> top active X} Open SCC (2): Strict: {U12# mark X -> U12# X, U12# ok X -> U12# X} Weak: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, top mark X -> top proper X, top ok X -> top active X} Open SCC (2): Strict: { cons#(mark X1, X2) -> cons#(X1, X2), cons#(ok X1, ok X2) -> cons#(X1, X2)} Weak: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, top mark X -> top proper X, top ok X -> top active X} Open SCC (2): Strict: { U61#(mark X1, X2, X3) -> U61#(X1, X2, X3), U61#(ok X1, ok X2, ok X3) -> U61#(X1, X2, X3)} Weak: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, top mark X -> top proper X, top ok X -> top active X} Open SCC (2): Strict: { U51#(mark X1, X2, X3) -> U51#(X1, X2, X3), U51#(ok X1, ok X2, ok X3) -> U51#(X1, X2, X3)} Weak: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, top mark X -> top proper X, top ok X -> top active X} Open SCC (2): Strict: { U41#(mark X1, X2, X3) -> U41#(X1, X2, X3), U41#(ok X1, ok X2, ok X3) -> U41#(X1, X2, X3)} Weak: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, top mark X -> top proper X, top ok X -> top active X} Open SCC (2): Strict: { and#(mark X1, X2) -> and#(X1, X2), and#(ok X1, ok X2) -> and#(X1, X2)} Weak: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, top mark X -> top proper X, top ok X -> top active X} Open SCC (2): Strict: { U31#(mark X1, X2) -> U31#(X1, X2), U31#(ok X1, ok X2) -> U31#(X1, X2)} Weak: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, top mark X -> top proper X, top ok X -> top active X} Open SCC (1): Strict: {isNat# ok X -> isNat# X} Weak: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, top mark X -> top proper X, top ok X -> top active X} Open SCC (1): Strict: {isNatIListKind# ok X -> isNatIListKind# X} Weak: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, top mark X -> top proper X, top ok X -> top active X} Open SCC (1): Strict: {isNatList# ok X -> isNatList# X} Weak: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, top mark X -> top proper X, top ok X -> top active X} Open SCC (1): Strict: {isNatKind# ok X -> isNatKind# X} Weak: { cons(mark X1, X2) -> mark cons(X1, X2), cons(ok X1, ok X2) -> ok cons(X1, X2), active cons(X1, X2) -> cons(active X1, X2), active zeros() -> mark cons(0(), zeros()), active U12 X -> U12 active X, active U12 tt() -> mark tt(), active isNatList cons(V1, V2) -> mark U51(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatList nil() -> mark tt(), active isNatList take(V1, V2) -> mark U61(and(isNatKind V1, isNatIListKind V2), V1, V2), active U11(X1, X2) -> U11(active X1, X2), active U11(tt(), V1) -> mark U12 isNatList V1, active U22 X -> U22 active X, active U22 tt() -> mark tt(), active isNat 0() -> mark tt(), active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat length V1 -> mark U11(isNatIListKind V1, V1), active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22 isNat V1, active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V) -> mark U32 isNatList V, active U42(X1, X2) -> U42(active X1, X2), active U42(tt(), V2) -> mark U43 isNatIList V2, active U41(X1, X2, X3) -> U41(active X1, X2, X3), active U41(tt(), V1, V2) -> mark U42(isNat V1, V2), active U43 X -> U43 active X, active U43 tt() -> mark tt(), active isNatIList V -> mark U31(isNatIListKind V, V), active isNatIList cons(V1, V2) -> mark U41(and(isNatKind V1, isNatIListKind V2), V1, V2), active isNatIList zeros() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), V2) -> mark U53 isNatList V2, active U51(X1, X2, X3) -> U51(active X1, X2, X3), active U51(tt(), V1, V2) -> mark U52(isNat V1, V2), active U53 X -> U53 active X, active U53 tt() -> mark tt(), active U62(X1, X2) -> U62(active X1, X2), active U62(tt(), V2) -> mark U63 isNatIList V2, active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), V1, V2) -> mark U62(isNat V1, V2), active U63 X -> U63 active X, active U63 tt() -> mark tt(), active s X -> s active X, active length X -> length active X, active length cons(N, L) -> mark U71(and(and(isNatList L, isNatIListKind L), and(isNat N, isNatKind N)), L), active length nil() -> mark 0(), active U71(X1, X2) -> U71(active X1, X2), active U71(tt(), L) -> mark s length L, active U81 X -> U81 active X, active U81 tt() -> mark nil(), active take(X1, X2) -> take(X1, active X2), active take(X1, X2) -> take(active X1, X2), active take(0(), IL) -> mark U81 and(isNatIList IL, isNatIListKind IL), active take(s M, cons(N, IL)) -> mark U91(and(and(isNatIList IL, isNatIListKind IL), and(and(isNat M, isNatKind M), and(isNat N, isNatKind N))), IL, M, N), active U91(X1, X2, X3, X4) -> U91(active X1, X2, X3, X4), active U91(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active and(X1, X2) -> and(active X1, X2), active and(tt(), X) -> mark X, active isNatIListKind cons(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatIListKind zeros() -> mark tt(), active isNatIListKind nil() -> mark tt(), active isNatIListKind take(V1, V2) -> mark and(isNatKind V1, isNatIListKind V2), active isNatKind 0() -> mark tt(), active isNatKind s V1 -> mark isNatKind V1, active isNatKind length V1 -> mark isNatIListKind V1, U12 mark X -> mark U12 X, U12 ok X -> ok U12 X, isNatList ok X -> ok isNatList X, U11(mark X1, X2) -> mark U11(X1, X2), U11(ok X1, ok X2) -> ok U11(X1, X2), U22 mark X -> mark U22 X, U22 ok X -> ok U22 X, isNat ok X -> ok isNat X, U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U42(mark X1, X2) -> mark U42(X1, X2), U42(ok X1, ok X2) -> ok U42(X1, X2), U41(mark X1, X2, X3) -> mark U41(X1, X2, X3), U41(ok X1, ok X2, ok X3) -> ok U41(X1, X2, X3), U43 mark X -> mark U43 X, U43 ok X -> ok U43 X, isNatIList ok X -> ok isNatIList X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2, X3) -> mark U51(X1, X2, X3), U51(ok X1, ok X2, ok X3) -> ok U51(X1, X2, X3), U53 mark X -> mark U53 X, U53 ok X -> ok U53 X, U62(mark X1, X2) -> mark U62(X1, X2), U62(ok X1, ok X2) -> ok U62(X1, X2), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63 mark X -> mark U63 X, U63 ok X -> ok U63 X, s mark X -> mark s X, s ok X -> ok s X, length mark X -> mark length X, length ok X -> ok length X, U71(mark X1, X2) -> mark U71(X1, X2), U71(ok X1, ok X2) -> ok U71(X1, X2), U81 mark X -> mark U81 X, U81 ok X -> ok U81 X, take(X1, mark X2) -> mark take(X1, X2), take(mark X1, X2) -> mark take(X1, X2), take(ok X1, ok X2) -> ok take(X1, X2), U91(mark X1, X2, X3, X4) -> mark U91(X1, X2, X3, X4), U91(ok X1, ok X2, ok X3, ok X4) -> ok U91(X1, X2, X3, X4), and(mark X1, X2) -> mark and(X1, X2), and(ok X1, ok X2) -> ok and(X1, X2), isNatIListKind ok X -> ok isNatIListKind X, isNatKind ok X -> ok isNatKind X, proper cons(X1, X2) -> cons(proper X1, proper X2), proper 0() -> ok 0(), proper zeros() -> ok zeros(), proper U12 X -> U12 proper X, proper isNatList X -> isNatList proper X, proper U11(X1, X2) -> U11(proper X1, proper X2), proper tt() -> ok tt(), proper U22 X -> U22 proper X, proper isNat X -> isNat proper X, proper U21(X1, X2) -> U21(proper X1, proper X2), proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U42(X1, X2) -> U42(proper X1, proper X2), proper U41(X1, X2, X3) -> U41(proper X1, proper X2, proper X3), proper U43 X -> U43 proper X, proper isNatIList X -> isNatIList proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2, X3) -> U51(proper X1, proper X2, proper X3), proper U53 X -> U53 proper X, proper U62(X1, X2) -> U62(proper X1, proper X2), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63 X -> U63 proper X, proper s X -> s proper X, proper length X -> length proper X, proper U71(X1, X2) -> U71(proper X1, proper X2), proper nil() -> ok nil(), proper U81 X -> U81 proper X, proper take(X1, X2) -> take(proper X1, proper X2), proper U91(X1, X2, X3, X4) -> U91(proper X1, proper X2, proper X3, proper X4), proper and(X1, X2) -> and(proper X1, proper X2), proper isNatIListKind X -> isNatIListKind proper X, proper isNatKind X -> isNatKind proper X, top mark X -> top proper X, top ok X -> top active X} Open